0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

RNN及其变体LSTM和GRU

zhKF_jqr_AI 来源:未知 作者:李倩 2018-06-30 11:11 次阅读

对于文本和语音这样的序列化数据而言,循环神经网络(RNN)是非常高效的深度学习模型。RNN的变体,特别是长短时记忆(LSTM)网络和门控循环单元(GRU),在自然语言处理(NLP)任务中得到了广泛应用。

然而,尽管在语言建模、机器翻译、语言识别、情感分析、阅读理解、视频分析等任务中表现出色,RNN仍然是“黑盒”,难以解释和理解。

有鉴于此,香港科技大学的Yao Ming等提出了一种新的可视化分析系统RNNVis,基于RNNVis,可以更好地可视化用于NLP任务的RNN网络,理解RNN的隐藏记忆。

在介绍RNNVis系统之前,先让我们温习一下RNN及其变体LSTM和GRU.

RNN及其变体

循环神经网络

如上图所示,原始RNN接受序列化输入{x(0), ...,x(T)},并维护一个基于时间的隐藏状态向量h(t)。在第t步,模型接受输入x(t),并据下式更新隐藏状态h(t-1)至h(t):

其中,W、V为权重矩阵而f是非线性激活函数。上图中,f为tanh.

h(t)可直接用作输出,也可以经后续处理后用作输出。比如,在分类问题中,对隐藏状态应用softmax运算后输出概率分布:

长短时记忆网络

和原始RNN不同,LSTM除了维护隐藏状态h(t)外,还维护另一个称为细胞状态(cell state)的记忆向量c(t)。此外,LSTM使用输入门i(t)、遗忘门f(t)、输出门o(t)显式地控制h(t)、c(t)的更新。三个门向量通过如下方法计算:

细胞状态和隐藏状态则通过如下方法计算:

上面的第一个公式为候选细胞状态。

基于细胞状态和门向量,相比原始RNN,LSTM能维持更久的信息

门控循环单元

相比LSTM,GRU要简单一点。GRU只使用隐藏状态向量h(t),和两个门向量,更新门z(t)、重置门r(t):

在更新隐藏状态之前,GRU会先使用重置门计算候选隐藏状态:

多层模型

为了增加表示能力,直接堆叠RNN网络可得到多层RNN模型:

其中,h0(t)=x(t)

类似地,LSTM和GRU也可以通过堆叠得到多层模型。

协同聚类可视化二分图

还记得我们之前提到,对隐藏状态进行后续处理(例如softmax)可以输出分类的概率分布吗?

上式可以分解为乘积:

其中,∆h(t)可以解读为模型对输入单词t的反应。

相应地,模型对输入单词w的反应的期望可以通过下式计算:

其中,x为单词w的嵌入向量,s(x)i表示hi和w之间的关系。s(x)i的绝对值较大,意味着x对hi较重要。基于足够的数据,我们可以据下式估计反应的期望:

下图为一个双层LSTM对三个不同的单词的反应分布。该LSTM每层有600个细胞状态单元,基于Penn Tree Bank(PTB)数据集训练。我们可以看到,模型对介词(“for”)和代词(“he”、“she”)的反应模式大不相同。

基于前述期望反应,每个单词可以计算出n个隐藏单位的期望反应,同时,每个隐藏单元可以计算出对n个单词的期望反应。如果将单词和隐藏单元看作节点,这一多对多关系可以建模为二分图G = (Vw, Vh, E)。其中,Vw和Vh分别为单词和隐藏节点的集合。而E为加权边:

要可视化分析二分图,很自然地就想到使用协同聚类。

从上图我们可以看到,功能类似的单词倾向于聚类在一起。

RNNVis

以上述可视化分析技术为核心,论文作者构建了RNNVis可视化系统:

如上图所示,RNNVis包含3个主要模块:

模型管理器使用TensorFlow框架构建、训练和测试RNN模型。用户可以通过编辑配置文件修改模型的架构。

RNN评估器分析训练好的模型,提取隐藏状态中学习到的表示,并进一步处理评估结果以供可视化。同时,它也能够提供单词空间中每个隐藏状态的解释。

