【循环神经网络RNN第一期】循环神经网络RNN原理概述

article/2025/9/7 17:49:33

目录

  • 🧠 什么是循环神经网络(RNN)?
    • 🔁 RNN 的结构图
    • 🔄 RNN 的“记忆”与问题
    • RNN梯度推导
  • 🧬 LSTM:解决长期依赖问题
    • 🧱 LSTM 的核心结构
    • LSTM总结
  • 参考

人类在思考的时候,会从上下文、从过去推断出现在的结果。传统的神经网络无法记住过去的历史信息。

循环神经网络是指随着时间推移,重复发生的结构。它可以记住之前发生的事情,并且推断出后面发生的事情。用于处理时间序列很好。所有的神经元共享权值。如下图所示。
在这里插入图片描述

🧠 什么是循环神经网络(RNN)?

循环神经网络(Recurrent Neural Network, RNN) 是一类用于处理序列数据的神经网络结构,具有“记忆”能力,适用于自然语言处理、时间序列预测、语音识别等任务。

与传统的前馈神经网络(如全连接网络、卷积神经网络)不同,RNN 的每一个时刻的输出不仅依赖于当前的输入,还依赖于前一个时刻的隐藏状态(即“记忆”)。

🔁 RNN 的结构图

RNN 的基本结构可以展开为一个链式结构:

xt → ht → Ot↑ht-1

其中:

  • xt 是时间步 t 的输入
  • ht 是时间步 t 的隐藏状态(记忆)
  • Ot 是时间步 t 的输出
  • ht-1 是前一时间步的隐藏状态

公式如下:

ht = tanh(Wxh * xt + Whh * ht-1 + bh)
Ot = Why * ht + by

可以看到,隐藏状态 ht 是由当前输入 xt 和前一个隐藏状态 ht-1 一起决定的。

🔄 RNN 的“记忆”与问题

RNN 虽然可以捕捉序列的上下文信息,但在实践中存在两个主要问题:

❗ 梯度消失 / 梯度爆炸
在长序列训练中,反向传播时的梯度会因为不断地链式相乘而:

  • 趋近于零(梯度消失),导致网络无法学习长期依赖;
  • 迅速变大(梯度爆炸),导致模型不稳定。

这使得 RNN 在处理长期依赖问题时效果不佳。

记住短期信息:比如预测“天空中有__”,如果过去的信息“鸟”离当前位置比较近,则RNN可以利用这个信息预测出下一个词为“鸟”
在这里插入图片描述
不能长期依赖:如果需要的历史信息距离当前位置很远,则RNN无法学习到过去的信息。这就是不能长期依赖的问题。
在这里插入图片描述
所有的RNN有着重复的结构,如下图,比如内部是一个简单的tanh 层。
在这里插入图片描述

RNN梯度推导

在这里插入图片描述

🧬 LSTM:解决长期依赖问题

为解决上述问题,LSTM(Long Short-Term Memory) 网络被提出,是一种特殊的 RNN 结构,能够更好地捕捉长期依赖信息。

LSTM 通过引入 “门控机制” 控制信息的保留与遗忘:
在这里插入图片描述

🧱 LSTM 的核心结构

单元状态:单元状态像一个传送带,通过整个链向下运行,只有一些小的线性作用。信息就沿着箭头方向流动。
在这里插入图片描述

LSTM的门结构 可以添加或者删除单元状态的信息,去有选择地让信息通过。它由sigmoid网络层 和 点乘操作组成。输出属于[0,1]之间,代表着信息通过的比例。
在这里插入图片描述

LSTM 的每个单元由以下几个部分组成:

1、遗忘门(Forget Gate),控制哪些信息要丢弃(忘记):

ft = σ(Wf · [ht-1, xt] + bf)

在这里插入图片描述

2、输入门(Input Gate),决定哪些新信息被存入记忆:

it = σ(Wi · [ht-1, xt] + bi)
Ct~ = tanh(WC · [ht-1, xt] + bC)

在这里插入图片描述

3、更新记忆单元(Cell State)

Ct = ft * Ct-1 + it * Ct~

在这里插入图片描述

