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

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

相关推荐
坤坤子吖2 分钟前
Python基础语法学习:函数
开发语言·笔记·python·学习
wflynn3 分钟前
语言判别增强多语言语音模型的语言学习能力
人工智能·ai
neocheng_5224 分钟前
自学、培训、项目还是认证?HR 学习 AI 的四种路径如何组合
人工智能
2501_933670797 分钟前
2027风控策略岗秋招准备:SQL、Excel、建模的优先级与项目路径
人工智能·sql·excel
小宋102115 分钟前
AI 生成内容如何证明来源:C2PA、Content Credentials 与签名校验
人工智能
zhousenshan17 分钟前
AgentScope 和 Spring AI Alibaba的区别
人工智能
奈落2417 分钟前
【RAG 深度修炼】专栏 · 第 9 期(收官):安全专题与生产 Checklist 总集——从能跑的 Demo 到睡得着觉的生产系统
大数据·网络·人工智能·安全·ai编程
超大青花鱼17 分钟前
Ubuntu20.04安装CUDA11.8教程
人工智能·深度学习·计算机视觉
HugoStudio_SWAN20 分钟前
洛谷 B4575 [GESP202609 二级] 直角三角形——临场定义理解与边界质疑
c++·学习·程序人生·算法
golang学习记26 分钟前
Jetbrains 正式官宣:全新AI IDE正式发布!
ide·人工智能·intellij-idea·air