LSTM: A Search Space Odyssey

2020-05-22  本文已影响0人  0_oHuanyu

0. 摘要

1995年,RNN的概念被提出之后,已经出现了许多LSTM架构的变种。最近这些变种成为了很多机器学习问题的SOA模型。这又重新唤起了大家研究LSTM中元素和结作用进行理解的兴趣。本文首次给出了大规模数据集上的模型分析,研究针对3个方面的8个LSTM模型:演讲识别,手写识别,多声音音乐建模。每个模型的超参都不同,是通过随机搜索得到的,并用了fanova来衡量这些超参的重要性。最终跑了1500轮实验,约等于15年CPU时间,这就使得本论文对LSTM应用在大数据上的论述最为有力。我们的结果表明,没有LSTM的变种比经典的LSTM架构更优,也论证了遗忘门和输出激活函数是最重要的部件。进一步研究还表明,这些超参实际上是相互独立的,我们还给出了调参的指导意见。

关键词:RNN,LSTM,序列学习,随机搜索,fANOVA

1. 引言

RNN中的LSTM模型,被证明为时序问题的最好的模型。之前这种问题要么被转化为特定问题,要么就是存在长序列依赖问题。而LSTM就解决了这些问题,而且泛化能力还很强。并且LSTM没有像SRN模型一样存在优化困难的问题,LSTM推进了很多困难问题的SOA,包括:手写识别和生成、语言建模与翻译、语音识别、研究综合、蛋白质二级结构预测、声音分析、视频目标识别。

LSTM的核心理念就是用一个记忆单元来存储长时间的信息,然后通过一个非线性的门单元来控制信息的流入和流出。很多现代的研究都对LSTM的原始公式做了一些改进。然而这些LSTM的变种在不同数据量、不同领域、不同性质的问题上的应用早已超出了它们原来被提出的范畴。本文就是论证这些不同的变种与应用的,并且全面论证了如何才能提升LSTM模型的表现。

我们在八个问题上用经典LSTM(vanilla LSTM)和LSTM的8个变种做了实验。每个变种都是vanilla LSTM做了一个小的改动。这样方便观察每个改动的效果。为了保证模型最佳效果,我们使用了随机搜索来寻找最优的超参,我们还为调参提供了指导。

2. 经典LSTM:vanilla LSTM

最为大家所广泛引用的LSTM模型由Graves 和Schmidhuber提出,我们称之为vanilla LSTM,并且把它作为其他变种的对比参考。vanilla LSTM是对原LSTM的改进,并且使用了全梯度训练。

vanilla LSTM的模块如下所示:

image.png

它包含三个门,输入模块、记忆单元、输出激活函数、窥视孔连接。它的输出连接到自身的输入和门上。

A:前向

xt:输入向量

N:LSTM的维度

M:输入的维度

就有如下LSTM权重(就是要求的参数):

image.png

那么vanilla LSTM的公式如下:

image.png 其中g、h和σ都是pointwise的非线性激活函数。门激活都是用sigmoid函数,block的输入和输出都是用tanh函数,两个向量相乘用 image.png

来标记。

B:序列反向传播

LSTM的delta的反向传播如下:

image.png

t是上层传下来的误差向量,比如说 E是损失函数,那么就对应

image.png
但是不包含循环依赖。当存在多层结构时(就是处理时序信息时),就需要计算输入的误差,公式如下: image.png

权重的更新如下:

image.png

其中的*符号可以指代z、i、f、o。<>符号指代向量的外积。

3. LSTM的历史

最初版本的LSTM包括记忆单元、输入和输出门,但是没有遗忘门和窥视孔连接。输出门、单元的偏差、输入的激活函数都是在特定试验中加入的。训练都是用实时训练和时序反向传播完成的。只有记忆单元的梯度是通过时序累积的,其他门的梯度直接抛弃。所以那个研究用的梯度并不百分百符合梯度的定义。这个版本的另一个特点就是full gate recurrence,也就是所有门接收了上一个时间点上block输出+所有门的全部输入。之后的版本都没有这个特点。

A 遗忘门

首篇论文建议LSTM可以引入遗忘门,这样可以让LSTM重设自身的状态。这使模型可以处理连续性的任务,比如嵌入的Reber grammar。

B 窥视孔连接