4、输出门(Output Gate),决定最终输出:

ot = σ(Wo · [ht-1, xt] + bo)
ht = ot * tanh(Ct)

在这里插入图片描述

其中:

  • σ 是 sigmoid 激活函数
  • tanh 是双曲正切函数
  • ht 是输出
  • Ct 是单元状态

LSTM总结

核心结构如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

参考

1、循环神经网络


http://www.hkcw.cn/article/OoMawqOLXo.shtml

相关文章

自动驾驶与智能交通:构建未来出行的智能引擎

随着人工智能、物联网、5G和大数据等前沿技术的发展,自动驾驶汽车和智能交通系统正以前所未有的速度改变人类的出行方式。这一变革不仅是技术的融合创新,更是推动城市可持续发展的关键支撑。 一、自动驾驶与智能交通的定义 1. 自动驾驶(Auto…

5.3.1_2二叉树的层次遍历

遍历过程: 从根节点开始,从左到右一层一层遍历,如下:ABCDEFGHIJKL 初始化一个辅助队列,让根节点先入队,每次判断队列是否为空,不空则让队头节点出队访问该节点让该节点左右孩子入队尾(先左孩子…

Qt DateTimeEdit(时间⽇期的微调框)

使⽤ QDateEdit 作为⽇期的微调框. 使⽤ QTimeEdit 作为时间的微调框 使⽤ QDateTimeEdit 作为时间⽇期的微调框. 这⼏个控件⽤法⾮常相似, 我们以 QDateTimeEdit 为例进⾏介绍. QDateTimeEdit 核⼼属性 属性说明dateTime时间⽇期的值. 形如 2000/1/1 0:00:00date单纯⽇期…

NISCO里境全新VALUE系列合肥首店启幕,携手正反设计打造0压生活空间

2025年5月28日,NISCO里境全新VALUE系列全国首家旗舰店正式落子合肥,梦百合集团近三十位核心经销商代表齐聚,深度体验新系列门店的空间场景与创新产品矩阵。 作为品牌“双线并进”的重要布局,VALUE系列以高性价比为核心,聚焦二三线城市消费需求,通过沉浸式空间场景与革新性产品设…

制造企业搭建AI智能生产线怎么部署?

制造商需要精准协调生产和发货,确保订单及时交付。MES、ERP、CRM 系统与生产线集成,对生产管理流程、物料跟踪、品控、确定货期至关重要。如果某个系统发生延迟或者效率低下,会在造成整个生产环节停滞,影响最终交付,导…

Linux系统管理与编程24:基础条件准备-混搭“本地+阿里云”yum源

兰生幽谷,不为莫服而不芳; 君子行义,不为莫知而止休。 1.添加宿主机共享文件夹 Linux虚拟机可以和宿主机共享文件夹,这样有利于工具文件的共享。具体操作如下: 1)vmware workstation共享文件夹 虚拟机…

VCS elab选项 -simprofile功能

#废话不多说,直接上干货 1.简介 VCS提供的simprofile功能是用于分析仿真过程中的CPU time和machine memory消耗情况,可以协助定位一些垃圾代码写法导致的仿真资源消耗过大问题;本篇内容包含,应用此功能的必要工具准备、makefile…

30万数据 动态查出用户拥有对应 skuid 数量

项目场景: 提示:30万数据 动态查出用户拥有对应 skuid 数量: 如 skuid1 skuid2 skuid3 skuid4 … 表结构如下 CREATE TABLE eb_nft_user (id int(10) unsigned NOT NULL AUTO_INCREMENT,skuId varchar(255) NOT NULL DEFAULT COMMENT 商品…

快递物流查询接口如何用C#进行调用?

一、什么是快递物流查询接口 支持国内外1500快递公司跟踪服务,包括顺丰、圆通、韵达等主流快递公司。快递物流查询接口为连接电商平台、物流企业与终端用户之间的桥梁,正在发挥着不可替代的作用。它不仅帮助用户实时掌握包裹动态,也为物流企…

【C语言】函数指针及其应用

目录 1.1 函数指针的概念和应用 1.2 赋值与内存模型 1.3 调用方式与注意事项 二、函数指针的使用 2.1 函数指针的定义和访问 2.2 动态调度:用户输入驱动函数执行 2.3 函数指针数组进阶应用 2.4 函数作为参数的高阶抽象 三、回调函数 3.1 指针函数…

第十三章:预处理

预处理功能是C语言特有的功能,可以使用预处理和具有预处理的功能是C 语言和其他高级语言的区别之一。预处理程序包含许多有用的功能,如宏定义、条件编译等,使用预处理功能便于程序的修改、阅读、移植和调试,也便于实现模块化程序设计。 通过本章的学习,您可以: 1、掌握…

9.4 Q1|复旦大学CHARLS发文 | 老年人肌肉减少症和轻度认知障碍

1.第一段-文章基本信息 文章题目:Sarcopenia and mild cognitive impairment among elderly adults: The first longitudinal evidence from CHARLS 中文标题:老年人肌肉减少症和轻度认知障碍:来自CHARLS 的第一个纵向证据 发表杂志&#x…

python h5py 读取mat文件的<HDF5 object reference> 问题

我用python加载matlab的mat文件 mat文件: 加载方式: mat_file h5py.File(base_dir str(N) _nodes_dataset_snr- str(snr) _M_ str(M) .mat, r) Signals mat_file["Signals"][()] Tp mat_file["Tp"][()] Tp_list mat_fil…

【数据结构】图论核心算法解析:深度优先搜索(DFS)的纵深遍历与生成树实战指南​

深度优先搜索 导读:从广度到深度,探索图的遍历奥秘一、深度优先搜索二、算法思路三、算法逻辑四、算法评价五、深度优先生成树六、有向图与无向图结语:深潜与回溯,揭开图论世界的另一面 导读:从广度到深度,…

扫地机产品异物进入吸尘口堵塞异常检测方案

扫地机产品异物进入吸尘口堵塞异常的检测方案 文章目录 扫地机产品异物进入吸尘口堵塞异常的检测方案一.背景二.石头的音频异常检测的方案2.1 音频检测触发点2.1.1时间周期2.1.2根据清洁机器人清扫模式或清扫区域污渍类型,即当清扫模式为深度清洁模式 或清扫区域污渍类型为重度…

【Mini-F5265-OB开发板试用测评】RT-Thread的移植(调通串口+LED)

前言 近期,笔者有幸获得灵动微MM32F5265开发板的体验资格。MM32F5260搭载了arm china "Star-MC1 内核"处理器,拥有高性能,主打家电和工业等高可靠性应用领域。 总结一下,有以下亮点: 本土团队打造&#x…

MySQL8.4组复制

https://dev.mysql.com/doc/refman/8.4/en/group-replication.html 1 什么是组复制 组复制主要解决了传统异步复制主机宕机时可能造成主从节点数据不一致问题MySQL Group Replication,简称MGR将原有的gtid复制功能进行可增强,支持单主模式和多主模式组复…

【笔记】Trae+Andrioid Studio+Kotlin开发安卓WebView应用

文章目录 简介依赖步骤AS(Andriod Studio)创建项目AS创建虚拟机TRAE CN 修改项目新增按键捕获功能 新增WebViewWebView加载本地资源在按键回调中向WebView注入JS代码 最终关键代码吐槽 简介 使用Trae配合Andriod Studio开发一个内嵌WebView的安卓应用, 在WebView中加载本地资源…

kibana解析Excel文件,生成mapping es导入Excel

一、Excel转为CSV格式 在线免费网站:EXCEL转CSV - 免费在线将EXCEL文件转换成CSV (cdkm.com) 二、登录kibana 点击左边菜单栏找到Machine Learning, 进入后上面菜单选择Data Visualizer,然后上穿转好的csv格式的Excel 点击导入输入建立的m…

4d毫米波雷达开源算法4DRadarSLAM运行

1.开源代码和论文 (1)论文名称: 4DRadarSLAM: A 4D Imaging Radar SLAM System for Large-scale Environments based on Pose Graph Optimization (2)开源代码国内下载地址 https://gitcode.com/gh_mirrors/4d/4DRada…