news 2026/6/23 15:58:32

简谈循环神经网络(RNN)以及现代变体

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
简谈循环神经网络(RNN)以及现代变体

一、概述

循环神经网络,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要存储从t=1到t的所有历史信息。这就导致随着时间推移,h_t一定会被存满。

二、经典RNN到现代变体

1、背景

经典RNN有一个致命伤:长距离依赖问题。由于链式法则和反复乘以 W_h 矩阵(尤其在 tanh 或 sigmoid 激活函数下),梯度在反向传播过程中会指数级地消失或爆炸。因此,RNN很难学到时间上相隔较远的信息。a哥在这里举个形象的例子:就像是我们在通讯软件里不断层级转发一张照片,这个照片的清晰度可能会下降,RNN因为自身的结构就会出现这种弊端。

为了解决这个问题,两位大牛霍赫赖特与施密德胡伯在1997年提出了长短期记忆网络(LSTM),后来又出现了门控循环单元(GRU)。

2、LSTM

LSTM比经典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、GRU

GRU是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更高效,参数更少

表达能力可能略弱于LSTM

transformer

去循环化和自注意力机制隐形的上下文窗口输入部分、编码器、解码器、输出部分并行计算、克服长距离依赖问题计算复杂度和内存消耗高
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/23 15:54:35

震动感应灯

在user文件夹添加shake文件夹添加shake.c,shake.h文件//在shake.c #include"sahke.h" #include"stm32f10x.h"void Shake_Init(void) {}//在shake.h #include"stm32f10x.h"void Shake_Init(void);//在main.c里调用Shake_Init();并且添…

作者头像 李华
网站建设 2026/6/23 15:53:25

51单片机音乐盒

目录 具体实现功能 设计介绍 51单片机简介 资料内容 原理图和PCB(AD19) 仿真实现(protues8.7) 程序(Keil5) 全部资料 资料获取 具体实现功能 具体功能: 单片机内置8首歌曲&#xff0c…

作者头像 李华
网站建设 2026/6/23 15:44:44

视觉语言模型在扫描路径语义相似性分析中的应用

1. 视觉语言模型与扫描路径相似性研究概述 眼动追踪技术长期以来为我们提供了精确的"人们看向何处"的数据,但解读"人们看到了什么"始终是一个挑战。传统扫描路径(scanpath)相似性度量方法如MultiMatch、动态时间规整(DTW)等,主要评估…

作者头像 李华
网站建设 2026/6/23 15:40:11

AEGIS技术解析:基于梯度正交投影的大模型微调防遗忘实战

1. 从“灾难性遗忘”说起:为什么大模型微调后反而变“笨”了?最近在折腾多模态大模型的微调,特别是视觉语言动作模型这类大家伙。不知道你有没有遇到过这种情况:你花了好几天时间,用一批高质量的专业数据,比…

作者头像 李华
网站建设 2026/6/23 15:28:51

Vue Axios数据流设计:构建可维护、可观测的生产级API管道

1. 这不是“调用API”,而是构建一个可维护的数据流管道很多人看到标题第一反应是:“哦,Vue里用Axios发个请求,把response.data塞进data里就完事了。”——这确实能跑通,但我在带三个前端团队做中后台系统时发现&#x…

作者头像 李华
网站建设 2026/6/23 15:22:51

客户旅程不是流程图,而是行为-情绪-决策的显微镜

1. 项目概述:这不是一张地图,而是一台客户行为显微镜 “Why Should You Care About Your Customers Journey?”——这个标题乍看像一句温和的提问,实则直击当下所有面向真实用户的业务核心命门。它不谈流量、不聊转化率、不堆KPI&#xff0c…

作者头像 李华