在接下来的【精读】中,我们将深入了解自然语言处理中的重要基础知识,包括seq2seq、attention和RNN。
明天我们将进一步探讨循环神经网络(RNN),并介绍其改进版本——长短期记忆网络(LSTM)。实际上,LSTM在网络应用中更为常见,且通常能获得更优的结果,因为它弥补了RNN的一些不足,如梯度消失和爆炸问题。
LSTM全称为“长短期记忆网络”,是一种改进型的RNN。尽管有些资料会将名称写成“Long-Short Term Memory”,但正确的形式应为“Long Short-Term Memory”。
RNN的核心是一个简单的记忆单元。相比之下,LSTM在此基础上增加了多个门控机制,使其能够根据不同的情境和输入条件灵活传递信息。
首先,我们来看LSTM的几个关键组成部分:
扩展1:输入门(Input Gate)
输入门负责决定哪些信息可以从当前输入中传递到记忆单元。输入门的信号由前一时刻的输出和当前时刻的输入共同决定。
扩展2:输出门(Output Gate)
输出门控制从记忆单元输出的信息量。如果输出门关闭,则记忆单元的内容不会被传递出去。
扩展3:遗忘门(Forget Gate)
遗忘门的作用是决定记忆单元中哪些信息需要被清除。如果遗忘门关闭,记忆单元中的旧信息会被清除,只保留新信息。
LSTM在RNN的基础上增加了这四个关键部分,使网络能够更好地处理长期依赖问题。下图展示了LSTM的内部结构。
通过公式化描述,我们可以更清晰地理解这些门控机制的工作原理。假设在t-1时刻后,记忆单元中的值为c。
在t时刻,经过训练后的输入部分分别为Z、Zi、Zo和Zf,分别通过各自的激活函数g(Z)、f(Zi)、f(Zf)和f(Zo)处理。
具体而言:
由于所有门控机制都采用Sigmoid激活函数,因此它们的输出值要么为0,要么为1,从而实现信息的增减。
总的来说,LSTM在手写识别、序列生成、机器翻译、语音和视频分析等领域都取得了比RNN更好的效果。其中,遗忘门的作用尤为关键,它决定了哪些信息应该被保留,哪些应该被丢弃。