【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 核心流程

相关推荐
tedcloud1231 分钟前
emilkowalski/skills:让 AI 写出来的网页更有“设计感”
服务器·人工智能·开源·音视频·ai编程
卷无止境3 分钟前
Jev来了,一个不会说话的AI模型正在改写自动化的规则
人工智能·后端
爱上纯净的蓝天6 分钟前
自包含推理一体机四层架构拆解:128G 统一内存、256K 上下文与实测口径
人工智能·大模型·私有化部署·agent·大模型部署
一心同学7 分钟前
Hermes架构拆解之Agent Loop
人工智能·agent·loop·hermes
DevNo8 分钟前
我用AI工具辅助看盘的三段记录
人工智能
IT_陈寒8 分钟前
React的useEffect依赖项居然骗了我三年
前端·人工智能·后端
HRaitest10 分钟前
【架构拆解】从“外挂插件”到“原生基座”:2026 新一代全链路 AI 招聘系统底层技术演进
人工智能·ai·求职招聘
小尹哥-程序员13 分钟前
第4集:让AI学会看文档:Spring AI RAG入门实战
java·人工智能·spring
“AI国潮设计-小江”15 分钟前
【SDXL实战】Python自动化生成3D潮汕美食IP,附ComfyUI工作流与商用变现思路
开发语言·人工智能·python·prompt·aigc
墨染天姬19 分钟前
[AI]BERT 详解:从起源到实战
人工智能