RNN理解

RNN循环神经网络,用来解决序列问题。
1 引入
如下图,在处理序列(例如sentence)问题时候,word Taipei 在arrive 和leave后面含义不同,分别代表出发地和目的地,也就是说word和word间相互影响。在处理当前word时需要前面的word信息,network 需要有记忆力
RNN理解_第1张图片
于是,RNN出现了

2 simpleRNN
RNN理解_第2张图片

RNN理解_第3张图片

3 Bidirectional RNN
有时处理某个word时不仅需要该word前面的word信息,还需要该word后面的word信息。结合整个句子来考虑当前word的意义,这时候就要用到双向RNN了
RNN理解_第4张图片

4 Long Short-term Memory(LSTM)
4.1 lstm基础知识
simpleRNN有一个缺点就是只能储存短期记忆,当相互影响的两个word 相距较远时,simpleRNN无法记得很久之前的word信息,就没有办法正确处理。
例如处理如下句子:
今天我去七宝逛街了,街上景色balabala…,街上发生了balabala…,正在这个时候我碰到了一个美丽的姑娘小芳
请问我在哪碰到小芳的?
关键词七宝和小芳之间有很多其他word,simpleRNN无法记得很久之前的七宝,所以很可能给出其他错误答案。
为了可以储存较长的记忆,LSTM被提出来了。
RNN理解_第5张图片LSTM在simpleRNN的基础上添加了3个控制门,输入门、输出门和遗忘门。
输入门:决定有多少信息可以输入,激活函数一般用sigmoid 函数(0,1之间)
遗忘门:之前存储的信息遗忘多少,激活函数一般用sigmoid 函数(0,1之间)
输出门:决定有多少信息可以输出,激活函数一般用sigmoid 函数(0,1之间)
RNN理解_第6张图片

example:
RNN理解_第7张图片
其中x2是控制输入和遗忘操作,x2为1时输入门打开,x2为-1时遗忘门关闭(遗忘之前存储的记忆), x3控制输出门,x3为1时输出门打开。通过在不同门处分别对x1,x2,x3设置不同权值可以达到上述功能,此处为人为设置,正常可以通过网络学习得到这些参数。
RNN理解_第8张图片

4.2 lstm 网络和正常网络的区别和联系

RNN理解_第9张图片
RNN理解_第10张图片
把上图两个LSTM想象成普通neuron,上图就是普通网络。

4.3 不同形式的LSTM
简单的lstm
RNN理解_第11张图片
标准LSTM
RNN理解_第12张图片

4.4 多层LSTM
RNN理解_第13张图片

你可能感兴趣的:(深度学习)