avatar

Catalog
RNN_LSTM

Naive RNN:

2256672-cf18bb1f06e750a4

Bidirectional RNN:

2256672-039a45251aa5d220

RNN是三维的,沿时间维串起来,形成一个立体。因为下一时间点隐藏层的计算需要上一时间点隐藏层的数据,因此因此层需要一个memory单元来存储中间计算结果。

long short-term Memory(LSTM):

从命名可以看出,LSTM依然是短期记忆网络,只不过是记忆的时间比较长而已。LSTM有input Gate,forget gate,outputgate,和input四个输入,所以LSTM需要的参数(w)是一般网络的四倍。即原本的一个输入vector,乘上4个不同的w矩阵,变成4个不同的vector,对应到这四个输入。

LSTM的一个神经元长这样:

QQ截图20200218230517

LSTM的计算过程长这样,如果看不懂可以去看李宏毅的教学视频

简单描述一下:

输入一个向量X(就跟全连接网络输入的X一样),X乘上4个不同的transformer,变成Z和Z的三个控制信号(Z就和全连接网络里的Z一样),然后输入到neuron里面进行组合运算(全连接的neuron里面只有一个激活函数,但LSTM的neuron有5个激活函数),之后再进行输出。

通常呢,对输入的向量X也有改进,即

X_改进=X_原来 串接 上一时间点Output Gate后的输出 串接 上一时间点上一层cell中的值(peephole)。

QQ截图20200218232243

QQ截图20200218232303

QQ截图20200218232447

QQ截图20200218232656

最后,我们来总结一下LSTM

微信图片_20200223132154

李宏毅老师的视频确实讲的好,但这个图未免有些太乱了,我们从知乎上找了一张描述更清晰的图,来对LSTM做一个总结。

三个门控的激活函数都是σ激活函数,从左到右依次是遗忘门,输入门,输出门。门的激活函数不选用relu是因为relu是没有饱和区域的,那么就没法起到门的作用。

  • 遗忘门的作用是控制长期记忆有多大长度被保留下来

  • 输入门的作用是控制临时记忆有多大程度被记录在长期记忆中

  • 输出门的作用是控制长期记忆有多大程度被当作隐藏层状态的输出。

候选记忆用tanh激活函数产生是因为tanh的输出在-1~1,是0中心的,并且在0附近的梯度大,模型收敛快。

隐藏层状态的输出同理。

Author: realLiuSir
Link: http://yoursite.com/2020/02/18/RNN_LSTM/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.
Donate
  • 微信
    微信
  • 支付寶
    支付寶