LSTM(Long Short-Term Memory,长短期记忆网络)是一种改进的递归神经网络(RNN),专门设计用来处理和解决 RNN 在学习长序列数据时遇到的梯度消失和梯度爆炸问题。LSTM 可以选择性地保留或遗忘信息,捕捉序列中的长期依赖关系。因此在自然语言处理、语音识别、时间序列预测等任务中有广泛的应用。
RNN 在实际应用中会遇到长期依赖问题:
LSTM 通过设计一个门控机制,来选择性地记住或忘记信息,从而解决了传统 RNN 难以捕捉长期依赖的问题。它能够通过控制信息的流动来有效避免梯度消失或爆炸的现象。

记忆单元是LSTM网络的核心,负责在整个序列处理过程中保持和更新长期依赖信息。记忆单元的结构相对简单,主要由一个或多个神经元组成,其状态通过时间步传递,仅通过线性方式更新(如图中三个长方形就代表了记忆单元,x表示输入,h表示输出,后面的C表示记忆的输出)。

遗忘门负责决定上一个单元留下来的记忆Ct-1有多少得以保存(控制输入)
现将ht-1和xt拼接成一个一维向量,再进行f=sigmoid(wx+b)的计算得到输出ft(都在0-1之间,表示比例,用于和上一个单元留下的记忆相乘,表示记忆留下的比例)

输入门由两部分组成:一个sigmoid层决定输入(ht-1和xt拼成的)哪些值将要更新(得到比例,0-1之间),一个tanh层和遗忘门的sigmoid功能相似,决定有多少输入会留下来(控制输入)

最终记忆的输出结果是上面两步的结果的一个函数,前面一块表示上一个单元的记忆有多少信息要留到记忆里,后面一块表示现在的输入(拼起来的)有多少信息要塞进记忆里