深度学习基础--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的候选隐藏层代表了这个老师前面需要吸收状态,而当前隐藏状态说明了这个后下一个猫需要吸收多少状态

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

相关推荐
ting94520002 小时前
Micro1 超详细深度解析:架构原理、部署实战、性能评测与落地应用全指南
人工智能·架构
冰西瓜6002 小时前
深度学习的数学原理(三十三)—— Transformer编码器完整实现
人工智能·深度学习·transformer
科研前沿2 小时前
镜像孪生VS视频孪生核心技术产品核心优势
大数据·人工智能·算法·重构·空间计算
DreamBoy@2 小时前
Mnemra:一键剪藏,让灵感真正可复用(一键从Ai对话页面到飞书云文档,浏览器插件方便好用)
人工智能
北山有鸟2 小时前
修改源码法和插件法
嵌入式硬件·学习
richxu202510012 小时前
嵌入式学习之路->stm32篇->(14)通用定时器(上)
stm32·单片机·嵌入式硬件·学习
小陈phd2 小时前
TensorRT 入门完全指南(一)——从核心定义到生态工具全解析
人工智能·笔记
qeen873 小时前
【数据结构】建堆的时间复杂度讨论与TOP-K问题
c语言·数据结构·c++·学习·
CeshirenTester3 小时前
从0到1学自动化测试该怎么规划?
人工智能
:mnong3 小时前
以知识驱动 AIAD 行业进化
人工智能·cad