交互式可视化用户可以在主界面点击单词或记忆单元,以查看详情。另外,用户也可以调整可视化风格。

上图为详情页面。箱形图显示,第48维和第123维都捕捉到了像“buy”(“买”)和“sell”(“卖”)这样的动词,尽管两者的符号不同。另外,这一详情界面也表明,LSTM网络能够理解单词的语法功能。

比较不同模型

除了用于理解单个模型的隐藏记忆,RNNVis还可以用来比较两个模型:

上图比较了原始RNN和LSTM。无论是记忆单元的饱和度(B和E),还是具体的响应历史(C和D),都反映了RNN比LSTM更密集地更新隐藏记忆。换句话说,LSTM对输入的反应更加稀疏。详情页面基于单个单词的比较也印证了这一点(G和H)。

LSTM相比RNN更“懒惰”,这可能是它在长期记忆方面胜过RNN的原因。

比较同一模型的不同层

除了用来比较不同模型,RNNVis还可以用来比较同一模型的不同层。

对CNN的可视化研究揭示了,CNN使用不同层捕捉图像中不同层次的结构。初始层捕捉较小的特征,例如边缘和角落,而接近输出的层学习识别更复杂的结构,以表达不同的分类。

图片来源:arXiv:1710.10777

而关于RNN及其变体不同层的作用,研究较少。一个自然的假想是初始层学习抽象表示,而后续层更多地学习特定任务的表示。

从上图我们可以看到,第0层的“记忆芯片”的尺寸比第1层更均匀。另一方面,第1层的单词云中单词的颜色更一致。也就是说,第1层的单词云的质量比第0层更高。这意味着第0层对不同单词的用法的把握更模糊,而第1层在识别不同功能的单词方面更聪明。

分别点击两层中的单词“thou”,我们可以看到,相比第0层(C1),第1层对单词“thou”的反应更稀疏(C2)。在其他单词上也有类似的现象。对于语言建模而言,这样的稀疏性有助于最后层,在最后层,输出通过softmax直接投影到一个巨大的单词空间(包含数千单词)。

如此,我们通过可视化印证了之前的假想,模型使用第一层构建抽象表示,使用最后一层表达更为任务相关的表示。

案例研究

论文作者通过两个案例试验了RNNVis的效果。

情感分析

论文作者使用的数据集是Yelp Data Challenge,该数据集包含四百万餐馆点评及评分(一分到五分)。评分正好可以视为点评的标签。为了简化问题,论文作者预处理了五个标签,将其归并为两个标签,其中,一分、二分映射为“消极”,四分、五分映射为“积极”,三分的点评不计在内。同样是为了简化问题,只使用了原数据集的一个子集,2万条长度小于100个单词的点评。然后按照80/10/10的百分比分割训练/验证/测试集。

所用网络为单层GRU,包含50个细胞状态,在验证集和测试集上分别达到了89.5%和88.6%的精确度。

从上图的单词云可以看到,GRU可以理解单词的极性。上面的云包含“never”、“not”之类的消极单词,而下面的云包含“love”、“awesome”、“helpful”之类的积极单词。

另外,上图分析的是两个不同的转折句:

I love the food, though the staff is not helpful. (我喜欢食物,不过服务人员不热情。)

The staff is not helpful, though I love the food. (服务人员不热情,不过我喜欢食物。)

从上图可以看到,GRU对同一个单词“though”的反应不同,第一个句子中的“though”导致隐藏状态的更新更多,也就是说,GRU对消极情绪更敏感。

另一方面,数据集中许多消极单词,比如“bad”(“糟”)和“worst”(“最糟”)并没有出现在可视化之中。

这两点暗示GRU在积极点评和消极点评上的表现可能不一样。论文作者检查了数据集,发现数据集并不均衡,积极点评与消极点评的比例接近3:1。基于过采样技术,得到了均衡的数据集。在该数据集上重新训练的GRU模型,表现提升了,在验证集和测试集上分别达到了91.52%和91.91%的精确度。

可视化新模型后,单词云(C)包含更多情绪强烈的单词,比如消极单词云中的“rude”(粗鲁)、“worst”(最糟)、“bad”(糟),和积极单词云中的“excellent”(极好)、“delicious”(美味)、“great”(棒)。详情页面(A)显示,模型对“excellent”和“worst”具备完全相反的反应模式。

