RNN和LSTM深度理解

本文为《Understanding LSTM Networks》翻译

循环神经网络

人类不会一直从头开始思考。当你看这篇文章的时候,你实际上是根据上一个词来理解这一个词的。你不会每时每刻从头开始理解一句话,因为你的思考具有持久性。

传统神经网络做不了这些东西。但是循环神经网络可以做到,它可以使信息持久化。

循环神经网络有个循环


这是RNN的一个块,A。输入xt输出ht。

RNN可以被想象成一个网络的多个复制,每一个网络都可以把信息传递给下个继承者。当我们把上图展开的话,会发生什么?

展开的RNN

通过这个链式的结构可以看到,RNN对于那种一系列的或者是列表的数据联系紧密。

RNN中最成功的当属LSTMs,一种特殊的RNN结构,它在很多方面的作用远远大于RNN,绝大部分的RNN成果都是基于LSTM的。

长期依赖的问题


RNN其中的一个亮点就是它可以将当前的任务和之前的依据信息连接起来,就像看电影时,将现在的场景和之前的情节连接起来了一样。如果RNN可以做这种事情的话,它会非常实用。但是RNN可以吗?这视情况而定。

有时候,我们仅仅需要获取最近的一些信息来完成我们当前的任务。例如,根据上一个词来预测下一个词是什么。比如我说了一句“苟”,我们不需要知道什么更深层次的信息,就可以猜想出来接下来的话。“苟”被称为预测所需要的依赖(Dependencies)。在这种情况下,处理的相关信息间隔就比较短,所需空间也比较少,RNNs可以学会使用之前的信息。


RNNs使用之前的信息

但是有时候我们需要更多的信息。你试着预测一下女朋友说“你决定吧”的下一句会是什么。这就比较难了,你需要根据之前的对话来猜想,女朋友到底是生气了,故意说“你决定吧”还是仅仅因为你们出去吃饭,女朋友让你决定吃什么。在这种情况下,预测出女朋友下一句话所依赖的信息(也就是你和你女朋友之前的对话)可能间隔非常非常大,甚至可能是因为一个月前你们决定吃什么时闹的矛盾。

在这种情况下,随着间隔的增大,RNN需要存储的信息也越来越多,能力也随之捉襟见肘。


所依据信息和当前任务间隔非常大时出现的情况

理论上,RNNs可以存下来你和你女朋友发生的所有的事情,然后来分析女朋友说的“你决定吧”下一句可能是什么。但我们也知道这不太可能。

但LSTM可以解决这个问题。

LSTM网络

LSTMs全称为长短时记忆网络,是RNN的一种类型,可以解决长期依赖的问题。它解决了很多问题,直到现在也在被广泛使用。

LSTM就是被设计用来解决长期依赖问题的。记住很久前的信息对它来说只是基本操作,根本不需要用力。

所有的循环神经网络都有一个重复的神经网络的链式模型。在标准的RNNs中,这个重复的神经网络模型有着非常简单的结构,例如只有单个tanh层。


标准RNNs中不断重复的神经网络模型只有单个tanh层

LSTM也有相似的链式结构,但是单个神经元模型有着不同的结构。它不是单个tanh层,它有4个交互的层。


LSTM单个神经元有 4个交互的层

别害怕,虽然它现在看起来复杂,但是我们会一步一步给你讲解这张图代表的是什么意思。首先我们先解释一下标记的含义。


依次是神经网络层、点态操作、向量转换、合并、复制

黄块就是神经网络层,粉球球就是点态,点态的大概意思就是向量相加之后生成的那个向量,别的符号都很简单就不说了。

LSTMs的核心思想

LSTMs的关键就是cell state(这个不知道怎么翻译,细胞状态?),下面这张图的水平线展示了什么叫做cell state。

cell state像个传送带,它穿过整个链,只有很少的线性交互。


LSTM可以轻松地添加或者移走信息,从cell state上,这个操作是由gates结构仔细地控制着的。

