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

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

目录

  • 🧠 什么是循环神经网络(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、循环神经网络

相关文章:

  • 【LeetCode 热题 100】最小路径和 / 最长回文子串 / 最长公共子序列 / 编辑距离
  • TMS320F28388D使用sysconfig配置IPC
  • GJOI 5.27 题解
  • IPTV电视直播 1.6.0 | 手机电视直播 秒播无卡顿
  • 降低实验检测报告编制耗时 质检LIMS系统的应用策略
  • 结构体对齐和结构体相关宏
  • 零基础开始的网工之路第十六天------Linux安全管理
  • HTML实战:爱心图的实现
  • 如何用命令行将 PDF 表格转换为 HTML 表格
  • wsl2 docker重启后没了
  • 国芯思辰| 霍尔电流传感器AH811为蓄电池负载检测系统安全护航
  • 前端开源JavaScrip库
  • 界面开发框架DevExpress XAF实践:集成.NET Aspire后如何实现自定义遥测?
  • 如何使用.Net Reactor 批量加密 DLL
  • Axure RP11安装、激活、汉化
  • springcloud openfeign 请求报错 java.net.UnknownHostException:
  • Axure项目实战:驾驶舱(数据一张图)制作教程
  • 同为.net/C#的跨平台运行时的mono和.net Core有什么区别?
  • 2025年- H56-Lc164--200.岛屿数量(图论,深搜)--Java版
  • 深入了解 C# 异步编程库 AsyncEx
  • jsp网站开发的环境配置/如何推广微信公众号
  • 广西网站设计运营公司/如何在百度发布文章
  • 网站做一样没有侵权吧/发布项目信息的平台
  • 建一个所在区域网站需要多少资金/广告联盟平台挂机赚钱
  • 盘锦做网站谁家好/推广文案
  • wordpress 商城插件/seo技术学院