莎士比亚著作

论文作者使用莎士比亚的著作(包含一百万单词)构建了一个语言建模数据集(词汇量一万五千)。数据集按80/10/10百分比分为训练/验证/测试数据集。

研究人员使用小、中、大三个规模的LSTM网络。

下面的评估和可视化结果属于中等规模的LSTM网络,不过,其他两个LSTM网络上的结果与此类似。

莎士比亚的语言混杂了新旧两个时期的英语。而从上图我们可以看到,“hath”、“dost”、“art”和“have”、“do”、“are”位于同一片单词云中。这说明,模型能够学习这些用途相似的助词,不管它们是来自古英语还是现代英语。详情界面印证了这一点,成对的新词和旧词具有相应的反应模式。

上图中有一个例外,是“thou”和“you”。这是因为在莎士比亚时期,“thou”和“you”的用法有细微的差别,“thou”为单数,常用于非正式场合,而“you”为复数,更正式、更礼貌。

以后的工作

论文作者计划部署一个RNNVis的线上版本,并增加更多RNN模型的量化指标以提升可用性。

由于可视化分析技术基于文本的离散输入空间,RNNVis只适用于分析用于文本的RNN系列模型。分析用于音频应用的RNN模型尚需构建可解释的表示。

当前RNNVis的瓶颈在于协同聚类的效率和质量,可能导致交互时的延迟。

另外,目前RNNVis还不能可视化一些特化的RNN变体,比如记忆网络(memory network)或注意力模型(attention model)。支持这些RNN变体需要对RNNVis进行扩展。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 神经网络
    +关注

    关注

    42

    文章

    4575

    浏览量

    98797
  • 深度学习
    +关注

    关注

    73

    文章

    5240

    浏览量

    119936
  • 自然语言
    +关注

    关注

    1

    文章

    271

    浏览量

    13209

原文标题:可视化循环神经网络的隐藏记忆

