一、LSTM介绍
LSTM(Long Short-Term Memory)也称为长短期记忆网络,是一种改进的循环神经网络(RNN),专门设计用于解决传统RNN的梯度消失问题和长程依赖问题。LSTM通过引入门机制和细胞状态,能够更好地捕捉长序列数据中的长期依赖关系。
它的核心思想是通过引入门机制(输入门、遗忘门、输出门)和细胞状态(Cell State)来控制信息的流动,从而决定哪些信息需要保留、哪些信息需要丢弃。
1、内部结构
遗忘门:决定了哪些信息应该被丢弃(即遗忘)。它读取当前输入和前一时刻的隐藏状态,然后输出一个0到1之间的数值,表示当前时刻的信息应当保留或丢弃的比例。
输入门:决定了哪些信息需要被存储到当前的单元状态中。通过这个门来更新单元状态的记忆。
细胞状态:可以将其视为一条贯穿整个网络的”传送带”,携带长期记忆;信息通过细胞状态传递,并由各个门控机制选择性地修改。
输出门:控制从单元状态到隐藏状态的信息流出,决定当前的隐藏状态输出多少细胞状态的内容。
① 细胞状态(Cell State)
- 作用:细胞状态Ct是LSTM核心,用于存储长期信息
- 特点:
- 细胞状态在整个时间步中传递,只有少量的线性交互
- 通过门机制更新细胞状态
② 遗忘门(Forget Gate)
-
作用:决定哪些信息从细胞状态中丢弃
-
公式:
ft=σ(Wf⋅[ht−1,xt]+bf)
- ft:遗忘门的输出(0表示完全丢弃,1表示完全保留)
- Wf,bf:权重矩阵和偏置项
- σ:Sigmoid激活函数
③ 输入门(Input Gate)
-
作用:决定哪些新信息存储到细胞状态中
-
公式:
it=σ(Wi⋅[ht−1,xt]+bi)
- it:输入门的输出(0 到 1 之间的值)
- Wi,bi:权重矩阵和偏置项
- σ:Sigmoid激活函数
④ 候选细胞状态(Candidate Cell State)
-
作用:生成新的候选值,用于更新细胞状态
-
公式:
C~t=tanh(WC⋅[ht−1,xt]+bC)
- C~t:候选细胞状态
- WC,bC:权重矩阵和偏置项
- tanh:双曲正切激活函数
⑤ 更新细胞状态
-
作用:细胞状态 Ct 是LSTM的记忆,结合遗忘门和输入门,更新细胞状态
-
公式:
Ct=ft⋅Ct−1+it⋅C~t
- Ct:更新后的细胞状态
- 遗忘门ft: 决定了上一时刻的细胞状态 Ct−1 中保留多少信息
- 输入门it: 决定了当前时刻输入 xt 中有多少新信息被添加到细胞状态中
⑥ 输出门(Output Gate)
-
作用:决定细胞状态的哪些部分输出到隐藏状态
-
公式:
ot=σ(Wo⋅[ht−1,xt]+bo)
- ot:输出门的输出(0 到 1 之间的值)
- Wo,bo:权重矩阵和偏置项
- σ:Sigmoid激活函数
⑦ 隐藏状态(Hidden State)
-
作用:作为LSTM的输出,传递到下一个时间步
-
公式:
ht=ot⋅tanh(Ct)
- ht:当前时间步的隐藏状态
- Ct:是当前时刻的细胞状态
二、LSTM的内部结构图
-
结构解释图:
1、遗忘门
-
遗忘门部分结构图与计算公式:
-
遗忘门结构分析:
与传统RNN的内部结构计算非常相似,首先将当前时间步输入xt与上一个时间步隐藏状态ht−1拼接,得到[xt,ht−1],然后通过一个全连接层做变换,最后通过sigmoid函数进行激活得到ft。我们可以将ft看作是门值,好比一扇门开合的大小程度,门值都将作用在通过