A Critical Review of Recurrent Neural Networks for Sequence Learning
阅读笔记
//2022.3.31 下午15:00开始
论文地址
[1506.00019] A Critical Review of Recurrent Neural Networks for Sequence Learning (arxiv.org)
论文目的
文章回顾了2015年之前的RNN发展现状,并提供独立的解释和观点。
论文主要内容
1.Introduction
首先,文章在introduction章节中介绍了神经网络的大致历史和卷积神经网络的一系列突出表现,并且介绍了深度信念网络的相关内容;然后,说明上述这些网络都是依赖于样本的独立性假设,对音频、视频等的连续帧数据,无法处理的很好,由此引出了RNN(循环神经网络)然后介绍了为什么RNN值得研究的原因:然后说明了一些典型的时序场景下,原始的人工神经网络或卷积神经网络已经不再适合使用;接着,作者介绍了同样可以处理时序数据的马尔科夫链模型,详细说明了为什么马尔科夫链不适合处理时序数据:
-
- 传统的马尔可夫模型方法是有限的,因为它们的状态必须从一个适度大小的离散状态空间S中提取。
- 当隐马尔科夫模型的可能隐藏状态集变大时,标准操作变得不可行的。
- 每个隐藏状态只能依赖于前一个状态。
然后,又阐述了RNN相对于马尔科夫链的优点:
- 循环神经网络可以捕获长期的时间依赖关系,克服了马尔可夫模型的主要局限性;
- RNN在任何时刻的隐藏状态都可以包含来自任意长的上下文窗口的信息;
- RNN的表达能力更好;
- 给定固定结构的RNN是可微的,因此RNN可以接受梯度训练;
接着,文章介绍了具有参考价值的其他文献:
(1)Alex Graves. Supervised sequence labelling with recurrent neural networks, vol-
ume 385. Springer, 2012.
(2)Felix A. Gers. Long short-term memory in recurrent neural networks. Unpublished PhD dissertation, École Polytechnique F´ ed´ erale de Lausanne, Lausanne, Switzerland, 2001.
(3)Wim De Mulder, Steven Bethard, and Marie-Francine Moens. A survey on the application of recurrent neural networks to statistical language modeling. Computer Speech & Language, 30(1):61–98, 2015.
(4)Barak A. Pearlmutter. Gradient calculations for dynamic recurrent neural networks: A survey. Neural Networks, IEEE Transactions on, 6(5):1212–1228, 1995.
最后,文章给出了本文的优点:
文章提供一个可读的,直观的,一致的标记,和合理的全面但有选择性的调查研究的循环神经网络序列学习。文章强调架构、算法和结果,但也会阐述一些启发式和经验领域的直觉。文章会详细阐述具体的建模细节,同时还提供了定性的论证、历史的观点,以及在适当的时候与其他方法的比较。
2.Background
本章节详细介绍了神经网络的一般背景知识,包括:RNN的输入序列形式(文章中提出来方法适合时间和非时间任务)、神经网络、前馈网络和反向传播、
3.RNN
循环神经网络是前馈神经网络,通过包含跨越相邻时间步长的边缘来扩充,向模型引入了时间的概念。和前馈网络一样,rnn的传统边缘之间可能没有循环。然而,连接相邻时间步长的边,称为循环边,可以形成循环,包括长度为1的循环,它是节点在时间上与自身的自连接。在t时刻,具有循环边的节点接收来自当前数据点x(t)的输入,同时也接收来自网络先前状态下隐藏节点值h(t−1)的输入。给定t时刻的隐含节点值h(t),每次t时刻的输出ˆy(t)。t−1时刻的输入x(t−1)可以通过循环连接影响t时刻及以后的输出ˆy(t)。
两个方程指定了一个简单递归神经网络中每个时间步上的计算所需的所有计算,如图3所示:
其中Whx为输入与隐层之间的常规权值矩阵,Whh为相邻时间步长隐层与自身之间的递归权值矩阵。bh和by向量是偏置参数,允许每个节点学习偏移量。
图3所示的网络跨时间步骤的动态可以通过如图4所示展开来可视化。根据这张图,网络可以不被解释为循环的,而是被解释为每个时间步长有一层并且在时间步长上共享权值的深层网络。很明显,展开的网络可以使用反向传播跨多个时间步进行训练。这种算法被称为时间反向传播(BPTT),由Werbos[1990]提出。所有经常使用的循环网络都适用它。
3.1 早期的RNN网络设计
1982年的Hopfield网络对于从损坏的版本中恢复存储的模式非常有用,它是玻尔兹曼机和自动编码器的先驱。
早期序列监督学习的体系结构是由Jordan提出的:Michael I. Jordan. Serial order: A parallel distributed processing approach. Technical Report 8604, Institute for Cognitive Science, University of California, San Diego, 1986.在该工作中的特殊单元是自连接的。直观地说,这些边允许跨多个时间步发送信息,而不影响每个中间时间步的输出。
同时,Sutskever等人提出了:Ilya Sutskever, Oriol Vinyals, and Quoc V. Le. Sequence to sequence learning with neural networks. In Advances in Neural Information Processing Systems, pages 3104–3112, 2014.在自然语言之间进行句子翻译,在生成文本序列时,每个时间步中选择的单词在接下来的时间步中作为输入输入到网络中。
Jeffrey L. Elman. Finding structure in time. Cognitive science, 14(2):179–211,1990.文献为后续LSTM工作的基础,Elman[1990]介绍的架构比早期的Jordan架构更简单。与隐藏层中的每个单元相关联的是一个上下文单元。每个这样的单元j0沿着固定权值wj0j = 1的边,将对应的隐藏节点j在前一个时间步的状态作为输入。这个值然后沿标准边反馈给相同的隐藏节点j。该体系结构相当于一个简单的RNN,其中每个隐藏节点都有一个自连接的循环边。固定权循环边的思想使隐藏节点自连通。本项工作使用反向传播训练网络,并证明该网络可以学习时间相关性。
3.2 训练RNN
由于学习长期依赖关系的困难,使用循环网络进行学习可能特别具有挑战性。消失和爆炸梯度的问题发生时,反向传播误差跨越许多时间步骤。举个例子,考虑一个网络使用一个输入节点,一个输出节点,和一个周期性的隐藏节点(图7)。现在考虑一个输入传递到计算网络时间τ和一个错误在时间t,假设输入的零干预时间的步骤。跨时间步权值的绑定意味着在隐藏节点j处的循环边总是具有相同的权值。因此,随着t - τ的增大,时刻τ的输入对时刻t的输出的贡献要么爆炸式增长,要么以指数速度趋近于零。因此,误差对输入的导数要么爆炸,要么消失。
截断时间反向传播(TBPTT)是解决连续运行网络爆炸梯度问题的一种方法。见于:Ronald J. Williams and David Zipser. A learning algorithm for continually running fully recurrent neural networks. Neural Computation, 1(2):270–280, 1989.使用TBPTT,可以设置传播错误所需的最大时间步长。虽然带有小隔断的TBPTT可以用来缓解梯度爆炸问题,但它需要牺牲学习远程依赖的能力。下面描述的LSTM体系结构使用了精心设计的具有固定单位权的循环边的节点来解决消失梯度问题。
下图为借鉴了图7结构对梯度消失问题进行可视化的结果。
在LSTM引入之前,试图训练循环网来弥补长时间的差距,但是效果并不比随机猜测的好。详细见于:Sepp Hochreiter and Jurgen Schmidhuber. Bridging long time lags by weight guessing and “long short-term memory”. Spatiotemporal Models in Biological and Artificial Systems, 37:65–72, 1996.
4.现代RNN架构
现代较为成功的RNN的架构文献为:
1.Sepp Hochreiter and Jurgen Schmidhuber. Long short-term memory. Neural Computation, 9(8):1735–1780, 1997.在LSTM中引入了记忆单元它是一种计算单元,取代了传统的网络隐层节点。有了这些记忆细胞,网络能够克服早期循环网络在训练时遇到的困难。
2.Mike Schuster and Kuldip K. Paliwal. Bidirectional recurrent neural networks. Signal Processing, IEEE Transactions on, 45(11):2673–2681, 1997.提出了双向循环神经网络,介绍了一种结构,其中使用来自未来和过去的信息来确定序列中任意一点的输出。这与以前的网络不同,在以前的网络中,只有过去的输入才能影响输出,并且已经成功地用于自然语言处理中的序列标记任务等。
上述两种新提出的架构已经相互结合地应用于音素分类:Alex Graves and Jurgen Schmidhuber. Framewise phoneme classification with bidirectional LSTM and other neural network architectures. Neural Networks, 18(5):602–610, 2005.和手写识别:Alex Graves, Marcus Liwicki, Santiago Fern´ andez, Roman Bertolami, Horst Bunke, and J¨ urgen Schmidhuber. A novel connectionist system for unconstrained handwriting recognition. Pattern Analysis and Machine Intelligence, IEEE Transactions on, 31(5):855–868, 2009.任务当中。
4.1 LSTM网络
提出LSTM模型主要是为了克服梯度消失的问题。该模型类似于一个带有隐层的标准循环神经网络,但隐层中的每个普通节点(图1)都被一个记忆单元所取代(图9)。每个记忆单元包含一个节点,节点具有固定权值1的自连接循环边,确保梯度可以通过许多时间步骤而不消失或爆炸。为了区分对内存单元的引用和对普通节点的引用,我们使用下标c。
“长期短期记忆”一词来源于以下直觉。简单的循环神经网络以权重的形式拥有长期记忆。在训练过程中,权值变化缓慢,编码有关数据的一般知识。它们也有短暂激活形式的短期记忆,从每个节点传递到后续节点。LSTM模型通过存储单元引入了一种中间类型的存储。存储单元是一个复合单元,由特定连接模式中的简单节点构建而成,其中包含了新的乘法节点,在图中以字母Π表示。下面枚举和描述LSTM单元的所有元素。注意,当我们使用向量表示法时,我们引用的是整个细胞层中的节点。例如,s是一个向量,它包含层中每个存储单元c上sc的值。当使用下标c时,它是为了索引一个单独的存储单元。
对图9中LSTM中单个记忆细胞中元素的说明
输入节点:这个单元标记为gc,是一个节点,它以标准方式在当前时间步从输入层x(t)获得激活,并在之前的时间步h(t−1)从隐藏层(沿循环边)获得激活。通常情况下,加权求和输入通过一个tanh激活函数运行,尽管在最初的LSTM论文中,激活函数是一个s形函数。
输入门:门是LSTM方法的一个显著特征。门是一种s形单元,与输入节点一样,它从当前数据点x(t)以及前一个时间步中的隐藏层获得激活。所谓门是因为它的值被用来乘以另一个节点的值。它是一个门,如果它的值为零,那么来自另一个节点的流量就会被切断。如果gate的值为1,则所有流都将通过。输入门ic的值乘以输入节点的值。
内部状态:在每个记忆细胞的核心是一个线性激活的节点sc,在原文中称为细胞的“内部状态”。内部状态sc有一个单位权固定的自连通循环边。因为这条边跨越相邻的时间步长且权值恒定,所以误差可以在时间步长中流动而不会消失或爆炸。这条边常被称为恒定误差传送带。在向量表示法中,内部状态的更新是,
是逐点的乘法。
遗忘门:这些大门fc是由Gers等人提出的[2000]。它们提供了一种网络可以学习刷新内部状态内容的方法。这在连续运行的网络中特别有用。对于遗忘门,计算正向传程上的内部状态的方程为:
输出门:存储单元最终产生的值vc等于内部状态sc的值乘以输出门oc的值。通常,内部状态首先通过一个tanh激活函数运行,因为这给每个细胞的输出与一个普通的tanh隐藏单元相同的动态范围。然而,在其他的神经网络研究中,修正后的线性单元具有更大的动态范围,更容易训练。因此,可以忽略内态上的非线性函数似乎是合理的。
自从最原始的LSTM被提出之后,很多改进的LSTM也具有一定的可信性。上述图10就是一个包含有遗忘们的LSTM记忆单元。
同一年,Gers和Schmidhuber[2000]提出了小孔连接,这种连接可以从内部状态直接传递到同一个节点的输入和输出门,而无需先经过输出门的调制。他们报告说,在网络必须学会测量事件之间的精确间隔的情况下,这些连接提高了定时任务的性能。下面的示例可以直观地描述窥视孔连接。考虑一个网络,它必须学会计数对象,并在看到n个对象时发出一些期望的输出。网络可能学会在看到每个对象后,让一定数量的激活进入内部状态。这个激活被固定的错误旋转器困在内部状态sc中,并且每次看到另一个对象时迭代递增。当第n个对象被看到时,网络需要知道从内部状态释放出内容,以便它可以影响输出。为了实现这一点,输出门oc必须知道内部状态sc的内容,因此sc应该是oc的输入。
具体的现代LSTM模型计算是根据下面的公式进行的,下面的公式给出了具有遗忘门的现代LSTM网络标准计算方法。其中的变量含义已经在上述的LSTM记忆单元的元素中介绍过。
LSTM在t时刻的隐含层值为向量h(t), h(t−1)为隐含层中每个存储单元在前一个时刻的输出值。请注意,这些方程包括遗忘门,但不包括窥视孔连接。对于不带遗忘门的更简单的LSTM的计算,通过对所有t设置f (t) = 1得到。按照Zaremba和Sutskever[2014]的最先进设计,我们对输入节点g使用tanh函数φ。而在原LSTM论文中,g的激活函数为sigmoid σ。
输入门为1可以使得输入的激活进入内部状态,同时,输出门也知道什么时候输出。当两个门都关闭时,激活被困在记忆细胞中,既不增长也不收缩,也不影响中间时间步长的输出。在向后通过方面,恒定的误差传送带使梯度在许多时间步中传播回来,既不爆炸也不消失。从这个意义上说,大门正在学习什么时候让错误进来,什么时候让错误出来。在实践中,与简单的rnn相比,LSTM在学习远程依赖关系方面表现出了优越的能力。因此,本综述中涉及的大多数最先进的应用论文都使用了LSTM模型。
包含有两个简单记忆单元的LSTM按照时间序列方式展开示意图。
一个常见的混淆点是,多个记忆细胞一起被用来组成工作神经网络的隐藏层的方式。为了减轻这种混乱,我们在图11中描述了一个具有两个存储单元的简单网络,类似于图4。每个存储单元的输出在随后的时间步长中流向输入节点和每个存储单元的所有门。通常包括多层记忆细胞[Sutskever等人,2014]。通常,在这些体系结构中,每一层在同一时间步中接受来自下面一层的输入,以及在上一个时间步中接受来自同一层的输入。
4.2 BRNN(双向循环神经网络)
与LSTM一样,最常用的RNN体系结构之一是双向循环神经网络(BRNN)(图12),该体系结构最早由Schuster和Paliwal[1997]描述。在这个体系结构中,有两层隐藏节点。这两个隐藏层都连接到输入和输出。这两个隐藏层的区别在于,第一个层与过去的时间有经常性的联系。在第二个步骤中,连接循环的方向被翻转,沿着序列向后传递激活。给定一个输入序列和一个目标序列,经过时间展开后,可以用普通的反向传播来训练BRNN。以下三个方程描述了一个BRNN:
其中h(t)和z(t)分别为前向和后向隐层的值。
BRNN的一个限制是它不能连续运行,因为它在未来和过去都需要一个固定的端点。此外,它不是一种适合在线设置的机器学习算法,因为它不太可能从未来接收信息,即知道没有被观察到的序列元素。但对于固定长度序列的预测,通常明智的做法是同时考虑过去和未来的序列元素。考虑词性标注的自然语言任务。给定一个句子中的任何一个单词,关于它前面和后面的单词的信息对于预测这个单词的词性是有用的。
LSTM和BRNN实际上是相容的思想。前者引入了一个新的基本单元,用于组成隐藏层,而后者涉及隐藏层的连接,而不管它们包含什么节点。这种被称为BLSTM的方法已经被用于实现手写识别和音素分类的最新结果[Graves和Schmidhuber, 2005, Graves等人,2009]。
4.3 神经图灵机(NTM)
神经图灵机(NTM)通过可寻址的外部存储器扩展了循环神经网络[Graves等人,2014]。这项工作提高了rnn执行复杂算法任务(如排序)的能力。作者的灵感来自认知科学理论,该理论认为人类拥有一个与记忆缓冲器相互作用的“中央执行器”[Baddeley et al., 1996]。该模型被称为神经图灵机(Neural Turing machine),与程序指示读头和写头以磁带的形式与外部存储器交互的图灵机类似。虽然读/写磁头的技术细节超出了本文的讨论范围,但我们的目标是传达对模型及其应用程序的高层次理解。
NTM的两个主要组成部分是控制器和内存矩阵。控制器,可以是一个循环或前馈神经网络,接受输入和返回输出到外部世界,以及传递指令和从存储器中读取。内存由N个存储位置组成的一个大矩阵表示,每个存储位置都是一个维数为m的向量。此外,大量的读写头有助于控制器和内存矩阵读写之间的交互。尽管有这些额外的功能,NTM是可区分的端到端,并可以通过使用BPTT的随机梯度下降变体进行训练。
Alex Graves, Greg Wayne, and Ivo Danihelka. Neural Turing machines. arXiv preprint arXiv:1410.5401, 2014.文献中,作者选择5个算法任务来测试NTM模型的性能。我们所说的算法是指对于每个任务,给定输入的目标输出可以通过一个简单的程序计算出来,这在任何通用编程语言中都很容易实现。一个例子是复制任务,其中输入是一个固定长度的二进制向量序列,后跟一个分隔符符号。目标输出是输入序列的副本。在另一个任务中,优先级排序,输入由二进制向量序列和每个向量的不同标量优先级值组成。目标输出是按优先级排序的向量序列。实验测试了NTM是否可以通过监督学习训练来正确有效地实现这些常用算法。有趣的是,用这种方法找到的解可以很好地推广到比那些在训练集中出现的更长时间的输入。相反,没有外部内存的LSTM不能很好地推广到更长的输入。作者比较了三种不同的结构,即LSTM RNN、带前馈控制器的NTM和带LSTM控制器的NTM。在每个任务上,两个NTM体系结构在训练集性能和对测试数据的泛化性能上都显著优于LSTM RNN。
5.LSTM和BRNN的应用
循环神经网络已经成功地用于建模顺序输入和顺序输出,以及单个数据点和序列之间的映射(在两个方向上)。此图基于Karpathy[2015]中类似的图,显示了如何使用具有顺序输入和/或顺序输出的rnn对大量任务进行建模。在每个子图中,蓝色的矩形代表输入,红色的矩形代表输出,绿色的矩形代表整个神经网络的隐藏状态。(a)这是标准前馈网络假设的常规独立情况。(b)文本和视频分类是将序列映射到一个固定长度向量的任务。(c)图像标题则是相反的情况,即输入图像是单个非顺序数据点。(d)这种结构已被用于自然语言翻译,这是一个序列到序列的任务,两个序列可能有不同的长度。(e)这种结构已被用于学习文本的生成模型,在每一步预测以下字符。
5.1 自然语言输入和输出的表示
当单词在每个时间步中输出时,通常输出由softmax向量y(t)∈RK组成,其中K是词汇表的大小。softmax层是一个标准化的元素逻辑函数,使其所有组件的总和为1。直观地说,这些输出对应于每个单词在那个时间步中是正确输出的概率。
对于输入由一系列单词组成的应用程序,通常这些单词以连续的时间步长一次一个地输入到网络。在这些情况下,表示单词的最简单方法是1 -hot编码,使用长度等于词汇表大小的二进制向量,因此“1000”和“0100”将分别表示词汇表中的第一个和第二个单词。Elman[1990]等人讨论了这种编码方式。然而,这种编码的效率很低,需要大量的位。此外,它没有提供直接的方法来捕获编码本身中单词之间相似性的不同方面。因此,现在使用意义向量对分布式表示的单词建模是很常见的。在某些情况下,通过大量的监督数据语料库来学习单词的这些含义,但更常见的方法是使用基于单词共现统计的嵌入来初始化含义向量。可以从这些统计数据中生成词向量的免费代码包括GloVe [Pennington等人,2014]和word2vec [Goldberg和Levy, 2014],它们实现了Mikolov等人[2013]的词嵌入算法。
文本数据的分布式表示由Hinton[1986]描述,Bengio等人[2003]在自然语言中广泛使用,最近在许多描述递归自动编码器(RAE)网络的论文中引起了深度学习社区的广泛关注[Socher等人,2010,2011a,b,c]。为了明确,我们指出这些递归网络不是递归神经网络,在目前的研究中,RNN的缩写通常指递归神经网络。虽然它们是不同的方法,但递归和递归神经网络有重要的共同特征,即它们都涉及广泛的权重绑定,都是通过反向传播进行端到端训练的。
在许多使用循环神经网络的实验中[Elman, 1990, Sutskever等人,2011,Zaremba和Sutskever, 2014],输入每次输入一个字符,输出每次生成一个字符,而不是每次生成一个单词。虽然输出几乎总是软max层,但许多论文忽略了如何表示单字符输入的细节。似乎可以合理地推断字符是用单热编码编码的。我们知道没有纸张在单字符级别使用分布式表示的情况。
5.2 评价方法
训练系统输出可变长度的单词序列的一个严重障碍是现有的性能指标的缺陷。在标题或翻译的情况下,可能有多个正确的翻译。此外,一个带标签的数据集可以包含每个示例的多个引用翻译。与这种黄金标准相比,将标准绩效衡量方法应用于二元分类问题更令人担忧。
对于具有多个引用的结构化自然语言输出,一个常用的度量标准是BLEU分数。2002年开发的BLEU评分与修改后的ungraph精度相关[Papineni等人,2002]。它是在1和某个上限n之间的所有n值的n-gram精度的几何平均值。在实践中,4是n的一个典型值,显示出与人类评价者的最大一致性。因为提供过短的译文可以提高精度,所以BLEU得分包括一个简短惩罚b。其中c是候选译文的平均长度,r是参考译文的平均长度,所以简短惩罚为:
那么BLEU分数是:
其中pn是修正的n个图的精度,它是出现在任何参考翻译中的候选翻译中的n个图的数量,除以候选翻译中的n个图的总数。这被称为修改精度,因为它是对多引用情况下的精度的调整。
在最近的论文中,BLEU分数经常被用来评估翻译和字幕系统。虽然BLEU评分确实与人类判断高度相关,但并不能保证任何一个具有较高BLEU评分的翻译就会优于另一个具有较低BLEU评分的翻译。事实上,虽然在大量的翻译中,BLEU分数往往与人类的判断相关,但在单句水平上,它们并不能准确预测人类的判断。
流星是一种替代指标,旨在克服BLEU分数的弱点[Banerjee和Lavie, 2005]。METEOR是基于候选句和参考句之间明确的字词匹配。当存在多个引用时,使用最佳分数。不像蓝色,流星利用已知的同义词和词干。第一步是计算F分数:
基于单个单词的匹配,其中P是准确度,R是召回率。下一步是计算碎片惩罚M∝c/ M,其中c是连续单词的最小块数,这样这些单词在候选和引用中都是相邻的,M是产生该分数的匹配的unig图的总数。最后,比分是:
根据经验,与BLEU评分相比,这一指标更符合人类评分。然而,流星比蓝u更不容易计算。要复制另一方报告的流星评分,必须精确地复制它们的词干和同义词匹配以及计算。这两个度量标准依赖于具有完全相同的引用转换集。
即使在二元分类的直接情况下,没有序列依赖性,常用的性能指标F1会产生最优阈值策略,这可能不符合什么应该构成良好的性能的直觉[Lipton等人,2014]。同样,考虑到上面这些性能指标是真实目标的弱代理,可能很难区分哪些系统真正更强,哪些系统在使用中最适合性能指标。
5.3 自然语言翻译
文本翻译是机器学习中的一个基本问题,很难用浅层方法解决。有些任务,如文档分类,可以通过忽略词序的词袋表示成功执行。但是语序在翻译中是必不可少的。“被愤怒的病毒杀死的科学家”和“被愤怒的科学家杀死的病毒”这两个句子有相同的词汇表达。
Ilya Sutskever, Oriol Vinyals, and Quoc V. Le. Sequence to sequence learning with neural networks. In Advances in Neural Information Processing Systems, pages 3104–3112, 2014.文献中,作者提出了一个使用两个多层lstm的翻译模型,该模型在英语到法语的翻译中表现出了令人印象深刻的性能。第一个LSTM用于编码来自源语言的输入短语,第二个LSTM用于解码目标语言中的输出短语。模型工作流程如下(图14):
- 源短语每次只输入一个单词给编码的LSTM,而不输出任何内容。作者发现,当输入的句子以相反的顺序输入到网络时,得到的结果明显更好。
- 当到达该短语的末尾时,一个表示输出语句开头的特殊符号被发送到解码LSTM。此外,解码LSTM接收第一个LSTM的最终状态作为输入。第二个LSTM在每个时间步上输出词汇表的软最大概率。
- 在推理时,在每个时间步中使用波束搜索从分布中选择最有可能的单词,运行第二个LSTM,直到到达句尾(EOS)令牌。
为了进行训练,真正的输入被反馈给编码器,真正的翻译被反馈给解码器,而损耗则从解码器的输出传播回整个序列到序列模型。该网络的训练是为了使训练集中每个句子的正确翻译的可能性最大化。在推理时,使用从左到右的波束搜索来确定输出哪些单词。在每个时间步骤之后,将选择几个最有可能的下一个单词进行扩展。当网络输出句尾标记(EOS)时,波束搜索结束。Sutskever等人[2014]使用无动量的随机梯度下降训练模型,在前五个epoch之后,每个epoch将学习速率减半两次。该方法的BLEU得分为34.81分,超过了以往最好的神经网络NLP系统,并与非神经网络方法(包括具有明确编程领域专业知识的系统)发布的最佳结果相匹配。当他们的系统被用于从另一个系统对候选翻译进行重新排序时,它获得了36.5的BLEU分数。
实现这些结果涉及8个gpu。然而,培训花了10天时间才完成。LSTM的每一层分配一个GPU,另外4个GPU用于计算softmax。实现用c++进行编码,LSTM的每个隐藏层包含1000个节点。输入词汇量为16万个单词,输出词汇量为8万个单词。在−0.08到0.08之间均匀随机初始化权重。
另一种语言翻译的RNN方法由Auli等人提出[2013]。他们的RNN模型使用Mikolov的单词嵌入和解码器输出的格表示,以方便在可能翻译的空间中搜索。在格中,每个节点对应一个单词序列。他们在法英翻译任务上的BLEU得分为28.5。两篇论文都提供了类似数据集的结果,但Sutskever等人[2014]只报告了英法翻译,而Auli等人[2013]只报告了英法翻译,因此无法对两种模型的性能进行比较。
5.4 图像字幕
最近,循环神经网络已成功用于生成描述照片的句子[Vinyals等人,2015,Karpathy和Fei-Fei, 2014, Mao等人,2014]。在这个任务中,一个训练集由输入图像x和目标标题y组成。给定一个大的图像-标题对集合,训练一个模型来预测一个图像的适当标题。
Oriol Vinyals, Alexander Toshev, Samy Bengio, and Dumitru Erhan. Show and tell: A neural image caption generator. In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition, pages 3156–3164, 2015.文献中,作者跟进语言到语言翻译的成功,将字幕作为图像到语言翻译的一个案例。他们引入了用卷积神经网络对图像进行编码,然后再用LSTM进行解码的思想,而不是同时使用LSTM进行编码和解码。Mao等人[2014]独立开发了一个类似的RNN图像字幕网络,并在Pascal、Flickr30K和COCO数据集上取得了当时最先进的结果。
Andrej Karpathy and Li Fei-Fei. Deep visual-semantic alignments for generating image descriptions. arXiv preprint arXiv:1412.2306, 2014.文献中,作者在这项工作的基础上,使用卷积网络编码图像,并使用双向网络注意机制和标准RNN解码字幕,使用word2vec嵌入作为单词表示。他们考虑了完整的图像标题和捕获图像区域和文本片段之间的对应关系的模型。在推理时间,它们的过程类似于Sutskever等人[2014]所描述的过程,其中句子一次解码一个单词。最可能的单词被选择并在下一个时间步骤中提供给网络。这个过程不断重复,直到生成EOS令牌。
为了传达这些问题的规模,Karpathy和Fei-Fei[2014]关注三个标题图像的数据集:Flickr8K、Flickr30K和COCO,大小分别为50MB(8000张图像)、200MB(30000张图像)和750MB(328,000张图像)。该实现使用Caffe库[Jia等人,2014],卷积网络是在ImageNet数据上进行预训练的。在一个修订的版本中,作者报告lstm优于更简单的rnn,并且从随机初始化学习单词表示通常比word2vec嵌入更好。作为一种解释,他们说word2vec嵌入可能会在嵌入空间中把像颜色这样的单词聚在一起,这可能不适合图像的视觉描述。
5.5 进一步应用
手写识别是一个应用领域,双向lstm已被用于实现目前的先进结果。在Liwicki等人[2007]和Graves等人[2009]的工作中,数据是从交互式白板中收集的。传感器以定时采样的时间步长记录笔的(x, y)坐标。在最近的一篇论文中,他们使用了双向LSTM模型,与HMM模型相比,HMM模型的文字水平正确率达到了81.5%,优于HMM模型的70.1%。
去年,出现了一些论文,将翻译和图像字幕循环网络的成功推广到新的领域。这些应用中最有趣的是无监督视频编码[Srivastava等人,2015]、视频字幕[Venugopalan等人,2015]和程序执行[Zaremba和Sutskever, 2014]。Venugopalan等人[2015]演示了一种序列到序列的结构,该结构对视频帧进行编码并对文字进行解码。在每一步中,编码LSTM的输入是卷积神经网络的最顶层隐藏层。在解码时,网络在每个时间步上输出词汇表的概率。
Wojciech Zaremba and Ilya Sutskever. Learning to execute. arXiv preprint arXiv:1410.4615, 2014.文献中,作者试着用网络一次读取一个字符的计算机程序,并预测它们的输出。他们专注于输出整数的程序,并发现对于简单的程序,包括两个9位数的相加,他们的网络在几个堆叠的隐藏层中使用LSTM单元,并从左到右通过程序,可以以99%的准确率预测输出。
6.讨论
在过去的三十年里,循环神经网络已经从主要用于认知建模和计算神经科学的模型发展到强大而实用的工具大规模监督学习序列。这一进步归功于模型架构、训练算法和并行计算的进步。循环网络特别有趣,因为它克服了传统机器学习方法对输入和输出数据的许多限制。在递归网络中,连续样本之间的独立性假设被打破,因此输入和输出的定维假设也被打破。
虽然lstm和brnn近年来已经在许多任务上建立了准确性记录,但值得注意的是,进步来自于新的架构,而不是从根本上来说来自于新的算法。因此,自动探索可能模型的空间,例如通过遗传算法或马尔科夫链蒙特卡罗方法,可能是有前途的。神经网络提供了广泛的可转移和可组合的技术。新的激活函数、训练过程、初始化过程等通常可以跨网络和任务转移,通常会带来类似的好处。随着这种技术数量的增长,测试所有组合的实用性就会下降。似乎可以合理地推断,作为一个社区,神经网络研究人员正在探索模型架构和配置的空间,就像遗传算法一样,混合和匹配技术,以评估感兴趣的主要数据集的形式的适应度函数。
这个推论提出了两个推论。首先,如前所述,这个研究机构可以从探索模型空间的自动化程序中受益。其次,当我们构建旨在执行更复杂任务的系统时,我们将受益于改进的适应度函数。一个BLEU分数激发的可信度要低于二分分类任务报告的准确性。为此,在可能的情况下,首先在已建立基准的数据集上使用经典前馈网络对技术进行单独测试,然后在不太可靠的评估标准下将其应用于循环网络,这似乎是一种谨慎的做法。
最后,循环神经网络在自然语言任务上的快速成功让我们相信,将这项工作扩展到更长的文本将是卓有成效的。此外,我们设想对话系统可以按照类似于用于翻译、编码提示和生成响应的架构的原则来构建,同时保留完整的对话历史作为上下文信息。