📅  最后修改于: 2023-12-03 15:42:10.137000             🧑  作者: Mango
LSTM是一种常用于处理序列数据的机器学习模型。相比于传统的循环神经网络(RNN),它能更好地处理长序列信息,同时避免了梯度消失的问题。LSTM在自然语言处理(NLP)、语音识别、图像识别等领域有着广泛的应用。
LSTM的基本单元是一个称为LSTM单元的组件,其内部结构包括三个门(输入门、输出门和遗忘门)和一个记忆单元,如下图所示:
输入门:控制着信息从外部输入到记忆单元的量。它由一个sigmoid层和一个Tanh层组成。sigmoid层输出在[0,1]之间的数值,作为一个与当前序列的输入相关的权重;Tanh层将输入映射到[-1,1]之间。在元素层面上,LSTM将这两个层的输出点乘在一起,从而获取要输入到记忆单元的信息。
遗忘门:控制着要从记忆单元中丢弃的信息。它也由一个sigmoid层和一个Tanh层组成。sigmoid层输出在[0,1]之间的数值,它将要从记忆单元中剔除的信息映射到[0,1]之间;Tanh层将记忆单元的信息映射到[-1,1]之间。在元素层面上,LSTM将这两个层的输出点乘再取反,将这些要遗忘的信息清除。
输出门:控制着要将记忆单元中哪些信息输出到外部。它也由一个sigmoid层和一个Tanh层组成。sigmoid层输出在[0,1]之间的数值,它将要输出到外部的信息映射到[0,1]之间;Tanh层将记忆单元的信息映射到[-1,1]之间。在元素层面上,LSTM将这两个层的输出点乘起来,输出那些关键的信息。
记忆单元:用于存储序列的信息,它可以根据遗忘门和输入门的控制来删除或增加信息。这样,LSTM能够记住重要的信息,同时也能够忘记那些现在并不重要的信息。
LSTM的训练遵循常规的监督学习方式,使用反向传播算法进行训练。我们将数据输入到LSTM中,LSTM会输出预测结果。我们根据预测结果与真实值之间的误差,使用损失函数来计算误差值。我们使用反向传播算法计算LSTM每个参数的梯度,并根据这些梯度来更新参数。通过这种方式,我们逐渐提高了LSTM对序列数据的预测能力。