关于对RNN,LSTM,BiLSTM算法的初步认识

张开发
2026/6/12 8:24:49 15 分钟阅读
关于对RNN,LSTM,BiLSTM算法的初步认识
NLP-AHU-077先来介绍一下LSTM算法LSTM算法的中文名叫长短期记忆网络它的设计灵感来源于计算机中的逻辑门LSTM引入了记忆元的概念帮助神经网络去记录附加的信息。比如在输入文本当中它可以存储很长的序列内部的文本之间的相互联系。为了控制记忆元的内容LSTM创造了三个门输入门、遗忘门和输出门。输入门决定了当前信息Xt的强度遗忘门决定了过去记忆Ct-1的强度两者共同构成了当前记忆Ct输出门则决定了当前记忆Ct对当前隐状态Ht的影响程度。以下图片可以大概描述它们之间的关系其中输入门、遗忘门、输出门分别计算如下It σ(XtWxi Ht-1Whi bi)Ft σ(XtWxf Ht-1Whf bf)Ot σ(XtWxo Ht-1Who bo)我们观察发现三个门的计算流程都是一样的唯一不同的是权重矩阵W与偏置b。接下来是记忆元的计算在记忆元转正之前要先成为候选记忆元它的计算与以上三个门的计算类似C̃t tanh(XtWxc Ht-1Whc bc)用tanh作为激活函数。其权重矩阵W与偏置b也与以上三个门不同。现在我们再来计算真正的记忆元Ct它由两个门来控制分别是输入门和遗忘门输入门决定有多少信息来自候选记忆元遗忘门决定有多少信息来自过去的记忆元Ct-1它们本质上都是向量所以各自使用按元素乘法计算如下Ct Ft ⊙ Ct-1 It ⊙ C̃t其中⊙代表按元素点乘。如果遗忘门遗忘过去的记忆即Ft为零。输入门保留当前的候选记忆即It为1则方便捕获短期依赖。反之也可以保留过去的记忆遗忘当前的候选记忆则方便捕获长期依赖。这种设计可以有效缓解捕获长短期依赖导致的梯度爆炸或消失。最后输出门Ot决定记忆元Ct中有多少信息传递给当前隐状态HtHt Ot ⊙ tanh(Ct)如果输出门Ot打开即接近1则将记忆元的信息全部传递给当前隐状态Ht更新当前历史信息让信息向下一个时间步传递。反之则倾向于只保留记忆元信息而将当前隐状态信息进行抑制即隐状态Ht被抑制为0。但注意此时Ht-1的信息仍然保留在了记忆元当中。通过调节输出门模型可以抑制不重要的或噪声的信号防止其影响后续的计算。当输出门抑制时重要的信息被保存在细胞状态中而不会过早地通过隐藏状态暴露给下一时间步。从而控制了隐藏状态的大小有助于缓解梯度消失或爆炸的总结一下遗忘门和输入门负责在过去记忆元的信息和当前候选记忆元信息中进行权遗忘门和输入门负责在过去记忆元的信息和当前候选记忆元信息中进行权衡灵活的选取过去记忆和当前候选记忆来组成当前记忆而输出门则负责决定有多少记忆传递到当前隐状态来对下一时刻的计算产生影响。可以看出LSTM的信息流动是记忆元和隐状态双向并行传播分别携带长期和短期的信息并通过门控机制在每个时间步适当交叉。这样做可以适当分离记忆和表达并尽量让他们互不干涉从而让模型有较强的处理长序列的能力。接下来我们来介绍RNN它的中文名叫循环神经网络早期的机器学习用软件和硬件来模拟人的神经元接受一些输入信号再输出一些信号这是单向的。早期的机器学习过渡到深度学习阶段之后首先我们来看图片左边部分图片有两个主要节点S节点表示网络的状态它接受来自下方的输入信息X以及上一时刻的状态信息。通过权重矩阵U和W对这些信息进行处理和融合从而更新当前的状态。这里的权重矩阵U控制着输入信息对状态的影响程度而W则决定了上一时刻的状态对当前状态的反馈作用。这里可以理解为当一个人在思考问题时既会考虑当前接受的新信息也会参考之前自己已有的想法和认知来形成新的状态。接下来状态节点S会将信息传递给上方的O节点这个O节点代表网络的输出它通过权重矩阵V对状态信息进行转换得动最终的输出结果这就好比在我们的思维过程中经过我们的大脑对各种信息进行综合处理后再通过嘴巴表达出相应的观点和结论右边的展开图详细的展示了RNN在时间序列上的运作关系在处理自然语言文本数据时网络能够通过前面的状态和输入来理解后面和预测后面的词语。就比如在看电影时X相当于每一帧画面依次进入我们的视觉系统在大脑也就是这个状态节点S中进行处理和记忆进而影响我们对后续情节的理解就是输出O而输出O在不同的时间节点也不一样。那么为什么RNN无法处理长期依赖问题呢首先理解一下什么是长期依赖问题长期依赖问题是指模型难以捕捉到距离当前位置较远的依赖关系。比如在语言模型中预测句子I grew up in china....,i speak fluent...fluent后面填的单词要依赖于前面的china但由于这个句子很长导致可能很难预测第一个原因它有梯度消失和爆炸问题在RNN中隐藏状态的更新依赖于前一时刻的隐藏状态和当前的输入在反向传播中梯度会随着时间步的增加不断乘以权重矩阵的导数如果权重矩阵的特征值小于1那么梯度会指数级减小导致无法有效的更新模型参数相反如果特征值大于1则会指数级增长模型更新不稳定。第二个原因是架构上的局限性信息会被输入不断的覆盖导致早期的信息在传播的后期变得非常微弱比如在处理长句子时句子开头的信息在句子传播到末尾时可能就已经丢失了大部分。所以RNN在机器翻译文本生成等方面表现不佳。最后在理解了LSTM的基础上介绍BiLSTM的优势要理解BiLSTM为何有效我们得先回到自然语言理解的根本挑战上语境的双向性。人类在理解一句话时并非从左到右线性解析。例如在句子“这个苹果不太甜所以我没吃完”中要理解“苹果”的属性我们既需要看它前面的“这个”也需要看后面“不太甜”的评价。一个只从左向右阅读的模型如前向LSTM在读到“苹果”时还无法预知后面“不太甜”的关键信息这必然导致信息缺失。\n\nBiLSTM的聪明之处在于它用两个独立的LSTM层同时从两个方向扫描整个序列。\n\n前向LSTM层按常规顺序t1 到 tT处理输入捕捉以历史信息为主的上下文。\n后向LSTM层按逆序tT 到 t1处理输入捕捉以未来信息为主的上下文。\n对于序列中的每一个时间步tBiLSTM会获得两个隐藏状态向量一个是来自前向LSTM的 ℎ→\nℎ\n\n→\n包含了从序列开始到当前位置的所有信息另一个是来自后向LSTM的 ℎ←\nℎ\n\n←\n包含了从序列末尾到当前位置的所有信息。最终的输出便是这两个向量的某种组合

更多文章