在处理文本、语音、时间序列等序列数据时,传统神经网络因无法捕捉数据间的顺序依赖关系而受限。循环神经网络(RNN)及其进阶版长短期记忆网络(LSTM)应运而生,成为序列建模的核心工具。本文将带你深入了解 RNN 与 LSTM 的原理、差异及应用。
一、RNN:序列数据的 "入门记忆者"
(一)RNN 的诞生背景
序列数据(如文本中 "我喜欢自然语言处理",当前词与前面的词紧密相关;或股票价格,今日走势受昨日影响)的核心特点是上下文依赖。但传统神经网络(如全连接网络)在处理这类数据时,是 "一次性" 输入所有信息,模型无法学习到数据的顺序关系,就像读文章时不按顺序看字,自然无法理解语义。
为解决这一问题,RNN 被提出。它在处理序列输入时具有记忆性,能保留之前输入的信息,并将其作为后续输入的一部分参与计算。
(二)RNN 的结构与原理
RNN 引入了 隐状态(hidden state,用h表示)的概念,隐状态可对序列数据提取特征并转换为输出。
从结构上看,RNN 按时间步展开,每个时间步t的计算都依赖当前输入 xt 和上一时间步的隐状态 h(t-1) 。其核心计算公式为其中,U是输入到隐状态的权重矩阵,W是隐状态到隐状态的权重矩阵,b是偏置项,f通常是激活函数(如 tanh)。
同时,RNN 有一个重要特点:参数共享。每个时间步使用的U、W、b都是相同的,这大大减少了模型需要学习的参数数量。
在输出方面,RNN 的输出\(y_t\)由当前隐状态\(h_t\)计算得到,例如通过 softmax 函数:其中V是隐状态到输出的权重矩阵,c是偏置项。


(三)RNN 的缺陷
RNN 虽能处理序列数据,但存在长期依赖问题。随着序列长度增加,梯度在反向传播过程中会不断衰减(梯度消失)或爆炸,导致模型难以学习到长距离的依赖关系。
可以用 "传声筒游戏" 来类比:在游戏中,信息从第一个人传到最后一个人时,前面的关键信息会逐渐丢失,RNN 就像玩传声筒的人,距离远的信息很难被记住,因为梯度随时间推移不断下降,当梯度值过小时,模型就难以继续有效学习。
二、LSTM:长短期记忆的 "优化大师"
(一)LSTM 的设计初衷
为解决 RNN 的长期依赖问题,LSTM(Long Short - Term Memory,长短期记忆网络)被提出。它是 RNN 的一种特殊类型,能学习长期依赖信息,大部分与 RNN 模型结构相似,但用不同的函数来计算隐状态,从而更好地控制信息的留存与遗忘。
比如我们在网上看商品评价时,大脑会下意识记住 "好看""真酷" 等关键评价词,而忽略 "我""也" 等无关字词;第二天朋友问起,我们能说出核心观点,无关内容则被遗忘。LSTM 就如同这样的 "记忆筛选器",学习保留相关信息用于预测,遗忘不相关数据。

(二)LSTM 的核心机制:门结构
LSTM 通过 门(gate) 的内部机制来调节信息流,主要有三种门结构:
1. 遗忘门(Forget Gate)
功能:决定应丢弃哪些信息。步骤:将来自前一个隐状态的信息和当前输入的信息同时传递到 sigmoid 函数中。sigmoid 函数的输出值介于 0 和 1 之间,越接近 0 意味着越应该丢弃该信息,越接近 1 意味着越应该保留该信息。
2. 输入门(Input Gate)
功能:用于更新细胞状态。步骤:
- 首先将前一层隐藏状态的信息和当前输入的信息传递到 sigmoid 函数中,将值调整到 0~1 之间,以此决定要更新哪些信息(0 表示不重要,1 表示重要);
- 再将前一层隐藏状态的信息和当前输入的信息传递到 tanh 函数中,创造一个新的候选值向量;
- 最后将 sigmoid 的输出值与 tanh 的输出值相乘,sigmoid 的输出值决定 tanh 的输出值中哪些信息是重要且需要保留下来的。
3. 输出门(Output Gate)
功能:用来确定下一个隐藏状态的值。步骤:
- 将前一个隐藏状态和当前输入传递到 sigmoid 函数中,然后将新得到的细胞状态传递给 tanh 函数;
- 将 tanh 的输出与 sigmoid 的输出相乘,以确定隐藏状态应携带的信息;
- 再将隐藏状态作为当前细胞的输出,把新的细胞状态和新的隐藏状态传递到下一个时间步长中去。
这些门结构协同工作,让 LSTM 能有效控制长期信息的存储与短期无关信息的遗忘,从而解决了 RNN 的长期依赖问题。
(三)LSTM 与 RNN 的对比
特性 | RNN | LSTM |
---|---|---|
长期依赖学习能力 | 弱,易出现梯度消失 / 爆炸 | 强,能学习长期依赖 |
内部机制 | 无特殊门结构,仅通过简单的隐状态传递 | 有遗忘门、输入门、输出门,精准控制信息流 |
应用场景 | 短序列任务(如简单的词性标注) | 长序列任务(如机器翻译、文本生成、时间序列预测) |
三、总结
RNN 开启了序列数据建模的大门,解决了传统神经网络无法处理顺序依赖的问题,但受限于长期依赖学习能力。LSTM 作为 RNN 的进阶,通过门结构巧妙地控制信息的留存与遗忘,突破了长期依赖的瓶颈,成为处理长序列数据的有力工具。在实际应用中,需根据序列长度、任务需求等因素选择合适的模型,让这些 "记忆大师" 更好地为序列数据建模服务。