摘要这篇文章提供了一个关于递归神经网络中某些概念的指南。与前馈网络不同,RNN可能非常敏感,并且适合于过去的输入(be adapted to past inputs)。反向传播学习(backpropagation learning)是为了前馈网络而描述,并进行调整来满足我们的建模需要,并且推广到递归网络。这篇简要的文章的目的是搭建一个应用和理解递归神经元网络的图景(scene)。 1.简介广为人知的是,给定了一个隐藏节点的集合(可能非常大),传统的前馈网络可以用来近似任何空间受限的有限函数。这就是说,对于拥有确定输入空间的函数,我们总有方法利用神经元网络对这些函数进行编码。对于一个两层的网络,这个映射包含两步。 如果拥有足够的采样点,我们能够利用反向传播等自动学习的技术来寻找网络的权重(G和F)。 回顾神经元网络不仅在输入空间上进行操作,而且在内部状态空间进行操作(一条已经被网络处理过的轨迹(a trace of what already been processed by the network,往下看就理解什么意思)),从这个意义上,回归神经元网络与前馈网络结构有本质的不同。这等价于一个迭代函数系统(IFS; see (Barnsley, 1993) for a general introduction to IFSs; 为了限制这篇文章的讨论范围,简化数学推导,我们假设网络按照离散的时间运行(完全有可能采用连续的时间)。可以证明,如果我们进一步假设权重都是有理的而且采用连续的输出函数,网络能够表示任何的图灵机(再一次假设任何隐藏节点的个数都是可取的)。很重要的一点是,我们马上就会看到所有这些都可以被一个离散时间的RNN计算和处理。甚至有证据显示,如果采用实权重系数(即这个网络是完全模拟的),我们可以得到超过图灵机的处理能力。 2.一些基本定义为了简化记法我们我们会限制网络仅包含两层(一个“隐藏层”或“状态层”,一个输出层,不包括输入层)。每一层都有自己的下标变量:输出层k,隐藏层j(和h),输入层i。在一个前馈网络中,输入向量x是通过一个权重层V进行传播的, 其中n是输入的个数,theta_j是偏置,f是输出函数(任意可微的函数类型)。一个网络如图1所示。 在一个简单的递归网络中,输入向量也是相似地通过一个权重层传播,但是同时通过一个加性的递归矩阵U结合了先前的激活状态 其中m是“状态节点”的数量。 网络的输出是由状态和一系列输出权重W决定的
3.反向传播的原则当期望的输出模式存在而且每个用来计算实际输出模式的函数都是可微的,任何网络结构都可以利用反向传播进行训练。正如传统的梯度下降(或上升)算法,对于每一个可编辑的权重系数,反向传播计算与其相关的代价(或者误差)的梯度然后做出相应的调整。 最常用的代价函数是误差平方和。每个模式(pattern)或者表示(presentation)(来自训练集)p都对代价函数做出贡献,对于所有的输出节点k: 其中d是期望的输出,n是训练集中元素的总个数,m是所有输出节点的个数。 根据梯度下降算法,每个权重的变化正比于其梯度 其中eta是学习率。 最好的理解权重改变的方式是,区分误差分量,和。这样,输出节点的误差就是 对于隐藏节点 对于一阶的多项式,等于输入的激活状态。权重改变就简化为: 对于输入权重 加上时间下标,递归权重可以根据下式更新: 一个通用的输出函数是sigmoid函数: sigmoid函数的微分可以写为 由于显而易见的原因,大多数代价函数当网络的每个实际输出都等于期望输出时都取值为0。然而,还是有比误差平方和更合适的代价函数来指导权重的更新(Rumelhart et al., 1995)。对于下面列出的条目,通用的假设是,实际输出和期望输出之间的关系是概率型的(网络依旧是确定型的),而且误差的分布是已知的。这样反过来让网络的输出解释有了坚实的理论基础。(没看懂,This, in turn, puts the interpretation 如果网络的输出是高斯分布的均值(由训练集决定),我们能够最小化代价函数 其中sigma假设是确定的。这个代价函数与误差平方和非常相似。 高斯分布下(输出不是有界的),输出节点的一个自然的选择就是
如果假设为二项式分布(每个输出值是一个输出为1或0的期望值,例如特征提取),一个合适的代价函数是所谓的交叉熵,
如果处理的是“1-of-n”的分类问题,多项式分布是适用的。代价函数定义为
现在熟悉的更新规则自动出现了, As shown in (Rumelhart et al., 1995) this result occurs whenever we choose a probability function from the exponential family of probability distributions.(这一句不会翻译,没看懂结构) 4.抽头延迟线式存储器也许最合适的将暂时的或循序的信息包含进一个训练场景(training situation)的方法就是将时间域(temporal domain)转移到空间域(spacial)并使用一种前馈的结构。过去的时间上的有效信息被插入到扩展的输入空间上,输入空间是按照一个事先确定的“窗口”来扩展的。扩展后的输入空间用X表示,X = x(t), x(t - 1), x(t - 2), ..., x(t - w)(见图3)。这经常被称作抽头延迟线式存储,因为输入是存放在延迟缓冲区并按照离散时间进行刷新。 也可能手动地推广这一逼近(approach),通过选择特定的回溯步数并选取其均值或其他预处理过的可以反映信号衰减的特征来作为输入。 这种逼近的一个典型例子是NETtalk system(Sejnowski and Rosenberg,1987),这个网络对样例的学习来读出文本中输入的单词。它一次接受七个字母作为输入,但每次仅读出中间的那个。 这一方法的缺点包括:用户必须选择对于网络有用的最大的时间步长(the maximum number of time steps which is useful to the network)。而且,在处理不同步骤中的相同分量时使用独立的权重会妨碍到算法的推广(generalization,泛化?)。同时,极大的权重个数需要极大的样本集来防止过拟合(over-specialization)。 5.简单的递归网络一个严格的前馈结构不包括短期记忆。任何记忆效应都是因为过去的输入在网络中的重复表示(re-presented)(对于抽头延迟线式结构)。 一个简单的递归网络(SRN; (Elman, 1990))拥有体现了短期记忆的反馈结构。状态层更新时不仅依赖于网络的外部输入,还与之前的前向传播有关。反馈根据一系列自适应(例如反向传播)的权重决定。
6.讨论人们已经讨论过很多网络结构的变种和学习规则(例如,所谓的Jordan网络(Jordan, 1986),完全递归网络,试试递归学习(Williams and Zipser, 1989)等等。)。尽管如此,递归网络有能力内部使用并创建反映暂时性(甚至是就诶够性)依赖的结构。对于更简单的任务(例如学习由小型有限状态机产生的语法)状态空间的组织直截了当地反映出了训练数据的结构(component parts,应该是零件,没有想好怎么翻译)(例如(Elman, |
|