1.LSTM概述
LSTM(Long Short Term Memory,长短时记忆),是RNN的一种改进网络。普通RNN在解决长时间依赖问题时,会存在信息丢失(梯度消失or梯度爆炸)等问题,而LSTM为解决这个问题应运而生。
2.LSTM与RNN的区别
LSTM与RNN的网络结构大体一样,只是每个隐状态内部存在差异,具体区别如下:
- LSTM的"记忆细胞Cell"是改造过的
- 想记录的信息会一直传递,不想记录的信息会被忘掉
3.LSTM的核心思想
LSTM 的关键就是细胞状态,细胞状态类似于传送带,直接在整个链上运行,由于细胞状态链上只有一些少量的线性交互,所以信息在上面流传会很容易保持不变。
细胞状态会在如图,水平线上方贯穿运行。
4.LSTM网络结构
LSTM是通过门结构为细胞状态删除或者增加信息的,LSTM隐状态中共有三个门,分别是:忘记门、更新门、输出门。
1)忘记门:
将细胞状态中的信息选择性地遗忘 ,决定从"细胞状态"中丢弃什么信息。
忘记门会读取输入信息,通过sigmoid
转换后,会输出一个0到1之间的数值,用来控制上一时刻细胞状态中需要删除or保留的信息。1表示”完全保留“,0表示”完全舍弃“。
2)信息更新门(输入门):
将新的信息选择性的记录到细胞状态中 ,决定放什么新信息到"细胞状态"中。
更新门中包含两个部分:
Sigmoid层称 ‘输入门层’ ,决定什么值需要更新;(即增加想要特征信息的权重)
Tanh层创建一个新的候选向量,这个向量会被加入到细胞状态中。(即创建一个需要增加到细胞状态中的特征信息向量)
就可以确定传递信息的删除和增加,即进行细胞状态的更新了。
- 更新为
- 将旧状态与相乘,丢掉不想要的信息
- 加上新的候选信息
- 得到最终更新后的细胞状态
3)输出门:
基于更新后的”细胞状态“得到输出。
- 首先运行一个sigmoid层来确定细胞状态的那个部分将输出
- 使用tanh处理细胞状态得到一个-1到1之间的值,再将它和sigmoid门的输出相乘,输出 程序确定输出的部分。
5. LSTM的应用场景
- 自然语言处理:语言模型与文本生成
- 机器翻译
- 语音识别
- 看图说话
- 代码生成
6.GRU
1)GRU结构
- 只有两个门:更新门和重置门。
- 将忘记门和输入门合并为一个更新门
- 同时合并了数据单元状态和隐藏状态
- 结构比LSTM更加简单,但效果却与LSTM差不多
2)GRU公式
:更新门
:重置门
:决定从之前细胞状态中保留(抽取)多少信息
:决定接受多少的新信息放入当前细胞状态中
:当前时刻的细胞状态。百分之多少的内容从旧的信息中抽取,百分之多少的内容从新的信息中抽取。