以及现代变体)
一、概述循环神经网络Recurrent Neural Network简称RNN。是一种专门用于处理序列数据比如时间序列、文本、语音等的深度学习模型。与传统的神经网络不同的是RNN具有“记忆功能”简单理解就是能够利用之前的信息影响它的输出。1、核心思想RNN的设计其实是来源于人脑的处理方式。当年凯库勒梦到了蛇咬尾巴就此发现了“苯”分子的结构那么据a哥推断这个RNN提出者大抵是梦到了人脑神经系统开个小玩笑哈。RNN在处理序列数据时某个时间点的输出不仅取决于当前的输入还取决于之前的状态也就是上下文。想象一个最基本的RNN单元它在每个时间步t接收两个输入产生一个输出。大致过程2、输入x_t:当前时间步的输入比如一个句子中某个单词的词向量h_{t-1}:上一个时间步的隐藏状态这是RNN“记忆”的载体3、计算过程首先将x_t和h_{t-1}进行线性变换并相加加权求和然后通过一个非线性激活函数比如tanh或ReLU得到当前时间步的隐藏状态h_t最后h_t会有两个流向1经过一个线性层通常加softmax得到当前时间步的输出y_pred这个输出也就是当前时间步的预测值.2作为下一个时间步的输入的一部分即变成了下一个时间步的上一个时间步的h_t。4、数学公式隐藏状态更新h_t tanh(W_h * h_{t-1} W_x * x_t b)输出计算y_t Softmax(W_y * h_t b_y)其中W_h, W_x, W_y 分别是隐藏状态、输入、输出的权重矩阵b, b_y 是偏置项。5、RNN的重要特性参数共享所有时间步的权重矩阵w_h,w_x,w_y都是一样的大大减少了参数量并让模型能够处理任意长度的序列。顺序处理信息沿着时间轴串行流动h_t必须等待h_{t-1}计算完成这就导致训练和推理的速度慢并且无法像transformer一样并行计算。记忆的“容量瓶颈”h_t是一个固定维度的向量而这个h_t要存储从t1到t的所有历史信息。这就导致随着时间推移h_t一定会被存满。二、经典RNN到现代变体1、背景经典RNN有一个致命伤长距离依赖问题。由于链式法则和反复乘以 W_h 矩阵尤其在 tanh 或 sigmoid 激活函数下梯度在反向传播过程中会指数级地消失或爆炸。因此RNN很难学到时间上相隔较远的信息。a哥在这里举个形象的例子就像是我们在通讯软件里不断层级转发一张照片这个照片的清晰度可能会下降RNN因为自身的结构就会出现这种弊端。为了解决这个问题两位大牛霍赫赖特与施密德胡伯在1997年提出了长短期记忆网络LSTM后来又出现了门控循环单元GRU。2、LSTMLSTM比经典RNN多了一个关键的细胞状态Cell State C_t它像一条传送带信息在上面可以很少变化地流动。LSTM通过三个精心设计的“门”来控制信息的增删遗忘门决定从细胞状态 C_{t-1} 中丢弃哪些旧信息例如句子主语已经改变需要忘记旧主语的性别。输入门决定将哪些新的候选信息 C_t 存入细胞状态。更新细胞状态结合遗忘门和输入门的结果更新细胞状态。C_t f_t * C_{t-1} i_t * C_t输出门决定当前细胞状态 C_t 的哪些部分需要输出为隐藏状态 h_t。LSTM的优势通过门控机制和独立的细胞状态梯度可以沿着 C_t 这条“高速公路”通畅地流动有效缓解了长距离依赖问题。3、GRUGRU是LSTM的简化版本将LSTM的三个门合并为两个门并合并了细胞状态和隐藏状态。它更高效参数更少。重置门Reset Gate决定如何结合当前输入 x_t 与上一隐藏状态 h_{t-1}以计算候选状态 h_t。更新门Update Gate决定保留多少旧隐藏状态 h_{t-1}以及引入多少新候选状态 h_t。长距离依赖仍然困难虽然LSTM/GRU解决了梯度消失问题但对于超长序列如数千词的文档其效果仍不理想。信息容量有限隐藏状态是固定维度的向量无法像注意力机制那样让模型动态地“聚焦”于输入序列的任意位置。结论正是这些局限促使了Transformer架构的诞生。Transformer通过自注意力Self-Attention 机制实现了完全并行化的计算并且通过注意力权重直接捕捉任意位置之间的依赖关系从而在绝大多数NLP任务上取代了RNN成为了当前大模型如GPT、BERT、LLaMA的核心。4、transformer由 Google 在 2017 年的论文《Attention Is All You Need》中提出。它彻底摒弃了 RNN/LSTM 中的循环结构完全基于自注意力机制Self-Attention来构建模型。4.1核心思想用全注意力机制取代循环结构实现对序列的全局感知与并行化处理。4.2关键组件一个标准的 Transformer Encoder编码器主要由以下模块组成A. 输入与位置编码 (Input Embedding Positional Encoding)Embedding将词汇映射为稠密向量。PE正弦/余弦函数生成的向量注入位置信息。B. 自注意力机制 (Scaled Dot-Product Attention)这是最核心的组件。C. 多头注意力 (Multi-Head Attention)将 Q,K,V 分成多个子空间头分别进行注意力计算最后拼接起来。作用让模型能从不同角度如语法角度、语义角度、指代关系角度同时关注不同的信息。D. 前馈神经网络 (Feed-Forward Network, FFN)在每个注意力层之后接一个全连接的前馈网络通常是两层线性层夹一个激活函数 ReLU/GELU。作用对特征进行非线性变换和进一步整合。E. 残差连接 (Residual Connection) 层归一化 (Layer Normalization)残差连接 防止梯度消失加速收敛。Layer Norm稳定训练过程对每个样本的每个特征维度进行归一化。F. 解码器 (Decoder) - 仅用于生成任务Masked Self-Attention强制模型在预测第 防止“作弊”看到未来。Encoder-Decoder Attention让解码器去“关注”编码器的输出实现翻译或生成任务中的对齐。5、对比结构核心思想记忆机制关键组件优点缺点经典RNN循环连接隐藏状态隐藏状态h_t一个非线性激活层参数共享处理变长序列长距离梯度消失/爆炸LSTM门控机制细胞状态细胞状态C_t信息高速路 隐藏状态h_t遗忘门、输入门、输出门、细胞状态有效缓解长距离依赖参数量大计算复杂GRU简化门控机制合并后的隐藏状态h_t更新门、重置门比LSTM更高效参数更少表达能力可能略弱于LSTMtransformer去循环化和自注意力机制隐形的上下文窗口输入部分、编码器、解码器、输出部分并行计算、克服长距离依赖问题计算复杂度和内存消耗高