LSTM: SimpleRNN的改进

LSTM 模型是对SimpleRNN的改进,LSTM可以避免梯度消失的问题,可以有更长的记忆。
LSTM: SimpleRNN的改进_第1张图片

LSTM中最重要的设计就是传输带
LSTM: SimpleRNN的改进_第2张图片

  • 传输带(Conveyor belt) C t C_t Ct:过去的信息通过传输带直接送到下一时刻,不会发生太大的变化。LSTM就是通过传输带避免了梯度消失的问题。
    LSTM中的Gate:可以让信息有选择的通过。

Forget Gate

遗忘门由sigmoid函数和单元乘法两部分组成
LSTM: SimpleRNN的改进_第3张图片
1、输入向量a通过sigmoid函数作用得到输出向量f
LSTM: SimpleRNN的改进_第4张图片
2、接着计算传输向量 c 和 f 的单元乘法。这个遗忘门 f 有选择的让传输带c的值通过:

  • if f 的一个元素为 0,那么 c 对应的值不能通过
  • if f 的一个元素为1, 那么 c 对应的值可以全部通过,对应的输出为本身
    LSTM: SimpleRNN的改进_第5张图片
    遗忘门 f 的计算
    LSTM: SimpleRNN的改进_第6张图片

Input Gate

  • 输入门 i t i_t it 的计算。
  • New value C ⃗ t \vec C_t C t计算。所用激活函数是tanh,故输出值在[-1, 1]之间
    LSTM: SimpleRNN的改进_第7张图片
    如图,传送带 C t C_t Ct 的一轮更新
    LSTM: SimpleRNN的改进_第8张图片

输出门 o t o_t ot

最后,计算LSTM的输出 (状态 h t h_t ht)。
LSTM: SimpleRNN的改进_第9张图片
h t = o t ⋅ t a n h ( c t ) h_t=o_t ·tanh(ct) ht=ottanh(ct)
LSTM: SimpleRNN的改进_第10张图片
h t h_t ht有两份拷贝,一份作为LSTM的输出,另一份传输到下一步

总结

  • LSTM和SimpleRNN的主要区别是LSTM用了一条传输带,让过去的信息很容易传输到下一时刻,这样就有了更长的记忆
  • LSTM有四个组件:
    • Forget gate
    • Input gate
    • New values C ⃗ t \vec C_t C t
    • Output gate
  • LSTM 参数数量:4 * shape(h) * [shape(h) + shape(x)]

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