news 2026/6/10 0:15:18

学习笔记:循环神经网络(RNN)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
学习笔记:循环神经网络(RNN)

引入

FNN的特点:假定数据是相互独立的,当数据存在前后依赖关系时(即序列数据)模型的效果不好。在处理时间序列敏感的问题和任务时效果不好。

举一个小例子:

我喜欢吃苹果! 苹果真是一家很棒的公司!

问题:问题:哪个“苹果”指的是水果,哪个指的是公司?

在深度学习领域,FNN具有出色的表现,取得了许多成功。但是它每次处理数据都是独立的,无法处理前后具有关系的数据。这个问题在处理一些自然文本上比较致命。举一个关于苹果 的例子: 在这两个句子中,“苹果”都需要依靠前后文才能知道具体指代的意思。这就需要我们结合上下文去训练模型。

循环神经网络(RNN)

循环神经网络(RNN)是一种专门用于处理序列数据的人工神经网络,其通过在网络结构中引入循环连接,使当前时刻的隐藏状态不仅依赖于当前输入,还依赖于前一时刻的隐藏状态,从而能够建模序列中的时序依赖关系。

RNN的核心思想是网络的隐藏状态(hidden state)可以在时间上传递,这样网络就能够记住之前的信息。 简单来说,前馈神经网络的隐藏层状态仅由输入决定。循环神经网络的隐藏层状态由此刻的输出和上一刻的隐藏层状态同时决定。

RNN流程:

问题提出:传统单层网络的局限性

  • 单层网络的基本流程:输入 x → 线性变换 Wx+b → 激活函数 f → 输出 y。
  • 短板:这种结构只能处理独立的单个输入,无法处理多序列形数据(比如文本、时间序列等存在前后关联的数据)。

核心改进:引入隐状态 h 捕捉序列关联

  • 为解决序列问题,RNN 新增了隐状态(hidden state)h,这是 RNN 的核心。
  • 隐状态的计算逻辑:当前时刻的隐状态 ht​ 由 上一时刻的隐状态 ht−1​ 和 当前时刻的输入 xt​ 共同决定(对应内容里的 h1​ 由 h0​ 和 x1​ 计算而来),计算公式可参考对应的 PPT 左下角。

计算流程:时序迭代计算 + 输出生成

  • 隐状态迭代计算:从序列的第一个输入开始,依次计算每个时刻的隐状态。
    • 关键特点:所有时刻使用的参数 、、 完全相同,这是 RNN 的 “参数共享” 特性,也是它能处理任意长度序列的关键。
    • 序列长度:示例中仅展示了序列长度为 4 的情况,实际计算过程可以无限持续,适配任意长度的序列数据。
  • 输出生成:每个时刻的输出 yt​ 直接通过当前时刻的隐状态 ht​ 计算得到(对应内容里的最上面式子)。
    • 关键特点:生成所有输出时,使用的参数 、 也完全相同,和隐状态的参数共享逻辑一致。

经典 RNN 的局限性

  • 这段内容也点明了一个关键约束:输入序列和输出序列必须等长,这也是后续 LSTM、GRU 以及 Seq2Seq 模型需要解决的问题之一。

把刚刚的图简化一下,就是常见的RNN的网络样子啦!

RNN存在的问题

RNN 会受到短时记忆的影响。如果输入过长,就会产生“遗忘”

LSTM

长短期记忆网络(Long Short-Term Memory, LSTM)是一种特殊的RNN结构,旨在解决传统RNN在长序列建模中容易出现的梯度消失与梯度爆炸问题。

具体而言,LTSM引入了额外的记忆(memory)参数,来更好地保存长距离的序列依赖关系。 同时引入遗忘门、输入门、和输出门,能够有选择性地控制信息的流动。

RNN VS LSTM:

普通RNN:重复单一的神经网络层

