10.10 长短期记忆和其他门控 RNN
本书撰写之时,实际应用中最有效的序列模型称为门控RNN(gated RNN)。包括基于长短期记忆(long short-term memory)和基于门控循环单元(gated recurrent unit)的网络。
像渗漏单元一样,门控RNN想法也是基于生成通过时间的路径,其中导数既不消失也不发生爆炸。渗漏单元通过手动选择常量的连接权重或参数化的连接权重来达到这一目的。门控RNN将其推广为在每个时间步都可能改变的连接权重。
渗漏单元允许网络在较长持续时间内积累信息(诸如用于特定特征或类的线索)。然而,一旦该信息被使用,让神经网络遗忘旧的状态可能是有用的。例如,如果一个序列是由子序列组成,我们希望渗漏单元能在各子序列内积累线索,需要将状态设置为0以忘记旧状态的机制。我们希望神经网络学会决定何时清除状态,而不是手动决定。这就是门控RNN要做的事。
10.10.1 LSTM
引入自循环的巧妙构思,以产生梯度长时间持续流动的路径是初始长短期记忆(long short-term memory,LSTM)模型的核心贡献(Hochreiter and Schmidhuber,1997)。其中一个关键扩展是使自循环的权重视上下文而定,而不是固定的(Gers et al.,2000)。门控此自循环(由另一个隐藏单元控制)的权重,累积的时间尺度可以动态地改变。在这种情况下,即使是具有固定参数的LSTM,累积的时间尺度也可以因输入序列而改变,因为时间常数是模型本身的输出。LSTM已经在许多应用中取得重大成功,如无约束手写识别(Graves et al.,2009)、语音识别(Graves et al.,2013;Graves and Jaitly,2014)、手写生成(Graves,2013)、机器翻译(Sutskever et al.,2014)、为图像生成标题(Kiros et al.,2014b;Vinyals et al.,2014b;Xu et al.,2015)和解析(Vinyals et al.,2014a)。
LSTM块如图10.16所示。在浅循环网络的架构下,相应的前向传播公式如下。更深的架构也被成功应用(Graves et al.,2013;Pascanu et al.,2014a)。LSTM循环网络除了外部的RNN循环外,还具有内部的“LSTM细胞”循环(自环),因此LSTM不是简单地向输入和循环单元的仿射变换之后施加一个逐元素的非线性。与普通的循环网络类似,每个单元有相同的输入和输出,但也有更多的参数和控制信息流动的门控单元系统。最重要的组成部分是状态单元,与前一节讨论的渗漏单元有类似的线性自环。然而,此处自环的权重(或相关联的时间常数)由遗忘门(forget gate)控制(时刻t和细胞i),由sigmoid单元将权重设置为0和1之间的值:
图10.16 LSTM循环网络“细胞”的框图。细胞彼此循环连接,代替一般循环网络中普通的隐藏单元。这里使用常规的人工神经元计算输入特征。如果sigmoid输入门允许,它的值可以累加到状态。状态单元具有线性自循环,其权重由遗忘门控制。细胞的输出可以被输出门关闭。所有门控单元都具有sigmoid非线性,而输入单元可具有任意的压缩非线性。状态单元也可以用作门控单元的额外输入。黑色方块表示单个时间步的延迟
其中x(t)是当前输入向量,ht是当前隐藏层向量,ht包含所有LSTM细胞的输出。bf、Uf、Wf分别是偏置、输入权重和遗忘门的循环权重。因此LSTM细胞内部状态以如下方式更新,其中有一个条件的自环权重:
其中b、U、W分别是LSTM细胞中的偏置、输入权重和遗忘门的循环权重。外部输入门(external input gate)单元以类似遗忘门(使用sigmoid获得一个0和1之间的值)的方式更新,但有自身的参数:
LSTM细胞的输出也可以由输出门(output gate)关闭(使用sigmoid单元作为门控):
其中bo、Uo、Wo分别是偏置、输入权重和遗忘门的循环权重。在这些变体中,可以选择使用细胞状态作为额外的输入(及其权重),输入到第i个单元的3个门,如图10.16所示。这将需要3个额外的参数。
LSTM网络比简单的循环架构更易于学习长期依赖,先是用于测试长期依赖学习能力的人工数据集(Bengio et al.,1994c;Hochreiter and Schmidhuber,1997;Hochreiter et al.,2001),然后是在具有挑战性的序列处理任务上获得最先进的表现(Graves,2012,2013;Sutskever et al.,2014)。LSTM的变体和替代也已经被研究和使用,这将在下文进行讨论。
10.10.2 其他门控RNN
LSTM架构中哪些部分是真正必需的?还可以设计哪些其他成功架构允许网络动态地控制时间尺度和不同单元的遗忘行为?
最近关于门控RNN的工作给出了这些问题的某些答案,其单元也被称为门控循环单元或GRU(Cho et al.,2014c;Chung et al.,2014,2015a;Jozefowicz et al.,2015;Chrupala et al.,2015)。与LSTM的主要区别是,单个门控单元同时控制遗忘因子和更新状态单元的决定。更新公式如下:
其中u代表“更新”门,r表示“复位”门。它们的值就如通常所定义的:
和
复位和更新门能独立地“忽略”状态向量的一部分。更新门像条件渗漏累积器一样可以线性门控任意维度,从而选择将它复制(在sigmoid的一个极端)或完全由新的“目标状态”值(朝向渗漏累积器的收敛方向)替换并完全忽略它(在另一个极端)。复位门控制当前状态中哪些部分用于计算下一个目标状态,在过去状态和未来状态之间引入了附加的非线性效应。
围绕这一主题可以设计更多的变种。例如复位门(或遗忘门)的输出可以在多个隐藏单元间共享。或者,全局门的乘积(覆盖一整组的单元,例如整一层)和一个局部门(每单元)可用于结合全局控制和局部控制。然而,一些调查发现这些LSTM和GRU架构的变种,在广泛的任务中难以明显地同时击败这两个原始架构(Greff et al.,2015;Jozefowicz et al.,2015)。Greff et al.(2015)发现其中的关键因素是遗忘门,而Jozefowicz et al.(2015)发现向LSTM遗忘门加入1的偏置(由Gers et al.(2000)提倡)能让LSTM变得与已探索的最佳变种一样健壮。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论