Gers 和Schmidhuber提出,为了更好的学到时序信息,记忆单元需要对门进行控制。迄今为止这是唯一的连接到输出门的方式。窥视孔连接加入之后,学习时序信息更容易了。另外,他们还同时添加了输出门的激活函数,虽然迄今为止还没有证据表明这个结构有什么作用。

C 全梯度

vanilla LSTM模型最后的完善是由Graves 和Schmidhuber完成的[20]。这项研究给出了经典LSTM架构的全梯度时序反向传播算法(BPTT:full backpropagation through time),并且在TIMIT上提交了结果。BPTT使LSTM的梯度可以做到用有限的区别进行检查,这就给LSTM带来了巨大的优势,在实践中更加可靠。

D 其他变种

自vanilla LSTM问世以来就是最流行LSTM架构,不过仍然存在其他变种。在BPTT之前,[27]使用Extended Kalman Filtering方法也能对LSTM进行训练,只是计算代价比较高。[28]使用一种基于演化的算法来优化vanilla LSTM模型。

[29] 给出了几种LSTM架构,可以对基于上下文的语法器进行优化,[30]对此作了进一步的研究。[9]引入了一个线性 映射层来映射LSTM层前向连接和循环之前的输出,以达到减少参数的目的。通过引入一个可训练的缩放参数,[5]在离线手写识别的数据集上获得了效果提升。[31]中提出了动态核记忆(Dynamic Cortex Memory),[31]在同一个block的门之间建立连接,提升了LSTM的收敛 速度。

[32] 给出了一个新的简单变种GRU,他们既不用窥视孔连接,也不用输出层激活函数,而是把输入门和遗忘门合并成“更新门”,他们的输出门(也叫复位门)仅把循环信息连接到模块的输入上(Wz)。[33]对GRU和vanilla LSTM的初始化做了比较,得到了很多结果。

4. 模型评估的准备

本论文的目的是比较模型的区别,而不是达到SOA。因此论文 尽量使初始化简单,比较尽量公平。vanilla LSTM作为baseline和其他变种一起评估。每个模型仅对原模型进行一处增删改,以达到控制变量的效果。使用不同领域的三个数据集来进行交叉检验。并且使用随机搜索来寻找每个模型的最佳超参。

A 数据集

每个数据集都划分了训练集、验证集(用于early stop)、测试集。

TIMIT****:这个数据集是演讲声音的数据集,模型需要识别当前声音属于61个音源的哪一个。通过从原始数据中提取12个倒谱系数Mel Frequency Cepstrum Coefficients(MFCCs)+25ms以上的hamming window,10ms的步长,0.97的基音频加重。这是音频领域常用的处理方法,并且这样做可以跟早期的LSTM研究进行对比。13个系数和它们的一二阶导数组成了网络的39个输入,并且这些输入都经过归一化处理。

评价指标为分类错误率。训练、验证、测试的数据集大小分别为:3696, 400, 192。平均304个frame。

IAM Online: 这是个手写识别任务数据集,不过数据记录了整个书写的过程,如下所示:

image.png image.png

每个序列的frame都是4维向量,分别代表△x、△y(笔尖位置的移动),t(笔尖移动的时间),笔尖抬起到下一个字的时间。任务就是把这些序列识别成字符串。

网络的目标函数是CTC(Connectionist Temporal Classification),82种输出(81个字符+1个空格)。论文用CER(Character Error Rate)来作为衡量指标。

JSB Chorales****:这是个声音数据集,是382个4和弦的赞美诗数据集。数据处理方法是把MIDI序列转化成C大调或者C小调,然后每4个note采样1个,称为piano-rolls。目标函数是negative log likelihood。

B 网络结构&训练

JSB Chorales任务用的是单向LSTM+sigmoid输出层。TIMIT和IAM任务用的是双向LSTM,包含两个隐层,一层处理正向一层处理反向,都连到一个softmax上。TIMIT 和JSB Chorales使用交叉熵,IAM Online task使用Connectionist Temporal Classification(CTC)[39]。初始参数正态分布标准差为0.1,使用Nesterov-style动量法随机梯度下降训练。使用全梯度BPTT算法进行梯度计算。150个epoch或者15个epoch之后early stop。

C LSTM变种

vanilla LSTM记为Vanilla (V),激活函数中σ使用sigmoid,g、h使用tan。 V架构的8个变种如下:

image.png image.png

CIFG指的是把输入门和记忆单元的自连接合并为一个(仿照CRU的设计)。相当于如下公式:

image.png

FGR指的是在所有的门上都加上了自连接,这是最原始的LSTM的定义。这就添加了9个循环参数矩阵,增加了非常多的参数。

D 超参的搜索

一共进行了27次超参搜索=(1个原始LSTM+8个变种)*3个数据集,搜索了以下超参:

每个隐含层所包含的block的数量:log-uniform samples from [20; 200]

学习率:log-uniform samples from [10-6; 10-2]

动量: log-uniform samples from [0:01; 1:0]

输入噪音的标准差:uniform samples from [0; 1]

注:所谓的log-uniform指取值根据log函数,比如下面这种:

image.png image.png

另外,如果把梯度裁剪到-1,1之间的话会让模型表现下降,因此所有的训练中梯度都没有进行裁剪。和以往的模型对比不太一样的是,所有变种模型的参数数量都不是固定的。

5. 结果与分析

A 不同变种的结果对比

image.png

基于实验结果,有:

1. 移除输出门的激活函数或者移除遗忘门都会损害模型在三种任务上的效果。除了CEC之外,遗忘旧的信息和压缩记忆单元对于LSTM来说非常重要。没有输出激活函数的话,block的输出就会不受限制的增长。把遗忘门和输入门合并可以避免这个问题,并且让输出门的非线性变得不那么重要,这一定程度上解释了GRU不需要它还能表现很好的原因。

2. 把输入门和遗忘门合并CIFG,在三个数据集上都没有明显的提升模型表现。类似的,去除窥视孔连接,也没有什么影响。移除这些结构可以使模型简化,迭代加快,也许值得去掉。

3. 加入全梯度循环FGR没能显著提升TIMIT 或 IAM,反而严重降低了在JSB Chorales上的表现。还是考虑到这个结构参数很多,我们建议移除。实际上这个结构仅在最原始的LSTM论文中有提到,其他的研究基本都不再使用了。

4. 移除输入门NIG,移除输出门NOG,移除输入门的激活函数NIAF,会显著降低在演讲和手写识别上的准确率,不过在音乐模型上的表现变化不大。我们假设这会在语言模型上有类似的体现。对于有监督的连续实值序列问题,输入门输出门输入门的激活函数都是非常关键的结构。

B 超参数的影响

fANOVA确定超参重要性的框架是基于这样的观察:“在回归树中多维度的边缘化比较容易实现”。这就意味着估计一个超参的边际误差可以通过对其他超参误差取均值。正常来说这需要全面的网格搜索,在本文中只是用了随机采样来替代。

一个超参平面的平均表现是通过训练一颗回归树得到的。然后把回归树沿着对应维度的子集进行预测,然后求和,这样就得到超参平面的平均表现。准确的说,训练100棵树的随机森林,然后取它们的预测表现平均值。这样可以提高泛化能力降低预测误差。然后用fANOVA的方法把得到的边缘误差分解变量。(这一段完全看不懂是什么意思)

学习率:学习率是最重要的超参,下图是实验结果:

image.png image.png

1. 可以看到学习率的选择视数据集而定,不过每个数据集上,学习率都有一段平稳的区间,作者建议可以从1开始,然后做一个coach搜索,每次递减到原来的0.1倍,直到找到最佳的lr为止。

2. 学习率引起的变化比隐含层引起的变化重要的多,这就意味着先搜索学习率,然后调节参数数量的调参策略比较好

3. 跟预想的一样,隐含层越多模型越好,计算时间越长。

4. 输入噪音:基本上都是损害模型效果的,而且还会显著增加训练时间。

5. 动量:基本没用,在所有模型上都没有表现出影响。研究证明动量在梯度下降求解LSTM时没有什么作用。

6. 超参之间的影响:

image.png

右侧是热量图,大概意思就是越是相互影响,颜色越深,相互不影响,颜色就是灰色。

左侧是效果图,这个图可以看做是单超参变化的二维图,单看一个维度的话就是单超参变化图。

基本上来说…..很遗憾没什么规律,作者也说关注超参的相互影响是难以用于实际调参的。在实践中可以认为它们相互独立(这也算贡献了)。

6. 总结

1. 本文是个实验报告,里面很多实验大家都很关心,直接看我的报告就行了,省得自己做实验。

2. 本文对LSTM的结构变种做了对比,发现CIFG和NP这两个变种可以简化模型,并且不损害模型效果。

