快速理解RNN(LSTM,GRU)结构原理

1.RNN解决了什么问题?

RNN主要用来解决序列问题,强调的是先后顺序,在NLP中引申出上下文的概念,一个翻译问题,这个词的含义可能和前后的单词形成的这个组合有联系(Skip-gram),也可能是它之前的所有单词都有联系(Attention),并且,借助RNN的state这样的记忆单元,使得一个序列位置的输出在数学上和之前的所有序列的输入都是有关系的。当然原始的RNN由于梯度的乘性问题,前面的序列的影响近乎为0,这个后面又用LSTM来修正为加性问题。RNN的数学基础可以认为是马尔科夫链,认为后续的值是有前者和一些参数的概率决定的。

2.RNN有什么优缺点?
  • 优点:可以拟合序列数据,(LSTM)通过遗忘门和输出门忘记部分信息来解决梯度消失的问题。
  • 缺点:
    • 1.LSTM虽然部分解决了rnn梯度消失问题,但是信息在过远的距离传播中损失很厉害
    • 2.无法很好的并行(工业上影响很大)
3.RNN,LSTM,GRU的结构详解
(1)普通的网络结构
(1)常见的RNN网络结构


刚接触时看到这种结构时会有些难理解,左边 是RNN网络,右边是RNN网络按时序展开的形式,为什么要按照时序展开?主要是RNN中 隐状态更新需要依赖上一次的隐状态信息,就是我们理解的记忆信息。

RNN的结构很容易理解,t时刻的hidden status和当前输入
h_t
以及上一时刻的hidden status
h_t-1
相关,然后经过一个
tanh
激活函数,输出此时的结果,并把结果作为记忆信息输入到下一时刻。
y=f(Ux _t+Wh_{t-1}+b)

f(x)
tanh
激活函数:
f(x)=tanh(x)=\frac{e^x-e^{-x}} {e^x+e^{-x}}

h_{t0}
初始化为0

输出之后经过一个
softmax
函数,就会得到分类结果。

(1)RNN(N vs N)网络结构
(1)RNN(N vs 1)网络结构
(1)RNN(1 vs N)网络结构
(1)RNN(N vs M)网络结构

encode-decoder

seq2seq模型,另外会有新文章介绍。

4.长时依赖问题(Long-Term Dependencies)

普通的RNN在长文本的情况下,会学不到之前的信息,例如:the clouds are in the sky 预测sky是可以预测准确的,但是如果是很长的文本,如:我出生在中国,......,我讲的是中文这个时候就存在长时依赖问题,LSTM可以通过输入们,遗忘门,输出们来解决这个问题。

5.LSTM结构


刚开始接触LSTM时有点懵,这个结构怎么这么复杂,但其实先理解LSTM做了什么来解决长时依赖问题,就很容易 记住这个结构了。
LSTM通过忘记们来决定从上个隐状态记忆中忘记哪些信息,通过输入们来决定输入哪部分信息,通过输出们来决定输出哪部分信息,这样来解决长时依赖问题,下面来介绍下LSTM的具体结构信息。

  • 细胞状态和隐状态

LSTM相比RNN hidden status还引入了细胞状态来记录信息。细胞状态通过门结构 gate来添加新的记忆和删除旧的记忆信息

  • 门结构


门结构可以添加和删除信息的原理:输入矩阵通过
sigmod
激活函数后就会得到0~1取值范围的矩阵,在和原cell state 矩阵进行点乘,简单来理解,就可以实现部分过滤部分信息的效果。
[1,2,3]*[0,0.5,1]=[1*0,2*0.5,3*1]=[0,1,3]

通过以上矩阵点乘的例子可以来这么理解,1和0相乘之后结果为0,信息完全被过滤(任何数乘0结果都为0),任何数和1相乘结果还是原来的值,相当于没有被过滤,乘0~1之间的值,就会按照一定比例来过滤信息。

  • 忘记门

这一步是通过忘记门来忘记部分cell state中的记忆信息

  • 输入门


这一步进行了两个操作,一个是经过输入们产生了一个过滤矩阵来决定那些信息来加入到新的cell state中,另一步是通过上一次的
h_t-1
(hidden state)和新的输入
x_t
来计算这步的待输入信息。然后待输入信息和输入门产生的过滤矩阵点乘,最终产生需添加到cell state的新信息。

  • 添加新信息

将需添加的新信息加入到经过忘记门后的cell state中,生成新的cell state

  • 输出门


将新的cell state信息经过tanh激活函数后再和输出门产生的过滤矩阵点乘,最后得到此刻的输出
h_t

4.GRU结构

GRU的结构如下,主要包含重置门和更新门,把GRU看着LSTM的变体,相当于取消了LSTM中的cell state,只使用了hidden state,并且使用update gate更新门来替换LSTM中的输入们和遗忘门,取消了LSTM中的输出门,新增了reset gate重置门。这样做的好处是在达到LSTM相近的效果下,GRU参数更少,训练的计算开销更小,训练速度更快。

4.怎么选择LSTM,GRU?

由于GRU参数更少,收敛快,通常在数据集够大的情况下,选择LSTM效果应该会更好。
通常情况下LSTM和GRU两者效果相差不大,GRU训练更快,所以一般会先选择使用GRU进行训练和调参,当无法再继续优化时可以把GRU替换成LSTM来看看是否有提高。

至此,RNN和LSTM的结构介绍完毕,本文大量参考了几位大神的文章和配图,仅作为自己学习总结使用,非喜勿喷。如有错误,恳请指正,谢谢您的阅读。
参考文章:

完全图解RNN、RNN变体、Seq2Seq、Attention机制
Understanding LSTM Networks
序列预测问题,CNN、RNN各有什么优势?

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