【DL】RNN|序列数据|Hidden State

一、这一课要解决什么问题?

神经网络如何处理有顺序的数据,并利用前面已经出现的信息?比如说我 喜欢 学习 人工智能,或者一个句子,它都有一个特点,它们是有顺序的。我们今天就需要尝试解决这个问题。

二、为什么需要 RNN?

因为普通的前馈神经网络会把每次输入当成相互独立的数据,无法自然地保存"之前发生了什么";而文本、语音、时间序列等数据具有前后依赖关系,因此我们需要 RNN,通过 Hidden State 把过去的信息传递到当前时刻。简单来说RNN = 给神经网络增加"历史状态"

三、什么叫"序列数据"?

序列数据就是数据的顺序具有意义,改变顺序后,数据表达的含义可能发生变化。比如说I like vscode 变成 vscode like I。显然是不行的。数据+顺序=信息

常见的序列数据

复制代码
文本
语音
音乐
股票价格
传感器数据
用户行为
时间序列

四、普通神经网络为什么不能很好地处理序列?

因为普通前馈神经网络的每次输入之间没有状态传递机制。处理完一个输入后,它不会自动把这个输入的信息传递给下一次输入。

五、RNN 怎么解决?

RNN 会维护一个 Hidden State,并把上一时刻的 Hidden State 传递给下一时刻。

RNN:

复制代码
x₁ → RNN → h₁
           ↓(普通的没有)
x₂ → RNN → h₂
           ↓(普通的没有)
x₃ → RNN → h₃

什么是 Hidden State?

Hidden State 是 RNN 在当前时刻保存的内部状态,它携带了一部分过去输入的信息,并会参与下一时刻的计算

RNN 最核心的公式

  • xt 当前时刻的输入
  • ht−1 之前记住的信息(上一时刻的 Hidden State)
  • Wx 当前输入应该产生多大的影响(权重)
  • Wh 过去的信息应该产生多大的影响(Hidden State 对应的权重)
  • b 和普通神经网络里的 Bias 一样 (偏置)
  • tanh 对计算结果进行非线性变换,并把结果压缩到 −1,1(激活函数)

新的记忆 = 当前输入的信息 + 过去记忆的信息,然后经过非线性变换。

十三、为什么说 RNN "有记忆"?

因为上一时刻的 Hidden State 会作为下一时刻的输入之一,因此之前的信息可以通过 Hidden State 继续参与后续计算。

虽然说它是有记忆的,但是它能够记住无限长的历史吗?答案是不行的,普通 RNN 在处理很长的序列时容易出现梯度消失和梯度爆炸,因此很难学习长期依赖。

Long-Term Dependency就是两个信息相差很远的意思

七、RNN 的整个训练过程

从根源来说RNN到底还是

复制代码
Forward
 ↓
Loss
 ↓
Backward
 ↓
Gradient
 ↓
Optimizer
 ↓
参数更新

eg:

复制代码
x₁ → RNN → h₁
          ↓
x₂ → RNN → h₂
          ↓
x₃ → RNN → h₃
          ↓
x₄ → RNN → h₄
          ↓
        Output
          ↓
         Loss
          ↓
          h₄
		  ↓
          h₃
          ↓
		  h₂
	      ↓
	      h₁

这个叫做Backpropagation Through Time,所有时间步共享同一套参数,看起来不同的RNN,实际上只是同一个 RNN 在不同时间点重复使用。

CNN 和 RNN的区别

RNN 优点:

  • 能够处理序列
  • 能够利用历史信息
  • 参数共享
    缺点:
  • 长期依赖困难
  • 无法很好记住很久以前的信息
  • 计算难以完全并行,存在顺序依赖(这也是后来 Transformer 能够大幅改变 NLP 的重要原因之一)
CNN RNN
主要处理 空间数据 序列数据
典型数据 图片 文本、时间序列
关注关系 空间局部关系 时间/顺序关系
核心机制 卷积 Hidden State
参数共享 空间位置共享 时间步共享

CNN 核心流程

相关推荐
桃西西呀17 分钟前
「百年一遇」的台风,为什么我这辈子就遇了好几回?概率论把这笔账算给你看
人工智能·python·数据可视化
weixin_5316708925 分钟前
Interlude起来:动作动画和文字通知哪个更适合休息提醒?Mac上有没有用桌宠做动作引导的软件?
人工智能·macos·mac·swift
A hao26 分钟前
户外LED广告牌需要什么防护等级IP级别?
大数据·网络·图像处理·人工智能·网络协议·tcp/ip·广告
l12586530 分钟前
# LangGraph 核心架构入门:State、Node、Edge 与 Reducer 的工程理解
大数据·人工智能·python·架构·langchain·edge
redfred30 分钟前
Upscayl 使用教程:开源 AI 图片放大器 模糊图片变清晰 2x/4x 放大 本地处理 免费
人工智能·开源
一切皆是因缘际会32 分钟前
人工智能底层架构缺陷
人工智能·架构
木圭的AI时代指南33 分钟前
我的8G显存电脑实测本地部署qwen3.8-27B记录
人工智能·ai·语言模型·电脑
Ai-_Man34 分钟前
我是想导出豆包智能体的聊天记录,能分开用户和智能体对话吗?记录有点太多了
人工智能·ai·小程序
Web3&Basketball42 分钟前
从0到1落地Claude Playwright浏览器自动化Agent:踩坑全记录
深度学习·大模型·ai技术