大白话理解LSTM神经网络(附实例讲解)
神经网络是人工智能的重要组成部分,而长短期记忆网络(LSTM)则是神经网络中的一种重要类型。LSTM网络是一种特殊的递归神经网络(RNN),它具有记忆单元,可以在处理序列数据时考虑到前面的信息。
一、LSTM的基本概念
要理解LSTM,首先要了解基本RNN的局限性。在处理序列数据时,基本RNN存在两个主要问题:长期依赖性和梯度消失/爆炸。长期依赖性问题使得RNN在处理长序列时难以捕捉到前面信息的记忆;而梯度消失/爆炸问题则是在反向传播时,梯度可能会变得非常小(导致“忘记”)或非常大(导致数值不稳定性)。
LSTM通过引入了门机制和记忆单元来解决这些问题。具体来说,LSTM有三个门(输入门、输出门和遗忘门)以及一个记忆单元(也称为“状态”或“内部状态”),它们共同协调信息流动。
- 输入门:决定新信息的进入。它通过使用 sigmoid 激活函数来权衡新的输入和旧的记忆。
- 遗忘门:决定哪些信息应该被遗忘。它通过使用 sigmoid 激活函数来权衡旧信息和新的信息。
- 输出门:决定哪些信息应该被用于计算输出。它通过使用 sigmoid 激活函数来权衡旧信息和新的信息。
- 记忆单元:用于保存长期信息。记忆单元使用一个激活函数(通常是 tanh)来产生新的候选值(即“候选状态”),然后与遗忘门的结果相乘,从而更新状态。
二、LSTM的实例
让我们用一个简单的例子来说明LSTM的工作原理。假设我们有一个由三个数字组成的序列:[10, 20, 30]。首先,我们初始化一个LSTM网络,其内部状态为0,然后逐个处理这三个数字。 - 对于第一个数字10,遗忘门将旧的内部状态(假设为0)与新的输入(10)相乘,然后加上一个偏置项(通常为1),得到新的内部状态。然后,输入门将新的内部状态(即10)与外部输入(即10)相乘,得到一个新的候选状态。再然后,将这个新的候选状态和旧的状态相加,并加上一个偏置项(通常为1),得到更新后的状态。最后,输出门将更新后的状态(即10)和内部的候选状态(即…um,也是10)相乘,并加上一个偏置项(通常为1),得到输出值(即25)。
- 对于第二个数字20,同样进行上述的步骤,但是考虑到第一轮处理得到的内部状态(即10),遗忘门会遗忘掉这个内部状态的一部分(即7),然后用外部输入(即20)和新的内部状态(即20)计算新的候选状态。然后,更新后的状态为旧的内部状态(即7)和新的候选状态(即39)的和,再加上一个偏置项(通常为1)。最后,输出门将更新后的状态(即19)和内部的候选状态(也是19)相乘,并加上一个偏置项(通常为1),得到输出值(即40)。
- 对于第三个数字30,同样进行上述的步骤,但是考虑到第二轮处理得到的内部状态(即19),遗忘门会遗忘掉这个内部状态的一部分(即9),然后用外部输入(即30)和新的内部状态(即30)计算新的候选状态。然后,更新后的状态为旧的内部状态(即9)和新的候选状态(即73)的和,再加上一个偏置项(通常为1)。最后,输出门将更新后的状态(即48)和内部的候选状态(也是48)相乘,并加上一个偏置项(通常为1),得到输出值(即49)。