1. 循环神经网络(RNN)的本质与局限
在自然语言处理领域,RNN的出现标志着序列建模的重大突破。传统神经网络处理文本时,每个单词都被视为独立输入,这种"健忘症"式的处理方式显然不符合人类理解语言的本质。想象一下,如果我们在阅读时对每个单词都重新开始思考,那将永远无法理解句子的含义。
RNN的核心创新在于引入了隐藏状态(hidden state)的概念。这个隐藏状态就像是一个不断更新的笔记本,在处理每个新词时都会参考之前记录的内容。具体来看,RNN的计算过程可以用以下公式表示:
code复制h_t = tanh(W_hh * h_{t-1} + W_xh * x_t + b_h)
y_t = W_hy * h_t + b_y
其中,h_t代表当前时刻的隐藏状态,x_t是当前输入,y_t是输出。W_hh、W_xh、W_hy分别是权重矩阵,b_h、b_y是偏置项。tanh激活函数将输出限制在[-1,1]范围内,防止数值爆炸。
提示:在实际应用中,RNN的隐藏层维度(hidden_size)是一个关键超参数。过小的维度会导致信息容量不足,过大的维度则会增加计算负担。通常建议从128或256开始尝试。
然而,RNN存在一个致命缺陷——梯度消失问题。在反向传播过程中,梯度需要通过时间步连续相乘。当序列较长时,梯度会指数级衰减或爆炸。这就像是在玩传话游戏,经过多人传递后,最初的信息往往面目全非。具体来说,当梯度值小于1时,连乘会导致梯度趋近于0(消失);当梯度值大于1时,连乘会导致梯度急剧增大(爆炸)。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. LSTM:记忆管理的艺术
2.1 LSTM的核心机制
LSTM通过引入三个精巧设计的"门"结构,实现了对信息的精细控制。这些门实际上都是sigmoid函数(输出在0到1之间),决定了信息的通过程度:
-
遗忘门(Forget Gate):决定保留多少旧记忆
code复制f_t = σ(W_f * [h_{t-1}, x_t] + b_f) -
输入门(Input Gate):决定接收多少新信息
code复制i_t = σ(W_i * [h_{t-1}, x_t] + b_i) Ĉ_t = tanh(W_C * [h_{t-1}, x_t] + b_C)
