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

深度学习-大白话解释循环神经网络RNN

目录

一、RNN的思想

 二、RNN的基本结构

网络架构

​关键点

 三、RNN的前向传播

四、RNN的挑战:梯度爆炸和梯度消失

问题分析

​示例推导

五、LSTM:RNN的改进

核心组件

​网络架构

3. LSTM 的工作流程

4. 数学公式总结

5. LSTM 的优缺点

​优点

​缺点

6. LSTM 的变种与改进

​1. Peephole LSTM

​2. 双向 LSTM

六:GRU

1. GRU 的核心目标

2. GRU 的基本结构

​核心组件

网络架构

3. GRU 的工作流程

4. 数学公式总结

5. GRU 的优缺点

​优点

​缺点

6. GRU 的变种与改进

​1. 双向 GRU

​2. 带 Peephole 的 GRU


一、RNN的思想

  • 目标: 处理具有 ​时序关系​(时间顺序上的相互联系和依存关系) 的数据(如时间序列、自然语言、语音等)。
  • 核心特点:
    • 隐藏状态的传递: 隐藏状态在每个时间步被更新并传递到下一个时间步。
    • 记忆能力: 通过隐藏状态捕捉序列中的长期依赖关系。

 二、RNN的基本结构

网络架构

一个典型的 RNN 包含以下部分:

  1. 输入层​ (Xt​): 接收当前时间步的输入。
  2. 隐藏层​ (Ht​):
    • 公式:
    • Wih​: 输入到隐藏层的权重矩阵。
    • Whh​: 隐藏层到隐藏层的权重矩阵(核心参数)。
    • bh​: 隐藏层偏置项。
    • f: 激活函数(如 Tanh、ReLU)。
  3. 输出层​ (Yt​): 生成当前时间步的输出。
    • 公式:
    • Who​: 隐藏层到输出层的权重矩阵。
    • bo​: 输出层偏置项。
    • g: 输出激活函数(如 Sigmoid、Softmax)。

关键点

  • 时间步: 数据按顺序依次处理(如单词序列逐词处理)。
  • 隐藏状态 Ht​: 承载序列的历史信息,是 RNN 的“记忆”。

 三、RNN的前向传播

以序列长度为 T 的数据为例:

  1. 初始化: 初始隐藏状态 H0​(通常设为全零)。没次增加时间步时,都会增加一个H,用来保证后面的输出和前面的输出有关,乘上的权重代表前面的与后面的相关性大小。
  2. 迭代计算:
    • 对每个时间步 t=1,2,...,T

四、RNN的挑战:梯度爆炸和梯度消失

问题分析

  • 梯度消失: 在长序列中,梯度随时间步指数级衰减(反向传播时多次相乘)。
  • 梯度爆炸: 梯度随时间步指数级增长。

示例推导

假设简单 RNN 的误差项 δt​ 反向传播:

若 ∣Whh​∣<1,乘积趋近于零(梯度消失);若 ∣Whh​∣>1,乘积趋近于无穷(梯度爆炸)。 反向传播的时候需要对权重连乘,很容易梯度消失或爆炸

五、LSTM:RNN的改进

核心组件

  1. 记忆单元(Memory Cell)​:
    • 用于存储长期序列中的关键信息。
  2. 门控单元:
    • 输入门(Input Gate)​: 控制新信息进入记忆单元。
    • 遗忘门(Forget Gate)​: 控制旧信息从记忆单元中移除。
    • 输出门(Output Gate)​: 控制记忆单元的信息输出到下一层。
http://www.lryc.cn/news/546847.html

相关文章:

  • python3.13安装教程【2025】python3.13超详细图文教程(包含安装包)
  • RocketMQ的运行架构
  • SLAM文献之-DROID-SLAM: Deep Visual SLAM for Monocular, Stereo, and RGB-D Cameras
  • nano 是 Linux 系统中的一个 命令行文本编辑器
  • JAVA毕设项目-基于SSM框架的百色学院创新实践学分认定系统源码+设计文档
  • Unity3D 刚体动力学(Rigidbody Dynamics)详解
  • 深入理解Spring Cloud Gateway网关原理及使用
  • ESP32+Mixly-WiFi
  • Spring AI:开启Java开发的智能新时代
  • Github-介绍
  • 爬虫系列之【数据解析之正则】《二》
  • 【音视频】视频基本概念
  • 2.4GHZ无线跳频算法 C语言
  • 【leetcode hot 100 56】合并区间
  • Python测试框架Pytest的参数化
  • 4G工业路由器在公交充电桩中的应用与优势
  • 搭建一个简单的node服务,模拟后端接口
  • 高频 SQL 50 题(基础版)_610. 判断三角形
  • 【JQuery—前端快速入门】JQuery 基础语法
  • Springboot整合WebSocket+Redis以及微信小程序如何调用
  • 【前端基础】1、HTML概述(HTML基本结构)
  • 小程序性能优化-预加载
  • (1)udp双向通信(2)udp实现文件复制(3)udp实现聊天室
  • el-table 手动选择展示列
  • 零基础学习之——深度学习算法介绍01
  • 【开源项目】好用的开源项目记录(持续更新)
  • Django:文件上传时报错in a frame because it set ‘X-Frame-Options‘ to ‘deny‘.
  • Linux常用指令学习笔记
  • FastGPT 引申:基于 Python 版本实现 Java 版本 RRF
  • 面试八股文--数据库基础知识总结(3)MySQL优化