当前位置: 首页 > news >正文

循环神经网络(RNN)、LSTM 与 GRU (一)

循环神经网络(RNN)、LSTM 与 GRU (一)


文章目录

  • 循环神经网络(RNN)、LSTM 与 GRU (一)
  • 循环神经网络(RNN)、LSTM 与 GRU
    • 一、RNN(Recurrent Neural Network)
      • 1. 基本思想
      • 2. 数学表达
      • 3. 优缺点
    • 二、LSTM(Long Short-Term Memory)
      • 1. 引入背景
      • 2. 核心结构
      • 3. 状态更新
      • 4. 优缺点
    • 三、GRU(Gated Recurrent Unit)
      • 1. 概述
      • 2. 核心公式
      • 3. 特点
    • 四、对比总结
    • 五、结构对比图
    • 六、结语


循环神经网络(RNN)、LSTM 与 GRU

一、RNN(Recurrent Neural Network)

1. 基本思想

  • RNN 通过在网络中引入“循环”结构,使得当前时刻的输出不仅依赖当前输入,还依赖之前的隐藏状态。
  • 适合处理 序列数据,如文本、语音、时间序列预测。

2. 数学表达

  • 隐藏层更新:
    ht=f(Wxhxt+Whhht−1+bh)h_t = f(W_{xh}x_t + W_{hh}h_{t-1} + b_h) ht=f(Wxhxt+Whhht1+bh)
  • 输出层:
    yt=g(Whyht+by)y_t = g(W_{hy}h_t + b_y) yt=g(Whyht+by)

3. 优缺点

  • 优点:能够建模序列信息,捕捉上下文依赖。
  • 缺点:存在梯度消失和梯度爆炸问题,难以学习长期依赖。

二、LSTM(Long Short-Term Memory)

1. 引入背景

  • 针对 RNN 的 长期依赖问题,LSTM 在结构上引入了“门控机制”,有效缓解梯度消失问题。
  • 在自然语言处理、语音识别、时间序列预测等任务中应用广泛。

2. 核心结构

LSTM 的关键在于 细胞状态(Cell State)三个门(Gates)

  1. 遗忘门(Forget Gate):决定丢弃多少历史信息。
    ft=σ(Wf[xt,ht−1]+bf)f_t = \sigma(W_f[x_t, h_{t-1}] + b_f) ft=σ(Wf[xt,ht1]+bf)

  2. 输入门(Input Gate):决定写入多少新信息。
    it=σ(Wi[xt,ht−1]+bi)i_t = \sigma(W_i[x_t, h_{t-1}] + b_i) it=σ(Wi[xt,ht1]+bi)
    C~t=tanh⁡(Wc[xt,ht−1]+bc)\tilde{C}_t = \tanh(W_c[x_t, h_{t-1}] + b_c) C~t=tanh(Wc[xt,ht1]+bc)

  3. 输出门(Output Gate):决定输出多少细胞状态的信息。
    ot=σ(Wo[xt,ht−1]+bo)o_t = \sigma(W_o[x_t, h_{t-1}] + b_o) ot=σ(Wo[xt,ht1]+bo)

3. 状态更新

  • 细胞状态:
    Ct=ft∗Ct−1+it∗C~tC_t = f_t * C_{t-1} + i_t * \tilde{C}_t Ct=ftCt1+itC~t
  • 隐藏状态:
    ht=ot∗tanh⁡(Ct)h_t = o_t * \tanh(C_t) ht=ottanh(Ct)

4. 优缺点

  • 优点:能解决长期依赖问题,更好地捕捉长距离信息。
  • 缺点:结构复杂,计算量大,训练速度较慢。

三、GRU(Gated Recurrent Unit)

1. 概述

  • GRU 是 LSTM 的简化版本,仅包含 更新门(Update Gate)重置门(Reset Gate)
  • 没有独立的细胞状态,直接用隐藏状态传递信息。

