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

深度学习-大白话解释循环神经网络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)​: 控制记忆单元的信息输出到下一层。

相关文章:

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

目录 一、RNN的思想 二、RNN的基本结构 网络架构 ​关键点 三、RNN的前向传播 四、RNN的挑战:梯度爆炸和梯度消失 问题分析 ​示例推导 五、LSTM:RNN的改进 核心组件 ​网络架构 3. LSTM 的工作流程 4. 数学公式总结 5. LSTM 的优缺点 ​优点 ​缺点 6. LSTM 的…...

Spring统一格式返回

目录 一&#xff1a;统一结果返回 1&#xff1a;统一结果返回写法 2&#xff1a;String类型报错问题 解决方法 二&#xff1a;统一异常返回 统一异常返回写法 三&#xff1a;总结 同志们&#xff0c;今天咱来讲一讲统一格式返回啊&#xff0c;也是好久没有讲过统一格式返…...

IPOIB 驱动中的发送完成处理机制

1. ipoib_napi_add_rss 函数 ipoib_napi_add_rss 函数的主要作用是为 InfiniBand 设备的每个接收队列和发送队列添加 NAPI 结构,并注册相应的轮询函数。NAPI(New API)是一种网络接口卡(NIC)的轮询机制,用于高效处理网络数据包,避免频繁的中断处理开销。 static void i…...

BambuStudio学习笔记:format格式化输出

# Slic3r::format 字符串格式化工具说明## 概述本头文件提供了基于 boost::format 的 C 字符串格式化工具封装&#xff0c;旨在简化多参数格式化操作&#xff0c;支持类似 C20 std::format 的调用语法。## 核心设计目标- **简化调用语法**&#xff1a;替代 boost::format 的链式…...

软件测试基础:功能测试知识总结

&#x1f345; 点击文末小卡片 &#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 一、测试项目启动与研读需求文档 &#xff08;一&#xff09; 组建测试团队 1、测试团队中的角色 2、测试团队的基本责任 尽早地发现软件程序、系统或产品中…...

wheel_legged_genesis 开源项目复现与问题记录

Reinforcement learning of wheel-legged robots based on Genesis System Requirements Ubuntu 20.04/22.04/24.04 python > 3.10 开始配置环境&#xff01; 点击releases后进入&#xff0c;下载对应最新版本的代码&#xff1a; 将下载后的代码包解压到你的自定义路径下&…...

【金融量化】Ptrade中如何量化策略的交易持久化?

交易持久化是指在实际交易中交易相关的数据&#xff08;如订单信息、持仓状态、策略参数等&#xff09;保存到本地或远程存储中&#xff0c;以便在程序重启、系统崩溃或网络中断后能够恢复交易状态&#xff0c;确保策略的连续性和稳定性。以下是如何在策略中实现交易持久化的方…...

qt实践教学(编写一个代码生成工具)持续更新至完成———

前言&#xff1a; 我的想法是搭建一个和STM32cubemux类似的图形化代码生成工具&#xff0c;可以把我平时用到的代码整合一下全部放入这个软件中&#xff0c;做一个我自己专门的代码生成工具&#xff0c;我初步的想法是在下拉选框中拉取需要配置的功能&#xff0c;然后就弹出对…...

设置 CursorRules 规则

为什么要设置CursorRules&#xff1f; 设置 CursorRules 可以帮助优化代码生成和开发流程&#xff0c;提升工作效率。具体的好处包括&#xff1a; 1、自动化代码生成 &#xff1a;通过定义规则&#xff0c;Cursor 可以根据你的开发需求自动生成符合规定的代码模板&#xff0c…...

AI 芯片全解析:定义、市场趋势与主流芯片对比

1. 引言&#xff1a;什么是 AI 芯片&#xff1f; 随着人工智能&#xff08;AI&#xff09;的快速发展&#xff0c;AI 计算的需求不断增长&#xff0c;从云计算到边缘计算&#xff0c;AI 芯片成为推动智能化时代的核心动力。那么&#xff0c;什么样的芯片才算 AI 芯片&#xff…...

Axure高保真Element框架元件库

