知行编程网知行编程网  2022-06-09 14:00 知行编程网 隐藏边栏 |   抢沙发  2 
文章评分 0 次,平均分 0.0

LSTM为何如此有效?

来自 | 知乎  作者 | 天雨粟

https://www.zhihu.com/question/278825804/answer/402634502

编辑 | 深度学习这件小事

本文仅作学术交流,如有侵权,请联系后台删除
LSTM为何如此有效?


做过一点类似的工作,说说个人理解。


LSTM处理序列问题有效的关键就是在于Gate。


拿一个简单的情感分类问题为例:


LSTM为何如此有效?


比如这句话,我们去除停用词,最后做Word Embedding喂给DNN。这句话里面正面词汇有2个“好”和1个“喜欢”,负面词汇有1个“没有”和1个“不”,由于正面词汇更多,DNN则会更加倾向判断积极情感;实际上这句话是个negative的情感,句子中两个”好“前面都有”没有“否定,”喜欢“前面也有”不“否定,但是DNN不存在隐层结点之间的序列学习,所以捕捉不到这种信息;

而如果我们用一个LSTM:


LSTM为何如此有效?


由于LSTM存在cell state的传递,如图中LSTM中链接的箭头所示,它能够捕捉到这种否定关系,从而输出正确的情感系数。


从LSTM的公式来看(不考虑peephole),forget gate是一个经过sigmoid函数激活的单元,数值在0-1



而我们的cell state更新公式为:



当forget gate越接近0时,意味着对历史信息(t-1时刻)信息的丢失;而forget gate越接近于1,意味着对历史信息的更多保留。


正如题主所说,forget gate里面大多数位置都是0,少数为1,这部分1就是它要在网络中持续保留的信息,我这里也很同意题主所说,这里gate有点类似于attention,对于我所需要的信息,我就给予高attention(对应为1),对于无用信息,我就选择不attention(对应为0)。同理,如果在某个时刻下信息较为重要,那么它对应的forget gate位置会一直保留在接近于1的数值,这样就可以让这个时刻的信息一直往下传递下去而不至于被丢失,这也是为什么LSTM能够处理长序列的原因之一。


再说Bi-RNN,Bi-RNN我觉得从直觉上更好理解。比如我们人在看一句话时:这个人虽然很努力,但是他实在没有什么成绩。如果按照LSTM来看,它是从前往后学习,读完前半句我们可以提取的信息是:这个人很努力,看似是一个积极信息,但只有往下读才知道这句话的重点在于后面说他做不出什么成绩。而Bi-RNN很好的模拟了人的行为,即先读完整句话。Bi-RNN倒序进行信息的传递,那么当Bi-RNN读完“这个人虽然很努力”时,它的反向序列已经捕捉到了后半句的内容信息,因此能够做出更准确的判断。


补充:


应评论区@Herry同学提问,再说下GRU。简单来说,GRU比LSTM结构更加简单,只有2个gate,LSTM有3个gate,需要训练的参数更少,具体实现上也更快一点;另外,GRU中只有一个state,它把LSTM中的cell state和activation state视为了一个state。


从公式来看,GRU的两个gate,一个是reset gate,一个是update gate。

reset gate是对t-1时刻状态重置,它也是一个经过sigmoid激活的输出。



随后这个reset gate用来做 的计算:



我们从公式可以看出,当前时刻的候选状态 并不是完全将 用来学习,而是要先reset一下,在LSTM中计算 时候直接就用


另外一点,GRU把update gate既当做update使,又当做forget使。



其中 就相当于LSTM中的forget gate。


而LSTM中这个forget gate是单独出来的,跟update gate没太大关系,这里只能说GRU做了合理简化,减少了一定计算量,性能上并没有牺牲太多。


再者上面说到的,GRU里面只需要控制一个状态,它的cell state是等于activation state的,而LSTM中控制两个状态,cell state是要经过output gate以后才能得到activation state。


最后关于它两具体的性能表现上,目前我做的模型上,基本看不出太大差别,性能都算OK。但是我一般首选LSTM,可能我先接触的LSTM的缘故吧。GRU就是相对快一点,结构简单,适合快速开发模型原型。


关于他两性能的比较,建议可以看下论文[1412.3555] Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling


<pre style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;letter-spacing: 0.544px;white-space: normal;font-family: -apple-system-font, system-ui, "Helvetica Neue", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei UI", "Microsoft YaHei", Arial, sans-serif;widows: 1;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-top: 15px;margin-bottom: 25px;max-width: 100%;opacity: 0.8;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="max-width: 100%;letter-spacing: 0.544px;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section powered-by="xiumi.us" style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section style="margin-top: 15px;margin-bottom: 25px;max-width: 100%;opacity: 0.8;box-sizing: border-box !important;overflow-wrap: break-word !important;"><section><p style="margin-bottom: 15px;padding-right: 0em;padding-left: 0em;max-width: 100%;color: rgb(127, 127, 127);font-size: 12px;font-family: sans-serif;line-height: 25.5938px;letter-spacing: 3px;text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;color: rgb(0, 0, 0);box-sizing: border-box !important;overflow-wrap: break-word !important;"><strong style="max-width: 100%;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="max-width: 100%;font-size: 16px;font-family: 微软雅黑;caret-color: red;box-sizing: border-box !important;overflow-wrap: break-word !important;">为您推荐</span></strong></span></p><p style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important;">MIT校长评中美科技竞赛:胜利不是期盼对手的失利</p><p style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="font-size: 14px;">GitHub重大更新:在线开发上线,是时候卸载IDE了</span></p><p style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important;"><span style="font-size: 14px;">美国官宣117000名 IT 人失业,真是史无前例!</span><br  /></p><p style="margin-top: 5px;margin-bottom: 5px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important;">数据分析入门常用的23个牛逼Pandas代码</p><section style="margin: 5px 8px;padding-right: 0em;padding-left: 0em;max-width: 100%;min-height: 1em;font-family: sans-serif;letter-spacing: 0px;opacity: 0.8;line-height: normal;text-align: center;box-sizing: border-box !important;overflow-wrap: break-word !important;">特朗普拿H1B签证开刀,LeCun吴恩达等实名谴责!<br  /></section></section></section></section></section></section></section></section></section>
LSTM为何如此有效?

本篇文章来源于: 深度学习这件小事

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享