LSTM:

  • LSTM 包含4个层,并以一种特殊的方式进行交互
  • 记忆状态C是贯穿整个网络的核心信息通道,它像一条“传送带”,用来储存长期依赖的信息。

遗忘门

遗忘门负责“丢弃”信息,读取上一个输出h_t−1和当前输入x_t,做一个Sigmoid 的非线性映射,然后输出一个向量f_t),最后与细胞状态C_t−1相乘。

输入门

确定什么样的新信息被存放在细胞状态中,输入门的根据上一时刻输入状态ht-1和这一时刻输入xt ,生成一个由0-1之间的数组成的向量,判断候选输入信息中哪些要存入长期状态ct。

记忆状态

ct-1更新为ct。

输出门

决定当前时刻隐藏状态输出多少信息。输出门的根据上一时刻输入状态ht-1和这一时刻输入xt ,生成一个由0-1之间的数组成的向量,判断长期状态ct中哪些信息要用于输出。

LSTM的变体:Peephole LSTM

  • 在计算门控时,直接“窥视”记忆单元C_t
  • 门的开闭不仅依赖h_t−1和x_t,还依赖于C_t−1

优势:对需要精确计时或长期依赖的任务(如时间序列预测)更有效。

LSTM的变体:GRU

  • 将 LSTM 的输入门和遗忘门合并为更新门(update gate)
  • 隐藏状态和记忆状态合并为一个统一状态
  • 结构比 LSTM 简单,参数更少

优势:训练速度快,在很多自然语言处理任务上效果接近或略优于 LSTM

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/8 13:01:18

LarkMidTable:中小企业数据中台建设的破局之道

LarkMidTable:中小企业数据中台建设的破局之道 【免费下载链接】LarkMidTable LarkMidTable 是一站式开源的数据中台,实现中台的 基础建设,数据治理,数据开发,监控告警,数据服务,数据的可视化&a…

作者头像 李华
网站建设 2026/6/9 18:32:07

Cirq补全功能突然失效?:立即排查这4类高频错误场景

第一章:Cirq代码补全失效问题的背景与影响 在量子计算开发环境中,Cirq 作为 Google 推出的开源框架,被广泛用于构建和模拟量子电路。开发者依赖集成开发环境(IDE)中的代码补全功能提升编写效率,然而近期多个…

作者头像 李华
网站建设 2026/6/9 23:41:02

NarratoAI:开启AI视频解说创作新时代

NarratoAI:开启AI视频解说创作新时代 【免费下载链接】NarratoAI 利用AI大模型,一键解说并剪辑视频; Using AI models to automatically provide commentary and edit videos with a single click. 项目地址: https://gitcode.com/gh_mirro…

作者头像 李华
网站建设 2026/6/7 20:00:13

QT打包Release后,点击exe文件报错dll缺失

这是 Qt 程序发布的常见问题。你的电脑有 Qt 环境,DLL 在系统路径中;同事电脑没有,所以找不到。 解决方案:使用 windeployqt 打包 方法一:命令行打包(推荐) 步骤1:打开 Qt 命令行…

作者头像 李华
网站建设 2026/6/5 14:23:31

阅读APP书源配置终极指南:免费获取海量小说资源

阅读APP书源配置终极指南:免费获取海量小说资源 【免费下载链接】Yuedu 📚「阅读」APP 精品书源(网络小说) 项目地址: https://gitcode.com/gh_mirrors/yu/Yuedu 想要在阅读APP中畅享海量小说资源?书源配置是关…

作者头像 李华
网站建设 2026/6/4 20:29:16

OCLP-Mod魔法解密:3步让老旧Mac完美运行最新macOS系统

OCLP-Mod魔法解密:3步让老旧Mac完美运行最新macOS系统 【免费下载链接】OCLP-Mod A mod version for OCLP,with more interesting features. 项目地址: https://gitcode.com/gh_mirrors/oc/OCLP-Mod 还记得那个陪伴你多年的Mac吗?它曾经流畅运行&…

作者头像 李华