长短时记忆网络(LSTM)是一种常用于处理序列数据的循环神经网络(RNN)变体,特别适用于长序列和需要捕捉长期依赖关系的任务。
最上面的绿色线是长期记忆。最下面的红色线是短期记忆。
LSTM包括一个单元(cell)和三个门(gate):输入门(input gate)、遗忘门(forget gate)、输出门(output gate)
输入门控制新信息的输入,遗忘门控制之前记忆的遗忘,输出门控制从单元中输出的信息。
LSTM通过遗忘门和输入门的控制机制,有效地处理长期依赖关系,避免了传统RNN中梯度消失或梯度爆炸的问题。
- 遗忘门:
输入数据与短期记忆数据合并→经过权重和偏置→经过sigmoid激活函数→输出一个0—1权重,让它与长期记忆相乘。所以叫做遗忘门。
- 输入门:
输入数据与短期数据合并→经过权重和偏置→经过sigmoid激活函数→输出一个0—1权重
输入数据与短期数据合并→经过权重和偏置→经过tanh激活函数→输出一个-1—1权重
让以上2个输出相乘,得到的值与长期记忆相加,得到新的长期记忆
所以是输入门
- 输出门:
输入数据与短期数据合并→经过权重和偏置→经过sigmoid激活函数→输出一个0—1权重
长期记忆数据经过tanh激活函数,输出一个-1—1权重
以上2个数据相乘,得到新的短期记忆数据
注意:参数对于每个LSTM单元来说是共享的。这样的目的是使LSTM可以输入任意长度的序列。