LSTM 长短期记忆网络
Long Short-Term Memory
RNN 想把所有的信息记住,不管是有用的信息还是无用的信息。
LSTM 通过引入记忆单元
和门控机制
来控制信息的流动,从而有效地捕捉长期依赖关系。LSTM 的核心思想是通过三个门(输入门、遗忘门、输出门)来决定哪些信息需要保留,哪些信息需要丢弃。
略去每层都有的
LSTM 对隐藏结构进行了改进:
结构
记忆细胞
遗忘门
遗忘门(forget gate)顾名思义,是控制是否遗忘的,在 LSTM 中即以一定的概率控制是否遗忘上一层的隐藏细胞状态。
其中,
输入门
输入门(input gate)负责处理当前序列位置的输入。
这里:
状态更新
其中,
输出门
当输出门接近 0 时,只保留记忆元内的所有信息,而不需要更新隐状态。
TIP
遗忘门决定了我要抛弃哪些旧知识
输入门决定了我要记住哪些新知识
输出门决定了我要用到哪些知识
前向传播
更新遗忘门输出:
更新输入门两部分输出:
更新细胞状态:
更新输出门输出:
更新当前序列索引预测输出:
反向传播
推导
假设损失函数为交叉熵损失,定义:
对于最后的序列索引位置
交叉熵损失
对于:
有:
对于
直接梯度
间接梯度(来自时间步
): - 通过输出门:
- 通过遗忘门:
- 通过输入门:
- 通过候选细胞状态:
- 通过输出门:
对于
下面计算:
有:
进一步的,令:
有:
而:
可以得出时间
总梯度为: