深度学习-大白话解释循环神经网络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 包含以下部分:
- 输入层 (Xt): 接收当前时间步的输入。
- 隐藏层 (Ht):
- 公式:

- Wih: 输入到隐藏层的权重矩阵。
- Whh: 隐藏层到隐藏层的权重矩阵(核心参数)。
- bh: 隐藏层偏置项。
- f: 激活函数(如 Tanh、ReLU)。
- 公式:
- 输出层 (Yt): 生成当前时间步的输出。
- 公式:

- Who: 隐藏层到输出层的权重矩阵。
- bo: 输出层偏置项。
- g: 输出激活函数(如 Sigmoid、Softmax)。
- 公式:
关键点
- 时间步: 数据按顺序依次处理(如单词序列逐词处理)。
- 隐藏状态 Ht: 承载序列的历史信息,是 RNN 的“记忆”。
三、RNN的前向传播
以序列长度为 T 的数据为例:
- 初始化: 初始隐藏状态 H0(通常设为全零)。没次增加时间步时,都会增加一个H,用来保证后面的输出和前面的输出有关,乘上的权重代表前面的与后面的相关性大小。
- 迭代计算:
- 对每个时间步 t=1,2,...,T

- 对每个时间步 t=1,2,...,T
四、RNN的挑战:梯度爆炸和梯度消失
问题分析
- 梯度消失: 在长序列中,梯度随时间步指数级衰减(反向传播时多次相乘)。
- 梯度爆炸: 梯度随时间步指数级增长。
示例推导
假设简单 RNN 的误差项 δt 反向传播:

若 ∣Whh∣<1,乘积趋近于零(梯度消失);若 ∣Whh∣>1,乘积趋近于无穷(梯度爆炸)。 反向传播的时候需要对权重连乘,很容易梯度消失或爆炸
五、LSTM:RNN的改进
核心组件
- 记忆单元(Memory Cell):
- 用于存储长期序列中的关键信息。
- 门控单元:
- 输入门(Input Gate): 控制新信息进入记忆单元。
- 遗忘门(Forget Gate): 控制旧信息从记忆单元中移除。
- 输出门(Output Gate): 控制记忆单元的信息输出到下一层。
相关文章:
深度学习-大白话解释循环神经网络RNN
目录 一、RNN的思想 二、RNN的基本结构 网络架构 关键点 三、RNN的前向传播 四、RNN的挑战:梯度爆炸和梯度消失 问题分析 示例推导 五、LSTM:RNN的改进 核心组件 网络架构 3. LSTM 的工作流程 4. 数学公式总结 5. LSTM 的优缺点 优点 缺点 6. LSTM 的…...
python3.13安装教程【2025】python3.13超详细图文教程(包含安装包)
文章目录 前言一、python3.13安装包下载二、Python 3.13安装步骤三、Python3.13验证 前言 本教程将为你详细介绍 Python 3.13 python3.13安装教程,帮助你顺利搭建起 Python 3.13 开发环境,快速投身于 Python 编程的精彩实践中。 一、python3.13安装包下…...
RocketMQ的运行架构
目录 1. 核心组件(1) NameServer(2) Broker(3) Producer(4) Consumer 2. 消息流转流程3. 高可用机制4. 扩展性与负载均衡5.容错机制5. 特殊功能支持6. 典型部署架构总结 RocketMQ 是一款高性能、高可靠的分布式消息中间件,其运行架构设计为分布式、可扩展、高可用的…...
SLAM文献之-DROID-SLAM: Deep Visual SLAM for Monocular, Stereo, and RGB-D Cameras
DROID-SLAM 是一种结合深度学习与传统视觉SLAM技术的先进算法,其核心目标是通过端到端可训练的深度神经网络来实现高精度的相机位姿估计和稠密三维重建。与传统SLAM方法不同,DROID-SLAM采用深度学习网络来估计深度信息,提供更高的精度与鲁棒性…...
nano 是 Linux 系统中的一个 命令行文本编辑器
nano 是 Linux 系统中的一个 命令行文本编辑器,用于在终端中直接编辑文本文件。它相比 vi 或 vim 更加简单易用,适合新手操作。 具体解释: 在你给出的命令 sudo nano /etc/nfs.conf 中: sudo:以管理员权限运行命令&a…...
JAVA毕设项目-基于SSM框架的百色学院创新实践学分认定系统源码+设计文档
文末获取源码数据库文档 感兴趣的可以先收藏,有毕设问题,项目以及论文撰写等问题都可以和博主沟通,尽最大努力帮助更多的人! 百色学院创新实践学分认定系统设计与实现 摘 要 本百色学院创新实践学分认定系统是针对目前实践学分认定…...
Unity3D 刚体动力学(Rigidbody Dynamics)详解
引言 在Unity3D中,刚体(Rigidbody)是实现物理模拟的核心组件之一。刚体动力学(Rigidbody Dynamics)是指通过物理引擎模拟物体的运动、碰撞、重力等行为。Unity3D内置了强大的物理引擎,开发者可以通过刚体组…...
深入理解Spring Cloud Gateway网关原理及使用
1、网关简介 网关作为流量的入口,常用的功能包括路由转发,权限校验,限流等。 2、Gateway简介 Spring Cloud Gateway 是Spring Cloud官方推出的第二代网关框架,定位于取代 Netflix Zuul。相比 Zuul 来说,Spring Cloud Gateway 提供更优秀的性能,更强大的有功能。 Spri…...
ESP32+Mixly-WiFi
#include <WiFi.h> #include <TimeLib.h> #include <NtpClientLib.h>int8_t timeZone 8; // 时区设置,东八区为8 const PROGMEM char *ntpServer "ntp1.aliyun.com"; // NTP服务器地址void setup(){Serial.begin(9600); //初始化串口…...
Spring AI:开启Java开发的智能新时代
目录 一、引言二、什么是 Spring AI2.1 Spring AI 的背景2.2 Spring AI 的目标 三、Spring AI 的核心组件3.1 数据处理3.2 模型训练3.3 模型部署3.4 模型监控 四、Spring AI 的核心功能4.1 支持的模型提供商与类型4.2 便携 API 与同步、流式 API 选项4.3 将 AI 模型输出映射到 …...
Github-介绍
GitHub 是一个基于 Git 版本控制系统的代码托管平台,广泛用于开源项目、团队协作、代码管理等方面。它让开发者能够上传、分享、修改、协作、跟踪代码的更改。 1. GitHub 的基本功能: 代码托管:GitHub 提供云端存储代码的功能,可…...
爬虫系列之【数据解析之正则】《二》
目录 前言 一、正则基本使用 1.1 导包 1.2 接口方法 1.3 换行匹配问题 二、实战案例 完整代码 前言 在爬虫工作中,我们主要会遇到两种类型的文本数据: JSON格式数据 HTML文档数据 对于JSON字符串数据,通常使用Python的字典操作进行键…...
【音视频】视频基本概念
一、视频的基本概念 1.1 视频码率(kb/s) 视频码率是指视频文件在单位时间内使用的数据流量,也叫码流率。码率越大,说明单位时间内取样率越大,数据流进度也就越高 1.2 视频帧率(fps) 视频帧率…...
2.4GHZ无线跳频算法 C语言
目录 一、概述 二、2.4GHZ无线调频算法C语言代码 关键点说明: 实际应用注意事项: 一、概述 2.4GHz频段常用在蓝牙、Wi-Fi或者Zigbee这些无线技术中,不同的协议可能有不同的跳频机制。比如蓝牙使用的是自适应跳频,而传统的可能用伪随机序列跳频。 用户可能是在开发自己…...
【leetcode hot 100 56】合并区间
解法一:排序 我们用数组 merged 存储最终的答案。首先,我们将列表中的区间按照左端点升序排序。然后我们将第一个区间加入 merged 数组中,并按顺序依次考虑之后的每个区间: 如果当前区间的左端点在数组 merged 中最后一个区间的右…...
Python测试框架Pytest的参数化
上篇博文介绍过,Pytest是目前比较成熟功能齐全的测试框架,使用率肯定也不断攀升。 在实际工作中,许多测试用例都是类似的重复,一个个写最后代码会显得很冗余。这里,我们来了解一下pytest.mark.parametrize装饰器&…...
4G工业路由器在公交充电桩中的应用与优势
随着电动公交车的普及,公交充电桩的稳定运行和高效管理是交通营运部门最关心的问题。4G工业路由器凭借其卓越的数据采集和通讯能力,成为实现充电桩智能化管理的关键。 公交充电桩运维管理需求概述: 1.实时性:实时监控充电状态、剩…...
搭建一个简单的node服务,模拟后端接口
目录 一、查看是否安装了node和npm 二、创建一个文件夹,用于放你的node服务代码 三、初始化一个package.json 四、安装 Express(快速搭建服务的框架) 五、创建serve.js 六、运行服务即可 七、测试接口 法一:使用 curl 法…...
高频 SQL 50 题(基础版)_610. 判断三角形
思路 # Write your MySQL query statement below select x,y,z, case when xy>z and xz>y and yz>x then Yes else No end as triangle from Triangle...
【JQuery—前端快速入门】JQuery 基础语法
JQuery JQuery是一个快速、简洁且功能丰富的JavaScript框架; 1. 引入依赖 使用JQuery需要先引入对应的库; 在使用 JQuery CDN 时,只需要在 HTML 文档中加入如下代码 <script src"https://code.jquery.com/jquery-3.7.1.min.js"></s…...
智慧医疗能源事业线深度画像分析(上)
引言 医疗行业作为现代社会的关键基础设施,其能源消耗与环境影响正日益受到关注。随着全球"双碳"目标的推进和可持续发展理念的深入,智慧医疗能源事业线应运而生,致力于通过创新技术与管理方案,重构医疗领域的能源使用模式。这一事业线融合了能源管理、可持续发…...
三维GIS开发cesium智慧地铁教程(5)Cesium相机控制
一、环境搭建 <script src"../cesium1.99/Build/Cesium/Cesium.js"></script> <link rel"stylesheet" href"../cesium1.99/Build/Cesium/Widgets/widgets.css"> 关键配置点: 路径验证:确保相对路径.…...
CMake基础:构建流程详解
目录 1.CMake构建过程的基本流程 2.CMake构建的具体步骤 2.1.创建构建目录 2.2.使用 CMake 生成构建文件 2.3.编译和构建 2.4.清理构建文件 2.5.重新配置和构建 3.跨平台构建示例 4.工具链与交叉编译 5.CMake构建后的项目结构解析 5.1.CMake构建后的目录结构 5.2.构…...
LeetCode - 394. 字符串解码
题目 394. 字符串解码 - 力扣(LeetCode) 思路 使用两个栈:一个存储重复次数,一个存储字符串 遍历输入字符串: 数字处理:遇到数字时,累积计算重复次数左括号处理:保存当前状态&a…...
现代密码学 | 椭圆曲线密码学—附py代码
Elliptic Curve Cryptography 椭圆曲线密码学(ECC)是一种基于有限域上椭圆曲线数学特性的公钥加密技术。其核心原理涉及椭圆曲线的代数性质、离散对数问题以及有限域上的运算。 椭圆曲线密码学是多种数字签名算法的基础,例如椭圆曲线数字签…...
2023赣州旅游投资集团
单选题 1.“不登高山,不知天之高也;不临深溪,不知地之厚也。”这句话说明_____。 A、人的意识具有创造性 B、人的认识是独立于实践之外的 C、实践在认识过程中具有决定作用 D、人的一切知识都是从直接经验中获得的 参考答案: C 本题解…...
以光量子为例,详解量子获取方式
光量子技术获取量子比特可在室温下进行。该方式有望通过与名为硅光子学(silicon photonics)的光波导(optical waveguide)芯片制造技术和光纤等光通信技术相结合来实现量子计算机。量子力学中,光既是波又是粒子。光子本…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...
零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...
