1. RNN基础概念与核心原理
循环神经网络(Recurrent Neural Network)是处理序列数据的经典模型。与传统前馈神经网络不同,RNN引入了"记忆"机制,通过隐藏状态(hidden state)保存历史信息。这种结构特别适合处理时间序列、自然语言等具有时序特征的数据。
1.1 网络结构解析
RNN的典型结构包含三个核心部分:
- 输入层:接收当前时间步的输入x_t
- 隐藏层:维护隐藏状态h_t,计算公式为h_t = f(W_hh * h_{t-1} + W_xh * x_t + b_h)
- 输出层:生成当前输出y_t = g(W_hy * h_t + b_y)
其中f和g分别是隐藏层和输出层的激活函数,常用tanh或ReLU。这种链式结构使得网络可以处理任意长度的序列。
1.2 前向传播过程
以一个简单的情感分析任务为例,处理句子"I love this movie"时:
- 将每个单词转换为词向量x_1("I"), x_2("love"), x_3("this"), x_4("movie")
- 按顺序计算每个时间步的隐藏状态:
h_1 = tanh(W_hh * h_0 + W_xh * x_1 + b_h)
h_2 = tanh(W_hh * h_1 + W_xh * x_2 + b_h)
... - 最终隐藏状态h_4包含整个句子的语义信息,用于分类
注意:初始隐藏状态h_0通常初始化为全零向量或随机小量
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. RNN的变体与改进方案
2.1 长短期记忆网络(LSTM)
LSTM通过引入三个门控机制(输入门、遗忘门、输出门)和细胞状态,有效缓解了梯度消失问题。其核心公式包括:
- 遗忘门:f_t = σ(W_f·[h_{t-1}, x_t] + b_f)
- 输入门:i_t = σ(W_i·[h_{t-1}, x_t] + b_i)
- 候选值:C̃_t = tanh(W_C·[h_{t-1}, x_t] + b_C)
- 细胞状态更新:C_t = f_t * C_{t-1} + i_t * C̃_t
- 输出门:o_t = σ(W_o·[h_{t-1}, x_t] + b_o)
- 隐藏状态:h_t = o_t * tanh(C_t)