2. 核心公式

  • 更新门:
    zt=σ(Wz[xt,ht−1])z_t = \sigma(W_z[x_t, h_{t-1}]) zt=σ(Wz[xt,ht1])
  • 重置门:
    rt=σ(Wr[xt,ht−1])r_t = \sigma(W_r[x_t, h_{t-1}]) rt=σ(Wr[xt,ht1])
  • 新隐藏状态:
    h~t=tanh⁡(W[xt,(rt∗ht−1)])\tilde{h}_t = \tanh(W[x_t, (r_t * h_{t-1})]) h~t=tanh(W[xt,(rtht1)])
  • 最终隐藏状态:
    ht=(1−zt)∗ht−1+zt∗h~th_t = (1 - z_t) * h_{t-1} + z_t * \tilde{h}_t ht=(1zt)ht1+zth~t

3. 特点

  • 结构更简洁,参数更少,训练更快。
  • 在很多任务中性能与 LSTM 接近甚至更优。

四、对比总结

特性RNNLSTMGRU
结构简单,循环层复杂,含门控单元(3门+细胞状态)较简洁,仅2门
长期依赖建模
计算复杂度中等
训练速度较快
典型应用简单序列建模机器翻译、语音识别NLP、推荐系统、时序预测

五、结构对比图

GRU
反馈
更新门+重置门
隐藏状态 h_t
x_t
y_t
LSTM
反馈
门控
隐藏状态 h_t
x_t
细胞状态 C_t
y_t
RNN
反馈
隐藏状态 h_t
x_t
y_t

六、结语

  • RNN 是序列建模的基础,但受限于梯度消失问题。
  • LSTM 通过门控机制成功解决长期依赖,是深度学习里程碑式的模型。
  • GRU 在保持效果的同时,计算更高效,是实际工程中的常见选择。
    在这里插入图片描述
    在这里插入图片描述

总结一句:

如果序列较短,用 RNN 即可;
如果需要捕捉长期依赖,LSTM 更稳健;
如果追求训练速度和效果平衡,GRU 是不错的选择。

http://www.dtcms.com/a/341156.html

相关文章:

  • 基于深度学习的订单簿异常交易检测与短期价格影响分析
  • 【深度学习】PyTorch中间层特征提取与可视化完整教程:从零开始掌握Hook机制与特征热力图
  • lua入门以及在Redis中的应用
  • 【ElasticSearch实用篇-03】QueryDsl高阶用法以及缓存机制
  • Java程序启动慢,DNS解析超时
  • 基于STM32的APP遥控视频水泵小车设计
  • K8S-Pod资源对象——标签
  • 【AI学习100天】Day08 使用Kimi每天问100个问题
  • 【指纹浏览器系列-绕过cdp检测】
  • 数据预处理:机器学习的 “数据整容术”
  • nginx-下载功能-状态统计-访问控制
  • 【数据结构】线性表——顺序表
  • 循环神经网络(RNN, Recurrent Neural Network)
  • Effective C++ 条款52:写了placement new也要写placement delete
  • 使用acme.sh自动申请AC证书,并配置自动续期,而且解决华为云支持问题,永久免费自动续期!
  • Spring Boot 定时任务与 xxl-job 灵活切换方案
  • 层在init中只为创建线性层,forward的对线性层中间加非线性运算。且分层定义是为了把原本一长个代码的初始化和运算放到一个组合中。
  • B站 韩顺平 笔记 (Day 24)
  • C++ std::optional 深度解析与实践指南
  • 当 AI 开始 “理解” 情绪:情感计算如何重塑人机交互的边界
  • linux报permission denied问题
  • Advanced Math Math Analysis |01 Limits, Continuous
  • uniapp打包成h5,本地服务器运行,路径报错问题
  • PyTorch API 4
  • 使数组k递增的最少操作次数
  • 路由器的NAT类型
  • 确保测试环境一致性与稳定性 5大策略
  • AI 效应: GPT-6,“用户真正想要的是记忆”
  • 获取本地IP地址、MAC地址写法
  • SQL 中大于小于号的表示方法总结