3. 遗忘门和输出门激活函数是最重要的,作者认为输出门激活函数的作用就是防止记忆单元无限增长。并且这个解释在GRU中可以得到验证 。

4. 超参数中最重要的是学习率,其次是隐层数量。不过动量在LSTM中没有作用,高斯噪音在TIMIT中有一定作用但在其他数据集上有害。

5. 在调参时,超参数可以被当做独立变量。

6. 最后强行夸自己一波:普通模型可解释性很强,而LSTM这样的神经网络对于新手来说很不友好,很多调参的方法都是基于专家的经验或者直觉。本论文就可以提供这样的直觉,这对大家都有好处,鼓掌!

引用

[5] Patrick Doetsch, Michal Kozielski, and Hermann Ney. Fast and robust training of recurrent neural networks for offline handwriting recognition. In 14th International Conference on Frontiers in Handwriting Recognition, 2014. URL http://people.sabanciuniv.edu/berrin/cs581/Papers/icfhr2014/data/4334a279.pdf

[9] Hasim Sak, Andrew Senior, and Franc¸oise Beaufays. Long short-term memory recurrent neural network architectures for large scale acoustic modeling. In Proceedings of the Annual Conference of International Speech Communication Association (INTERSPEECH), 2014. URL http://193.6.4.39/∼czap/letoltes/IS14/IS2014/PDF/AUTHOR/IS141304.PDF.

[20]. Alex Graves and Jurgen Schmidhuber. Framewise ¨phoneme classification with bidirectional LSTM and other neural network architectures. Neural Networks, 18(5–6): 602–610, July 2005. ISSN 0893-6080. doi: 10.1016/j. neunet.2005.06.042. URL http://www.sciencedirect.com/ science/article/pii/S0893608005001206

[27] Felix A. Gers, Juan Antonio Perez-Ortiz, Douglas Eck, ´and Jurgen Schmidhuber. DEFK-LSTM. In ¨ ESANN 2002, Proceedings of the 10th Eurorean Symposium on Artificial Neural Networks, 2002.

[28] J Schmidhuber, D Wierstra, M Gagliolo, and F J Gomez. Training Recurrent Networks by EVOLINO. Neural Computation, 19(3):757–779, 2007

[29] Justin Bayer, Daan Wierstra, Julian Togelius, and Jurgen ¨Schmidhuber. Evolving memory cell structures for sequence learning. In Artificial Neural Networks–ICANN 2009, pages 755–764. Springer, 2009. URL http://link. springer.com/chapter/10.1007/978-3-642-04277-5 76.

[30] Rafal Jozefowicz, Wojciech Zaremba, and Ilya Sutskever. An empirical exploration of recurrent network architectures. In Proceedings of the 32nd International Conference on Machine Learning (ICML-15), pages 2342–2350, 2015.

[31] Sebastian Otte, Marcus Liwicki, and Andreas Zell. Dynamic Cortex Memory: Enhancing Recurrent Neural Networks for Gradient-Based Sequence Learning. In Artificial Neural Networks and Machine Learning – ICANN 2014, number 8681 in Lecture Notes in Computer Science, pages 1–8. Springer International Publishing, September 2014. ISBN 978-3-319-11178-0, 978-3-319-11179-7. URL http://link.springer.com/chapter/10.1007/978-3-319-11179-7 1.

[32] Kyunghyun Cho, Bart van Merrienboer, Caglar Gulcehre, Fethi Bougares, Holger Schwenk, and Yoshua Bengio. Learning Phrase Representations using RNN EncoderDecoder for Statistical Machine Translation. arXiv preprint arXiv:1406.1078, 2014. URL http://arxiv.org/abs/1406.1078.

[33] Junyoung Chung, Caglar Gulcehre, KyungHyun Cho, and Yoshua Bengio. Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling. arXiv:1412.3555 [cs], December 2014. URL http://arxiv. org/abs/1412.3555

[39] Alex Graves, Santiago Fernandez, Faustino Gomez, and ´ Jurgen Schmidhuber. Connectionist temporal classifica- ¨ tion: labelling unsegmented sequence data with recurrent neural networks. In Proceedings of the 23rd international conference on Machine learning, pages 369–376, 2006. URL http://dl.acm.org/citation.cfm?id=1143891

上一篇 下一篇

猜你喜欢

热点阅读