文章出处:【微信号:jqr_AI,微信公众号:论智】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    FPGA也能做RNN

    ,GPU只能提供有限的并行性。针对这个问题,普渡大学的研究人员提出了一种LSTM在Zynq 7020 FPGA的硬件实现方案,该方案在FPGA中实现了2层128个隐藏单元的RNN,并且使用字符级语言模型
    发表于 07-31 10:11

    递归神经网络(RNN

    递归神经网络(RNNRNN是最强大的模型之一,它使我们能够开发如分类、序列数据标注、生成文本序列(例如预测下一输入词的SwiftKey keyboard应用程序),以及将一个序列转换为另一个序列
    发表于 07-20 09:27

    Yahalom协议及其变体的时序缺陷分析与改进

    研究Yahalom协议及其变体,发现该系列协议存在的时序缺陷,给出一种利用此缺陷攻击Yahalom协议及其变体的方法。尽管Yahalom协议历经几次修改,且被证明不存在密钥泄露问题,但
    发表于 04-17 09:28 16次下载

    放弃 RNNLSTM 吧,它们真的不好用

    2014 年 RNN/LSTM 起死回生。自此,RNN/LSTM 及其变种逐渐被广大用户接受和认可。起初,
    的头像 发表于 04-25 09:43 2w次阅读

    LSTMGRU的动态图解

    根据上图公式:新权重=权重-学习率×梯度。已知学习率是个超参数,当梯度非常小时,权重和新权重几乎相等,这个层就停止学习了。由于这些层都不再学习,RNN就会忘记在较长序列中看到的内容,只能传递短期记忆。
    的头像 发表于 10-27 09:08 1.3w次阅读
    <b class='flag-5'>LSTM</b>和<b class='flag-5'>GRU</b>的动态图解

    循环神经网络(RNN)和(LSTM)初学者指南

    最近,有一篇入门文章引发了不少关注。文章中详细介绍了循环神经网络(RNN),及其变体长短期记忆(LSTM)背后的原理。
    发表于 02-05 13:43 721次阅读

    RNN存在的问题及其改进方法,并介绍更多复杂的RNN变体

    梯度爆炸/消失不仅仅是RNN存在的问题。由于链式法则和非线性激活函数,所有神经网络(包括前向和卷积神经网络),尤其是深度神经网络,都会出现梯度消失/爆炸问题。这导致低层网络训练非常缓慢。那么解决办法就是在神经网络之间添加直接连接,使梯度传播更顺畅。
    的头像 发表于 05-05 16:05 1.6w次阅读
    <b class='flag-5'>RNN</b>存在的问题<b class='flag-5'>及其</b>改进方法,并介绍更多复杂的<b class='flag-5'>RNN</b><b class='flag-5'>变体</b>

    一种具有强记忆力的 E3D-LSTM网络,强化了LSTM的长时记忆能力

    标准 LSTM 单元结构 首先简要介绍一下标准 LSTM 结构,和 RNN 相比 LSTM 增加了更复杂的门结构(图中黄色模块),主要解决 RN
    的头像 发表于 09-01 07:35 1.1w次阅读
    一种具有强记忆力的 E3D-<b class='flag-5'>LSTM</b>网络,强化了<b class='flag-5'>LSTM</b>的长时记忆能力

    关于RNNLSTM基础知识了解

    递归神经网络(RNN)被提出用来处理80年代的输入序列时间信息。1993年,神经历史压缩器系统解决了“非常深度学习”任务,该任务需要及时展开RNN中的1000多个后续层。
    发表于 03-22 10:23 6569次阅读
    关于<b class='flag-5'>RNN</b>和<b class='flag-5'>LSTM</b>基础知识了解

    超生动图解LSTM和GPU,读懂循环神经网络!

    这些门结构可以学习序列中哪些数据是要保留的重要信息,哪些是要删除的。通过这样做,它可以沿着长链序列传递相关信息来执行预测。几乎所有基于RNN的先进结果都是通过这两个网络实现的。LSTMGRU经常用在语音识别、语音合成和文本生成
    的头像 发表于 01-20 15:20 1960次阅读
    超生动图解<b class='flag-5'>LSTM</b>和GPU,读懂循环神经网络!

    循环神经网络LSTM为何如此有效?

    长短期记忆网络(LSTM),作为一种改进之后的循环神经网络,不仅能够解决 RNN无法处理长距离的依赖的问题,还能够解决神经网络中常见的梯度爆炸或梯度消失等问题,在处理序列数据方面非常有效。 有效背后
    的头像 发表于 03-19 11:22 2515次阅读
    循环神经网络<b class='flag-5'>LSTM</b>为何如此有效?

    神经网络中最经典的RNN模型介绍

    强大的Bert模型家族,都是站在RNN的肩上,不断演化、变强的。 这篇文章,阐述了RNN的方方面面,包括模型结构,优缺点,RNN模型的几种应用,RNN常使用的激活函数,
    的头像 发表于 05-10 10:22 1.1w次阅读
    神经网络中最经典的<b class='flag-5'>RNN</b>模型介绍

    深度分析RNN的模型结构,优缺点以及RNN模型的几种应用

    强大的Bert模型家族,都是站在RNN的肩上,不断演化、变强的。 这篇文章,阐述了RNN的方方面面,包括模型结构,优缺点,RNN模型的几种应用,RNN常使用的激活函数,
    的头像 发表于 05-13 10:47 2.3w次阅读
    深度分析<b class='flag-5'>RNN</b>的模型结构,优缺点以及<b class='flag-5'>RNN</b>模型的几种应用

    RNN以及LSTM

    循环神经网络(Recurrent Neural Network,RNN)是一种用于处理序列数据的神经网络。相比一般的神经网络来说,他能够处理序列变化的数据。比如某个单词的意思会因为上文提到的内容不同而有不同的含义,RNN就能够很好地解决这类问题。
    的头像 发表于 03-15 10:44 1583次阅读

    深度学习——如何用LSTM进行文本分类

    简介 主要内容包括 如何将文本处理为Tensorflow LSTM的输入 如何定义LSTM 用训练好的LSTM进行文本分类 代码 导入相关库 #coding=utf-8 import
    的头像 发表于 10-21 09:57 1110次阅读