Day32_【 NLP _2.RNN及其变体 _(2) LSTM】
长短期记忆结构(LSTM, Long Short-Term Memory),它是循环神经网络(RNN)最重要的改进之一,专门设计用来解决标准RNN的长期依赖问题。
相比传统RNN:
- 优点
- 适用长序列任务
- 缓解梯度消失或爆炸
- 细胞状态中加法运算
- 遗忘门少连乘
- 缺点
- 结构复杂效率慢
- 不能完全解决梯度消失或爆炸
- 不能并行
- 串行
一、结构
分为遗忘门、输入门、细胞状态、输出门
门值:好比一扇门开合的大小程度,门值都将作用在通过该扇门的张量,使用sigmoid,值为0-1(好比概率)
1.遗忘门
作用在上一个时间步的细胞状态之上,表示对上一个时间步信息遗忘多少。
2.输入门
输入门作用在当前时间步输入上,表示对当前时间步输入选择性输入。
- 公式
- 输入门门值公式
- 对输入信息进行过滤
- 传统RNN内部结构计算
- 得到当前时间步未更新的细胞状态
- 输入门门值公式
3.细胞状态
更新当前细胞状态,保存历史数据状态,保证长序列下保存良好
4.输出门
作用在更新后的细胞状态上,
- 公式1 门值
- 公式2 使用这个门值产生隐含状态h(t)
二、API
nn.LSTM(input_size, hidden_size, num_layers)
input = (seq_len, batch_size, input_size)
h0 = (num_layers, batch_size, hidden_size)
c0 = (num_layers, batch_size, hidden_size)