点击下载《Axure高保真Element框架元件库》 原型效果&#xff1a;https://axhub.im/ax9/9da2109b9c68749a/#g1 摘要 本文详细阐述了在 Axure 环境下打造的一套高度还原 Element 框架的组件元件集。通过对 Element 框架组件的深入剖析&#xff0c;结合 Axure 的强大功能&#…...

21.<基于Spring图书管理系统②(图书列表+删除图书+更改图书)(非强制登录版本完结)>

PS&#xff1a; 开闭原则 定义和背景 开闭原则&#xff08;Open-Closed Principle, OCP&#xff09;&#xff0c;也称为开放封闭原则&#xff0c;是面向对象设计中的一个基本原则。该原则强调软件中的模块、类或函数应该对扩展开放&#xff0c;对修改封闭。这意味着一个软件实体…...

【2025年后端开发终极指南:云原生、AI融合与性能优化实战】

一、2025年后端开发的五大核心趋势 1. 云原生架构的全面普及 云原生&#xff08;Cloud Native&#xff09;已经成为企业级应用的核心底座。通过容器化技术&#xff08;DockerKubernetes&#xff09;和微服务架构&#xff0c;开发者能够实现应用的快速部署、弹性伸缩和故障自愈…...

Docker新手入门(持续更新中)

一、定义 快速构建、运行、管理应用的工具。 Docker可以帮助我们下载应用镜像&#xff0c;创建并运行镜像的容器&#xff0c;从而快速部署应用。 所谓镜像&#xff0c;就是将应用所需的函数库、依赖、配置等应用一起打包得到的。 所谓容器&#xff0c;为每个镜像的应用进程创建…...

微信小程序读取写入NFC文本,以及NFC直接启动小程序指定页面

一、微信小程序读取NFC文本(yyy优译小程序实现),网上有很多通过wx.getNFCAdapter方法来监听读取NFC卡信息,但怎么处理读取的message文本比较难找,现用下面方法来实现,同时还解决几个问题,1、在回调方法中this.setData不更新信息,因为this的指向问题,2、在退出页面时,…...

【Spring Boot 应用开发】-05 命令行参数

Spring Boot 常用命令行参数 Spring Boot 支持多种命令行参数&#xff0c;这些参数可以在启动应用时通过命令行直接传递。以下是一些常用的命令行参数及其详细说明&#xff1a; 1. 基本配置参数 --server.port端口号 指定应用程序运行的HTTP端口&#xff0c;默认为8080。 jav…...

选择研究方向(28条)DeepSeek提示词

选择研究方向&#xff08;28条&#xff09; 在学术研究的旅程中&#xff0c;确定研究方向和主题是至关重要的第一步。一个明确且具有创新性的研究主题不仅能够为研究提供清晰的方向&#xff0c;还能激发研究者的热情和动力。以下是一些优化后的提示词&#xff0c;目的在于帮助…...

Linux中读写锁详细介绍

读写锁介绍 Linux 中的读写锁&#xff08;Read-Write Lock&#xff09;是一种用于线程同步的机制&#xff0c;它允许多个线程同时读取共享资源&#xff0c;但只允许一个线程写入共享资源。这种机制在读操作远多于写操作的场景下&#xff0c;可以显著提高并发性能。读写锁主要有…...

flink分布式事务 - 两阶段提交

分布式事务与两阶段提交协议详解 分布式事务是分布式系统中保证数据一致性和可靠性的核心技术之一。在大数据处理、微服务架构以及实时流处理等领域,分布式事务的应用场景越来越广泛。两阶段提交协议(Two-Phase Commit, 2PC)作为一种经典的分布式事务管理协议,在保证强一致…...

《DataWorks:为人工智能算法筑牢高质量数据根基》

在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;技术的迅猛发展深刻地改变着各个行业的面貌。从智能推荐系统到医疗影像诊断&#xff0c;从自动驾驶到自然语言处理&#xff0c;AI正以前所未有的速度渗透到我们生活和工作的方方面面。而在这一系列AI应用的背后…...

机器学习(五)

一&#xff0c;多类&#xff08;Multiclass&#xff09; 多类是指输出不止有两个输出标签&#xff0c;想要对多个种类进行分类。 Softmax回归算法&#xff1a; Softmax回归算法是Logistic回归在多类问题上的推广&#xff0c;和线性回归一样&#xff0c;将输入的特征与权重进行…...

