循环神经网络 RNN
本文最后更新于63 天前,其中的信息可能已经过时,如有错误请留言

循环神经网络(Recurrent Neural Network,RNN) 是一种专门处理序列数据(如文本、语音、时间序列)的神经网络。

  • 与传统的前馈神经网络不同,RNN 具有”记忆”能力,能够保存之前步骤的信息。
  • 循环神经网络能够利用前一步的隐藏状态(Hidden State)来影响当前步骤的输出,从而捕捉序列中的时序依赖关系。

RNN 的核心思想

RNN 的核心在于循环连接(Recurrent Connection),即网络的输出不仅取决于当前输入,还取决于之前所有时间步的输入。这种结构使 RNN 能够处理任意长度的序列数据。

传统神经网络:输入和输出是独立的(例如图像分类,单张图片之间无关联)。

RNN:通过循环连接(Recurrent Connection)将上一步的隐藏状态传递到下一步,形成”记忆”。

  • 每一步的输入 = 当前数据 + 上一步的隐藏状态。
  • 输出不仅依赖当前输入,还依赖之前所有步骤的上下文。

就像人阅读句子时,理解当前单词会依赖前面读过的内容(例如”他打开了__”,你会预测”门”或”书”)。

RNN 的工作机制

RNN 在每个时间步 t 执行以下计算:

  1. 接收当前输入 xₜ 和前一时刻的隐藏状态 hₜ₋₁
  2. 计算新的隐藏状态 hₜ = f(Wₕₕ·hₜ₋₁ + Wₓₕ·xₜ + b)
  3. 产生输出 yₜ = g(Wₕᵧ·hₜ + c)

其中 f 和 g 通常是激活函数(如 tanh 或 softmax)。
Wₓₕ 输入 → 隐藏状态 的权重矩阵 Wₕₕ 隐藏状态 → 隐藏状态 的权重矩阵 Wₕᵧ隐藏状态 → 输出 的权重矩阵

RNN 的优缺点

优点

  • 能够处理变长序列
  • 理论上可以记住任意长度的历史信息
  • 参数共享(同一组权重用于所有时间步)

缺点

  • 梯度消失/爆炸问题(难以学习长期依赖)
  • 计算效率较低(无法并行处理时间步)

学习笔记如有侵权,请提醒我,我会马上删除
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