目录
前言
LSTM(长短期记忆网络)是一种特殊类型的循环神经网络(RNN),用于处理和预测序列数据。与传统的RNN相比,LSTM能够更好地捕捉长期依赖关系,避免了梯度消失和梯度爆炸的问题。
一、LSTM主要组成部分
- 单元状态(Cell State):
- LSTM通过单元状态来传递信息,可以在多个时间步之间保留并传递信息。
- 门控机制: LSTM有三个主要的“门”:
- 遗忘门(Forget Gate):决定哪些信息将被丢弃。
- 输入门(Input Gate):决定哪些新信息将被存储到单元状态中。
- 输出门(Output Gate):决定当前单元状态的哪些部分将作为输出。
二、LSTM的工作原理
- 遗忘门:根据当前输入和前一个隐藏状态,生成一个0到1之间的值,决定丢弃哪些信息。
- 输入门:通过sigmoid激活函数决定哪些新信息将被添加到单元状态,并通过tanh激活函数生成新的候选值。
- 更新单元状态:结合遗忘门和输入门,更新单元状态。
- 输出门:根据当前输入和更新后的单元状态,生成输出。
三、LSTM的工作步骤详解
1.遗忘门
左边部分
功能:决定应丢弃哪些关键词信息。
步骤:
来自前一个隐藏状态的信息和当前输入的信息同时传递到 sigmoid 函数中去,输出值介于 0 和 1 之间,越接近 0 意味着越应该丢弃,越接近 1 意味着越应该保留。
2.输入门
中间部分
功能:用于更新细胞状态。
步骤:
1、首先将前一层隐藏状态的信息和当前输入的信息传递到 sigmoid 函数中去。将值调整到 0~1 之间来决定要更新哪些信息。0 表示不重要,1 表示重要。
2、将前一层隐藏状态的信息和当前输入的信息传递到 tanh 函数中去,创造一个新的侯选值向量。最后将 sigmoid 的输出值与 tanh 的输出值相乘,sigmoid 的输出值将决定 tanh 的输出值中哪些信息是重要且需要保留下来的。
3.输出门
右边部分
功能:用来确定下一个隐藏状态的值。
步骤:
1、将前一个隐藏状态和当前输入传递到 sigmoid 函数中,然后将新得到的细胞状态传递给 tanh 函数。
2、将 tanh 的输出与 sigmoid 的输出相乘,以确定隐藏状态应携带的信息。再将隐藏状态作为当前细胞的输出,把新的细胞状态和新的隐藏状态传递到下一个时间步长中去。