news 2026/4/16 14:20:27

学习笔记:循环神经网络(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/4/16 9:00:47

5分钟终极修复!Upscayl批量放大功能失效的快速解决方案

5分钟终极修复!Upscayl批量放大功能失效的快速解决方案 【免费下载链接】upscayl 🆙 Upscayl - Free and Open Source AI Image Upscaler for Linux, MacOS and Windows built with Linux-First philosophy. 项目地址: https://gitcode.com/GitHub_Tre…

作者头像 李华
网站建设 2026/4/16 9:09:21

【MCP续证Agent开发通关指南】:揭秘2024年最新考核标准与避坑策略

第一章:MCP续证Agent开发考核标准概述在MCP(Microsoft Certified Professional)续证过程中,Agent开发能力的考核成为评估开发者技术实践水平的重要组成部分。该考核聚焦于自动化代理程序的设计、实现与集成能力,要求开…

作者头像 李华
网站建设 2026/4/16 10:38:40

GitHub 热榜项目 - 日榜(2025-12-17)

GitHub 热榜项目 - 日榜(2025-12-17) 生成于:2025-12-17 统计摘要 共发现热门项目: 13 个 榜单类型:日榜 本期热点趋势总结 本期GitHub热榜显示AI应用开发和自动化工具成为绝对核心。爆火的AI智能体工作流平台sim、代码记忆增强插件clau…

作者头像 李华
网站建设 2026/4/16 11:07:43

从零搭建量子电路可视化环境,你只需要这8个关键插件

第一章:量子电路 VSCode 可视化的渲染在现代量子计算开发中,可视化是理解与调试量子电路的关键环节。借助 Visual Studio Code(VSCode)及其扩展生态,开发者可以实现对量子电路的高效渲染与交互式查看。通过集成如 Q#、…

作者头像 李华
网站建设 2026/4/16 11:00:06

终极Mac系统监控方案:MenuMeters让性能数据一目了然

终极Mac系统监控方案:MenuMeters让性能数据一目了然 【免费下载链接】MenuMeters my fork of MenuMeters by http://www.ragingmenace.com/software/menumeters/ 项目地址: https://gitcode.com/gh_mirrors/me/MenuMeters 在Mac日常使用中,你是否…

作者头像 李华