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

相关推荐
土木AI提效大古18 小时前
Vercel + Spaceship 全自动部署:8 分钟上线一个站,附 3 个坑的排查记录
人工智能
小蒋观天下18 小时前
网络抖动、乱序、丢包:UDP/RTSP/TCP对AI抓拍、轨迹跟踪的不同影响
大数据·人工智能·深度学习
移动开发者实验室18 小时前
被 App Store 截图折腾了几次后,我开源了一个 AI 截图生成工具
人工智能·开源
一只爱撸猫的程序猿18 小时前
全球出货第二,却不在 AI 的默认推荐里:一份悖论解剖报告
人工智能·python·产品
高洁0118 小时前
大模型检索增强生成(RAG)的技术原理与架构设计
人工智能·深度学习·机器学习·django·迁移学习
数聚天成DeepSData18 小时前
两份名录里的同名机构,主键该怎么合并
人工智能·深度学习·机器学习·数据集·deepsdata
海宇数据18 小时前
零信任架构实战:基于海宇双人婚姻评估查询构建自动化配偶签约一致性审查网关
人工智能·ai·工具分享
悟天特斯18 小时前
安防一体化:从“各管各的“到“全局联动“
java·大数据·网络·人工智能·物联网
l1t19 小时前
DeepSeek总结的AI 智能体应该用哪种语言搜索其记忆:SQL 还是 SPARQL?
数据库·人工智能·sql
霸道流氓气质19 小时前
AI 翻译插件:翻译记忆级联复用、术语混合检索与结构化质量门禁的 Vue3 + Spring AI 生产级实战
java·人工智能·spring