首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

CMU联合蒙特利尔大学提出嵌套式 LSTM,性能优于堆栈式LSTM

图:pixabay

原文来源:arXiv

作者:Joel Ruben Antony Moniz、David Krueger

「雷克世界」编译:嗯~阿童木呀

我们提出嵌套式长短期记忆网络(Nested LSTMs,NLSTM),一种具有多级记忆的新型循环神经网络(RNN)架构。嵌套式LSTM通过嵌套而不是堆栈来增添LSTM的深度。在NLSTM中,记忆单元的值是由LSTM单元计算的,其中,LSTM单元具有自身内在的记忆单元。具体而言,NLSTM记忆单元并不是按照等式:

对(外部)记忆单元的值进行计算,而是使用级联:

将其作为内部LSTM(或NLSTM)记忆单元的输入,并设定:

在我们各种字符级语言建模任务的实验中,在参数数量相似的情况下,嵌套式LSTM的性能要远优于堆栈和单层LSTM,并且,与堆栈式LSTM的高级单元相比,LSTM的内部记忆能够学习更长期的依赖关系。

可以这样说,学习长期的依赖关系是当前人工智能领域中机器学习方法的关键性挑战。对于人类来说,将这些长期依赖关系与直接的环境相调和的能力是必不可少的,即适应和使用以前所获得的,且能够与当前参考框架相关的知识。如果从一个小规模的概念出发,这种能力的一个典型示例可以是这样的,即一个人能够基于过去的经验预测句子或文档中的字符和单词(例如,以常见的结构和短语的形式)、文档处理中的通用问题、以及问题中有关具体句子的确切措辞。基于循环神经网络的体系结构已经在使得机器能够模仿这种能力方面取得了显著进展。

嵌套式LSTM的架构

循环神经网络(RNN)在其整个输入历史中,都是以世界状态的当前表示为依据的(或强化学习说法中的“观察”),因此对于学习时间上的抽象特征自然而然是适合的。理论上来说,一个简单的RNN可以表示任意函数,因此有能力在任意时间尺度上解决涉及依赖关系的任务。在实践中,许多专家已经证明,更为复杂的体系结构是解决许多任务的关键。其中一个原因是梯度消失问题(Hochreiter于1991年、Bengio等人于1994年提出),它使得简单的RNN难以学习长期依赖关系。成功的RNN体系结构,如LSTM(Hochreiter和Schmidhuber于1997年提出)通常包含能够改善梯度消失问题的记忆机制(memory mechanisms)。

LSTM、堆栈式LSTM和嵌套式LSTM的计算图形。隐藏的状态、外部记忆单元和内部记忆单元分别由h、c和d进行表示。虽然当前的隐藏状态可以直接影响下一个内部记忆单元的内容,但内部记忆只有通过外部记忆才能够影响隐藏状态。

一个更根本的问题是,学习检测长期依赖关系(long-term dependencies)涉及到一个根本性的困难——信用分配(credit assignment)问题:在没有先验信息的情况下,任何过去的事件都可能对当前事件负责。而诸如记忆机制之类的结构特征对隐式先验进行编码,这可能有助于解决信用分配问题。记忆机制使得一个模型在任意长的时间尺度上记住过去的信息,这样就可以将信用分配给遥远过去的事件。我们试图通过创建一种全新的记忆结构以对时间层次(temporal hierarchies)的附加隐式先验进行编码。具体而言,我们提出通过嵌套选择性地对记忆进行访问,从而在记忆中构建时间层次结构。

与内部单元(左)和外部单元(右)的输入字符相对应的单元激活的可视化。红色意味着一个负单元状态值,而蓝色代表着一个正单元状态值。较暗的阴影意味着更大的幅度。

虽然在层次记忆方面存在一些以往的研究成果,但是LSTM(及其变体)仍然是序列任务中最为通用的深度学习模型,例如在字符级语言建模任务中。特别地,默认的堆栈式LSTM架构使用一系列堆叠在一起的LSTM来处理数据,这一层的输入是前一层的输出。在这项研究中,我们提出并探索一种全新的嵌套式LSTM架构(NLSTM),我们认为这是一种堆栈式LSTM的潜在性替代方案。

Penn Treebank数据集(Marcus等人于1993年提出)里面包含大约100万个单词,具有标准的训练、验证、测试分割。在给定输入序列的情况下,我们对该数据集上的模型进行训练以执行字符级预测,并测量负对数似然(NLL)损失和每个字符的比特(BPC,定义为NLL除以ln2)。

在PTB的测试和验证集上,BPC作为字符级语言建模的轮数的函数

嵌套式LSTM与各种基线的BPC损失。测试BPC损失对应于该模型在其具有最小有效BPC(也予以显示)的那个轮数的损失。

我们的可视化表明,相较于堆栈式LSTM中的高层次记忆,NLSTMs的内部记忆实际上能够在更长的时间尺度上运行。我们的实验结果还表明,NLSTM在一系列任务中的性能表现都要优于堆栈式LSTM。

在NLSTM中,LSTM记忆单元可以访问内部记忆,它们使用标准的长短期记忆网络门控(LSTM gates)进行选择性地读取和写入。这个关键特征使得模型能够实现比传统的堆栈式LSTM更为有效的时间层次结构。在NLSTM中,(外部)记忆单元可以自由地、选择性地将相关的长期信息读取和写入其记忆单元。相反,在堆栈式LSTM中,可以直接访问上层激活(类似于内部记忆)以产生一个输出,因此必须包含所有与当前预测相关的短期信息。换句话说,堆栈式LSTM和嵌套式LSTM之间的主要区别在于:NLSTM能够实现选择性对内部记忆进行访问。这就释放了内部记忆,从而能够在更长的时间范围内记忆和处理事件,即使这些事件与当前的事件无关。

嵌套式LSTM(NLSTM)是LSTM模型的一个简单扩展,它通过嵌套而不是通过堆栈来增加深度。NLSTM的内部记忆单元形成内部记忆,只有通过外部记忆单元才能被其他计算元件所访问,从而实现时间层次的形式。在我们的实验中,NLSTM的性能要优于具有相似参数数量的堆栈式LSTM,并且与堆栈式LSTM相比,在记忆单元的激活中能够产生更为明确的时间层次。因此,可以认为NLSTM是堆栈式模型的一种很有发展前景的替代方案。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180203A0QZCM00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com