深度学习基础--GRU学习笔记(李沐《动手学习深度学习》)

前言

门控循环单元 (GRU)是一种循环神经网络 (RNN)的变体,我为了解决RNN在处理长时间序列数据的时候容易出现的梯度消失和梯度爆炸的问题,

回忆RNN

先看回忆RNN的神经网络结构:

可以看到,RNN每一次更新隐藏层的时候,权重W都是一样的 ,也就是说每一次更新隐藏层的时候,都是使用一样的权重,也就说看待之前的状态重要程度都是一样的

举个例子:

这个例子中,每一个观察的值都不是同等重要,也就是说这个时候再用RNN模型就不太合适了,为了解决这种问题,RNN模型提供了许多升级的版本,其中著名的有:GRU、LSTM,而LSTM是在GRU的升级版,故本篇学习也是为了学习LSTM打基础。

GRU模型结构组成

更新门

表示:Zt ,它决定了需要从 前一个时刻的隐藏状态ht-1和当前输入数据xt中要保留 多少信息来更新当前的有隐藏状态ht,计算公式如下:

其中,激活函数作用:将输出映射到0和1之间。

具体更新实现,在当前隐藏状态中实现。

重置门

表示:Rt,它控制者是否要"重置"前一时刻隐藏层的 状态,可以类比记忆中的"遗忘",我们不可能记住前一天的所有事情,计算公式如下:

具体实现在候选隐藏状态中。

这个时候GRU神经网络可以表示,如下图所示

候选隐藏状态

这个门,实现的功能:决定吸取多少之前的隐藏状态信息和当前输入的数据,计算公式和网络结构如下如下:

当**Rt**为0的时候,就不要之前的隐藏信息的状态,**Wxh**决定着吸取当前输入数据的多少。

当前隐藏状态

当前隐藏转态:Ht,它决定输出的大小,融合前一层的隐藏状态和候选的隐藏状态,,如图:

这里有两个极端:

  • 当Zt为0的时候,说明对上一层的隐藏状态选择遗忘 ,这个时候就等于重置门"吸收"多少当前输入与前一层隐藏状态的结合体了 🤠;
  • 当Zt为1的时候,说明完全保留上一层的隐藏状态,这个其实就是RNN模型的隐藏状态更新。

工作原理

在每个时间步t:

  • 首先计算更新门Zt和重置门Rt,这两个门的值决定了如何利用前一时刻的隐藏状态Ht−1和当前时刻的输入 Xt
  • 然后根据重置门Rt计算候选隐藏状态 Ht ,它是在对前一时刻隐藏状态进行了一定程度的 "重置" 后,结合当前时刻输入得到的。
  • 最后通过更新门Zt将前一时刻隐藏状态 Ht−1 和候选隐藏状态 H~t 进行融合,得到当前时刻的隐藏状态Ht。这个过程不断重复,使得 GRU 能够沿着时间序列处理数据,逐步更新隐藏状态并捕捉序列中的信息。

举个例子:

如何我们从左往右看,RNN的缺点的每一次更新隐藏层权重一样,如果我们看这个例子,如果看到一只老鼠,这个时候,老鼠的权重肯定要高于其他,尤其是后面的 ,这个时候GRU的候选隐藏层代表了这个老师前面需要吸收状态,而当前隐藏状态说明了这个后下一个猫需要吸收多少状态

当然神经网络很深奥,好需要不断在实践学习。

相关推荐
Mr数据杨2 小时前
【Dv3Admin】插件 dv3admin_chatgpt 集成大语言模型智能模块
人工智能·语言模型·chatgpt
zm-v-159304339862 小时前
AI 赋能 Copula 建模:大语言模型驱动的相关性分析革新
人工智能·语言模型·自然语言处理
向上的车轮3 小时前
MATLAB学习笔记(七):MATLAB建模城市的雨季防洪排污的问题
笔记·学习·matlab
phoenix@Capricornus3 小时前
反向传播算法——矩阵形式递推公式——ReLU传递函数
算法·机器学习·矩阵
zhz52144 小时前
AI数字人融合VR全景:从技术突破到可信场景落地
人工智能·vr·ai编程·ai数字人·ai agent·智能体
数据与人工智能律师4 小时前
虚拟主播肖像权保护,数字时代的法律博弈
大数据·网络·人工智能·算法·区块链
田梓燊4 小时前
数学复习笔记 19
笔记·线性代数·机器学习
武科大许志伟4 小时前
武汉科技大学人工智能与演化计算实验室许志伟课题组参加2025中国膜计算论坛
人工智能·科技
哲讯智能科技4 小时前
【无标题】威灏光电&哲讯科技MES项目启动会圆满举行
人工智能
__Benco4 小时前
OpenHarmony平台驱动开发(十七),UART
人工智能·驱动开发·harmonyos