学界 | Nested LSTM:一种能处理更长期信息的新型LSTM扩展

选自arXiv

作者:Vihar Kurama

机器之心编译

参与:刘晓坤、李亚洲

近日,CMU 和蒙特利尔大学联合提出一种新型的多级记忆的 RNN 架构——嵌套 LSTM。在访问内部记忆时,嵌套 LSTM 相比传统的堆栈 LSTM 有更高的自由度,从而能处理更长时间规模的内部记忆;实验也表明,NLSTM 在多种任务上都超越了堆栈 LSTM。作者认为嵌套 LSTM 有潜力直接取代堆栈 LSTM。

虽然在层级记忆上已有一些研究,LSTM 及其变体仍旧是处理时序任务最流行的深度学习模型,例如字符级的语言建模。特别是默认的堆栈 LSTM 架构使用一系列 LSTM 一层层地堆叠在一起来处理数据,一层的输出成为下一层的输入。在此论文中,研究者们提出并探索了一种全新的嵌套 LSTM 架构(Nested LSTM,NLSTM),并认为其有潜力直接取代堆栈 LSTM。

在 NLSTM 中,LSTM 的记忆单元可以访问内部记忆,使用标准的 LSTM 门选择性地进行读取、编写。相比于传统的堆栈 LSTM,这一关键特征使得模型能实现更有效的时间层级。在 NLSTM 中,(外部)记忆单元可自由选择读取、编写的相关长期信息到内部单元。相比之下,在堆栈 LSTM 中,高层级的激活(类似内部记忆)直接生成输出,因此必须包含所有的与当前预测相关的短期信息。换言之,堆栈 LSTM 与嵌套 LSTM 之间的主要不同是,NLSTM 可以选择性地访问内部记忆。这使得内部记忆免于记住、处理更长时间规模上的事件,即使这些事件与当前事件不相关。

在此论文中,作者们的可视化图证明了,相比于堆栈 LSTM 中的高层级记忆,NLSTM 的内部记忆确实能在更长的时间规模上操作。实验也表明,NLSTM 在多种任务上都超越了堆栈 LSTM。

嵌套 LSTM

直观上,LSTM 中的输出门会编码仍旧值得记忆的信息,这些记忆可能与当前的时间步骤不相关。嵌套 LSTM 根据这一直观理解来创造一种记忆的时间层级。访问内部记忆以同样的方式被门控,以便于长期信息只有在情景相关的条件下才能选择性地访问。

图 1:嵌套 LSTM 架构

架构

在 LSTM 网络中,单元状态的更新公式和门控机制可以表示为以下方程式:

这些方程式与 Graves (2013) 等人定义的是非常相似的,但不包括 peephole 连接。Nested LSTM 使用已学习的状态函数 c_t = m_t(f_t⊙c_t−1, i_t⊙g_t) 来替代 LSTM 中计算 c_t 的加运算。我们将函数的状态表示为 m 在时间 t 的内部记忆(inner memory),我们会调用该函数以计算 c_t 和 m_t+1。我们可以使用另一个 LSTM 单元来实现该记忆函数,因此如上图 1 所示就生成了 Nested LSTM。同样,该记忆函数能够由另一个 Nested LSTM 单元替换,因此就能构建任意深的嵌套网络。

给定以上所述的架构特性,NLSTM 中记忆函数的输入和隐藏状态为:

特别的,注意如果记忆函数是加性的,那么整个系统将退化到经典的 LSTM,因此记忆单元的状态更新为:

图 2:LSTM、堆叠 LSTM 和嵌套 LSTM 的计算图。隐藏状态、外部记忆单元和内部记忆单元分别由 h、c 和 d 表示。当前隐藏状态可以直接影响下一个内部记忆单元的内容,而内部记忆单元只通过外部记忆单元才影响隐藏状态。

在本论文提出的 Nested LSTM 变体架构中,我们会使用 LSTM 作为记忆函数,且内部 LSTM 的运算方式由以下一组方程式控制:

现在,外部 LSTM 的单元状态更新方式为:

实验

可视化

图 3:关于内部单元(图左)和外部单元(图右)的输入特征的单元激活的可视化。红色表示负单元状态值,蓝色表示正单元状态值。更深的颜色表示更大的值。对于内部 LSTM 的状态,对 tanh(c_t tilde)进行了可视化(因为 c_t tilde 未约束),而对于外部 LSTM 的状态,则直接可视化了 c_t。

图 4:tanh(c^n_t)的可视化,表征第一(图右)和第二(图左)堆栈层的输入字符的单元激活。红色表示负单元状态值,蓝色表示正单元状态值。更深的颜色表示更大的值。