gates是控制信息通过的方式,是由sigmoid神经网络层和一个点态乘法操作组成的。

sigmoid层输出0到1之间的一个数字,这个数字代表着每个部分可以通过多少。0代表着没人能通过,1代表着全都通过。

一个LSTM有3个这样的gates,来保护和控制cell state。

LSTM详细工作原理

LSTM的第一步就是决定什么信息能从cell state里通过。这个是由一个被称作“遗忘门”的sigmoid层决定的。它像底下图里Ct-1的那个ht−1和xt,输出一个0到1之间的数字。1代表着完全保留这个,0代表着完全扔掉这个。

再回到我们预测下一句的语言模型来。针对这种问题,cell state也许包含了上个月你女朋友和你约会的细节,所以正确答案也许能被选出来。然后你和你女朋友分手,交了下一个女朋友,它也许会忘记曾经你们的那次约会。


下一步就是决定我们应该把什么信息存储在cell state里面。这分成了两部分。第一步,有一个被称作“输入门”的sigmoid层决定了哪些值我们应当更新。接下来,一个tanh层创建了一个候选值C~t,这个候选值可能被添加到state里。第二部,我们会合并这两个值来更新state。

在语言模型的那个例子里,就是我们想要添加新女朋友的信息到cell state里,来替换你想要忘记的前女友。


现在是时候更新旧的cell state了,Ct-1,把它换成新的cell state Ct!上面讲的那些已经说了如何去做,现在我们来实际完成它。

我们将旧状态Ct-1乘上ft,忘记那些我们早应该忘记的东西。紧接着,加上it乘以Ct。这是个新的候选值,它的值取决于我们对state值想要更新多少。

在语言模型的那个例子里,这里就是我们要忘记前女友,添加新女友的地方,正如我们前一步决定的那样。


最后,我们需要决定我们要输出什么。这个输出取决于现在的cell state,但是将会是被过滤后的版本。首先,我们运行一个sigmoid层,这个层决定了cell state的哪个部分我们要输出出去。然后,我们让cell state通过tanh(用来将输出值保证在-1到1之间),再之后,将这两个数字相乘。这样的话,我们只输出了我们想要输出的那一部分。

在语言模型的那个例子里,这就像新女友也说了一句“你决定吧”之后,你可以根据前女友的经验和现在的经历共同决定到底要说什么,也就是输出什么。

这就是全部的LSTMs。

LSTM的变种

之前介绍的都是最初的LSTM。但是不是所有的LSTM跟上面介绍的那些一样。事实上,目前几乎所有论文所谈论到的LSTM都跟最初的LSTM有些不一样。我们来讲讲那些不同。

其中一个流行的LSTM变种,加入了“猫眼连接”。这意味着我们让gete层盯着cell state。

上面的这个图就是在所有的gates上面加了个猫眼。但是许多论文都是一些加一些不加。

另一个变种使用了相互连接的遗忘和输入层。之前的LSTM是分开决定什么应该被遗忘,什么应当被输入,而这个变种让他们一起被决定。我们只在替换的情况下,才会遗忘。我们也只是在忘掉什么的时候才向state输入新值。


一个最牛逼的LSTM变种就是门循环单元(Gated Recurrent Unit)被称作GRU。它将遗忘门和输入门结合而成了一个更新门。它还合并了cell state和hidden state,和另外一些小改变。最终的模型比LSTM更简单,也更流行。


这只是其中一些的介绍,还有一些其他的,比如Depth Gated RNNs等。还有一些完全不同的实现,像Clockword RNNs。

哪个变种是最好的?这些改进真的更好吗?有人做了变种的对比,发现都差不多。还有人测试了上万个RNN结构,发现的确有些结构在特定的任务上稍强一点。和

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,456评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,370评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,337评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,583评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,596评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,572评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,936评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,595评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,850评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,601评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,685评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,371评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,951评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,934评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,167评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,636评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,411评论 2 342

推荐阅读更多精彩内容