DeepSeek搭配Excel,制作自定义按钮,实现办公自动化!

今天跟大家分享下我们如何将DeepSeek生成的VBA代码&#xff0c;做成按钮&#xff0c;将其永久保存在我们的Excel表格中&#xff0c;下次遇到类似的问题&#xff0c;直接在Excel中点击按钮&#xff0c;就能10秒搞定&#xff0c;操作也非常的简单. 一、代码准备 代码可以直接询问…...

利用Git和wget批量下载网页数据

一、Git的下载&#xff08;参考文章&#xff09; 二. wget下载&#xff08;网上很多链接&#xff09; 三、git和wget结合使用 1.先建立一个文本&#xff0c;将代码写入文本&#xff08;代码如下&#xff09;&#xff0c;将txt后缀改为sh&#xff08;download_ssebop.sh&#xf…...

人工智能之数学基础:线性代数中的行列式的介绍

本文重点 行列式是一种重要的数学工具,更是连接众多数学概念和实际应用的桥梁。本文将介绍矩阵的行列式,你可以把它看成对方阵的一种运算,将方阵映射成一个标量。 行列式的定义 行列式是一个由数值组成的方阵所确定的一个标量值。对于一个n*n的矩阵A=(aij),其行列式记为d…...

[自然语言处理]pytorch概述--什么是张量(Tensor)和基本操作

pytorch概述 PyTorch 是⼀个开源的深度学习框架&#xff0c;由 Facebook 的⼈⼯智能研究团队开发和维护&#xff0c;于2017年在GitHub上开源&#xff0c;在学术界和⼯业界都得到了⼴泛应⽤ pytorch能做什么 GPU加速自动求导常用网络层 pytorch基础 量的概念 标量&#xf…...

[杂学笔记]HTTP1.0和HTTP1.1区别、socket系列接口与TCP协议、传输长数据的时候考虑网络问题、慢查询如何优化、C++的垃圾回收机制

目录 1.HTTP1.0和HTTP1.1区别 2.socket系列接口与TCP协议 3.传输长数据的时候考虑网络问题 4.慢查询如何优化 5.C的垃圾回收机制 1.HTTP1.0和HTTP1.1区别 在连接方式上&#xff0c;HTTP1.0默认采用的是短链接的方式&#xff0c;就建立一次通信&#xff0c;也就是说即使在…...

电商主图3秒法则

‌1. 基础铁律‌ ▸ 首图点击率曝光量/点击量 ▸ 黄金3秒&#xff1a;触发冲动 > 信息堆砌 ‌2. 必守三原则‌ ✔ ‌单点爆破‌ → 1核心功能 > 10卖点叠加(反例&#xff1a;电子类目点击率↓18%) ✔ ‌场景植入‌ → 带场景主图点击率↑34%(数据源&#xff1a;20…...

DeepSeek DeepEP学习(一)low latency dispatch

背景 为了优化延迟&#xff0c;low lantency使用卡间直接收发cast成fp8的数据的方式&#xff0c;而不是使用normal算子的第一步执行机间同号卡网络发送&#xff0c;再通过nvlink进行转发的两阶段方式。进一步地&#xff0c;normal算子的dispatch包含了notify_dispatch传输meta…...

Metal学习笔记十:光照基础

光和阴影是使场景流行的重要要求。通过一些着色器艺术&#xff0c;您可以突出重要的对象、描述天气和一天中的时间并设置场景的气氛。即使您的场景由卡通对象组成&#xff0c;如果您没有正确地照亮它们&#xff0c;场景也会变得平淡无奇。 最简单的光照方法之一是 Phong 反射模…...

Wpf-ReactiveUI-Usercontrol交互

文章目录 1、使用属性绑定UserControl 部分(MyUserControl.xaml.cs)UserControl 视图模型部分(MyUserControlViewModel.cs)主界面部分(MainWindow.xaml)主界面视图模型部分(MainWindowViewModel.cs)2、使用消息传递UserControl 视图模型部分(MyUserControlViewModel.c…...