Penn Treebank 字符级语言建模

图 5:在 PTB 的测试和验证集上的 BPC(bits per character)vs. Epoch 曲线。

表 1:嵌套 LSTM 和多个基线模型的 BPC 损失的对比。测试(test)的 BPC 损失分别和各个模型在最小验证(valid)BPC 值的 epoch 的损失相关。

中文诗歌生成

表 2:嵌套 LSTM 和多个基线模型在中文诗歌生成数据集(Chinese Poetry Generation dataset)上的困惑度的对比。

图 6:在中文诗歌生成的测试和验证集上进行字符级预测的困惑度 vs. Epoch 曲线。

MNIST Glimpses

表 3:嵌套 LSTM 和多个基线模型在 MNIST Glimpses 任务上的 NLL(负对数似然度)和准确率的对比。其中采用的 epoch 是每个模型在验证集上有最高准确率的 epoch。和 NLL 相似,模型的验证 NLL 被用于确定测试 NLL 的 epoch。

图 7:在 MNIST Glimpses 的训练集和验证集上的 NLL(图左)和误差率(图右)vs. Epoch 的曲线图。

论文:Nested LSTMs

论文地址:https://arxiv.org/pdf/1801.10308.pdf

我们在本文中提出嵌套 LSTM(Nested LSTM,NLSTM),这是一种新型的多级记忆的 RNN 架构。NLSTM 通过嵌套(和堆栈相对)为 LSTM 增加深度。NLSTM 的一个记忆单元的值由一个 LSTM 单元(有自身的内部记忆单元)计算。具体来说,NLSTM 记忆单元不会如经典 LSTM 那样计算(外部的)记忆单元的值:

,而是利用级联:

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

。我们的实验表明,在相似的参数数量下,嵌套 LSTM 在多种字符级语言建模任务中的表现都超越了堆栈和单层 LSTM,并且和堆栈 LSTM 的高层级单元相比,LSTM 的内部记忆可以学习更长期的依赖关系。

本文为机器之心编译,转载请联系本公众号获得授权。

原文发布于微信公众号 - 机器之心(almosthuman2014)

原文发表时间:2018-02-04

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏数值分析与有限元编程

矢量函数

一个由三个变量组成的函数w = f(x,y,z)表示如何根据x,y,z来确定w的值。从几何角度更有利于对这个概念的理解:在空间笛卡尔坐标系下取一点,坐标为(x,...

3147
来自专栏机器之心

机器之心最干的文章:机器学习中的矩阵、向量求导

1.1K12
来自专栏量化投资与机器学习

【Python机器学习】系列之特征提取与处理篇(深度详细附源码)

第1章 机器学习基础 将机器学习定义成一种通过学习经验改善工作效果的程序研究与设计过程。其他章节都以这个定义为基础,后面每一章里介绍的机器学习模型都是按照这个...

1.4K7
来自专栏一心无二用,本人只专注于基础图像算法的实现与优化。

阅读Real-Time O(1) Bilateral Filtering 一文的相关感受。

研究双边滤波有很长一段时间了,最近看了一篇Real-Time O(1) Bilateral Filtering的论文,标题很吸引人,就研读了一番,经过几天的攻...

2969
来自专栏机器之心

入门 | CNN也能用于NLP任务,一文简述文本分类任务的7个模型

本文是我之前写过的一篇基于推特数据进行情感分析的文章(https://ahmedbesbes.com/sentiment-analysis-on-twitter...

2535
来自专栏郭耀华‘s Blog

Batch Normalization&Dropout浅析

一. Batch Normalization 对于深度神经网络,训练起来有时很难拟合,可以使用更先进的优化算法,例如:SGD+momentum、RMSProp、...

2996
来自专栏老秦求学

LSTM生成尼采风格文章

github地址 使用循环神经网络生成序列文本数据。循环神经网络可以用来生成音乐、图像作品、语音、对话系统对话等等。

2824
来自专栏人工智能LeadAI

GoogLeNet的心路历程(二)

本文介绍关于GoogLeNet的续作,习惯称为inception v2,如下: [v2] Batch Normalization: Accelerating D...

3666
来自专栏专知

深度学习文本分类方法综述(代码)

【导读】本文是数据科学家Ahmed BESBES的一篇博文,主要内容是探索不同NLP模型在文本分类的性能,围绕着文本分类任务,构建当前主流的七种不同模型:用词n...

1.2K3
来自专栏人工智能头条

RNN在自然语言处理中的应用及其PyTorch实现

1612

扫码关注云+社区

领取腾讯云代金券