
最近实验中需要用到LSTM,记录下我对LSTM的理解。
什么是LSTM?
首先介绍一下标准的RNN,它拥有记忆能力,适合处理序列型的数据,比如语音识别,但它有有以下缺点:
- 只能记住非常短的序列
- 难以训练,收敛困难

LSTM全名“长短期记忆神经网络”,正好解决了RNN的缺点。LSTM会选择性忘记不重要的信息,因此它能记住更长的序列,且它更容易训练

LSTM的关键是单元(门)的状态,即贯穿图顶部的水平线。门由sigmoid层、tanh层和乘法运算组成
LSTM原理
LSTM的第一步决定要从单元状态丢弃什么信息,这个决定由“遗忘门”做出,输出值介于0和1,0表示完全忘记,1表示完全记住

第二步决定要在单元状态中存储什么新信息。它有两部分:首先,“输入门”的sigmoid决定更新哪些值,接下来,tanh创建新的候选向量,在下一个步骤中,把两者结合起来对状态更新

这一步对状态进行更新

最后需要计算输出什么

LSTM的应用
- one to many:输入不是序列,输出是序列,比如看图写诗
- many to one:输入是序列,输出不是序列,比如视频分类、步态识别
- many to many:输入是序列,输出也是序列,比如语音识别、机器翻译