GRU门控循环单元【数学+图解】

news2024/11/16 15:32:22

文章目录

  • 1、简介
  • 2、门控机制
  • 3、公式
  • 4、图解GRU
    • 4.1、重置门和更新门
    • 4.2、候选隐藏状态和隐藏状态⭐
  • 5、LSTM与GRU的对比
  • 6、应用
  • 7、训练技巧

🍃作者介绍:双非本科大三网络工程专业在读,阿里云专家博主,专注于Java领域学习,擅长web应用开发、数据结构和算法,初步涉猎人工智能和前端开发。
🦅个人主页:@逐梦苍穹
📕所属专栏:人工智能
🌻gitee地址:xzl的人工智能代码仓库
✈ 您的一键三连,是我创作的最大动力🌹

1、简介

GRU:Gated Recurrent Unit

可以先复习一下之前的内容:

循环神经网络RNN:https://xzl-tech.blog.csdn.net/article/details/140940642
LSTM:https://xzl-tech.blog.csdn.net/article/details/140940759

概念:
GRU是另一种RNN变体,它简化了LSTM的结构,减少了计算复杂度,同时保持了处理长时依赖的能力。
结构:
image.png
GRU将LSTM的输入门和遗忘门合并为一个 更新门(Update Gate),并用一个 重置门(Reset Gate) 来决定隐藏状态如何结合新输入。

2、门控机制

  1. 门控机制的基本思想是使用“门”来控制信息在网络中的流动。
  2. 每个门都是通过神经网络层计算出来的权重向量,其值通常在 0到1之间
  3. 不同的门在不同 时间步 上控制信息的选择、遗忘和更新。
  4. 这些门是通过可学习的参数在训练过程中自动调整的。

3、公式

GRU在每个时间步的更新过程可以用以下公式描述:

  1. 更新门 z t = σ ( W z ⋅ [ h t − 1 , x t ] + b z ) z_t = \sigma(W_z \cdot [h_{t-1}, x_t]+b_z) zt=σ(Wz[ht1,xt]+bz)
    • z t z_t zt 表示更新门的输出。
  2. 重置门 r t = σ ( W r ⋅ [ h t − 1 , x t ] + b r ) r_t = \sigma(W_r \cdot [h_{t-1}, x_t]+b_r) rt=σ(Wr[ht1,xt]+br)
    • r t r_t rt 表示重置门的输出。
  3. 候选隐藏状态 h ~ t = tanh ⁡ ( W h ⋅ [ r t ∗ h t − 1 , x t ] ) \tilde{h}_t = \tanh(W_h \cdot [r_t \ast h_{t-1}, x_t]) h~t=tanh(Wh[rtht1,xt])
    • h ~ t \tilde{h}_t h~t 表示候选的隐藏状态。
  4. 隐藏状态更新 h t = ( 1 − z t ) ∗ h t − 1 + z t ∗ h ~ t h_t = (1 - z_t) \ast h_{t-1} + z_t \ast \tilde{h}_t ht=(1zt)ht1+zth~t
    • h t h_t ht 是当前时间步的隐藏状态。

回顾一下 tanh函数 f ( x ) = 1 − e − 2 x 1 + e − 2 x f(x) = \frac{1 - e^{-2x}}{1 + e^{-2x}} f(x)=1+e2x1e2x

4、图解GRU

4.1、重置门和更新门

GRU实际上影藏了记忆链条 h t h_t ht
image.png
重置门的作用跟之前的遗忘门类似,都是充当橡皮擦的作用:
image.png
更新门则是筛选新的记忆:
image.png

4.2、候选隐藏状态和隐藏状态⭐

候选隐藏状态则是在前一时刻隐藏状态之上,擦除了一定记忆之后,融合进当前的输入 x t x_t xt,然后经过tanh函数临时记录下来:
image.png
更新门在当前的候选隐状态 h ~ t \tilde{h}_t h~t和前一时刻的候选隐状态 h ~ t − 1 \tilde{h}_{t-1} h~t1之间取舍,组合之后输出当前的隐藏状态 h t h_t ht,然后网络进行更新,即融入了原有的"记忆"中,相当于阅后即焚:
image.png
经过这样不断的模块迭代,就是一直在短期记忆和长期记忆之间融合更新,而且存储的信息不需要像LSTM那么多,更加简单高效:
image.png

5、LSTM与GRU的对比

  1. 复杂性
    • LSTM更复杂,参数更多。
    • GRU较为简洁,参数更少,训练速度更快。
  2. 性能
    • 两者在处理长时依赖性任务时表现都很优异,具体选择往往取决于数据集和计算资源。
    • 在一些特定任务和数据集上,GRU可能比LSTM表现更好,尤其是在计算资源有限的情况下。
  3. 使用场景
    • 对于需要更强的长期记忆和复杂信息流动的任务,LSTM可能更合适。
    • 对于实时性要求较高或者模型简单性要求较高的任务,GRU可能更具优势。

LSTM和GRU是两种非常成功的RNN变体,通过改进信息传递机制,有效解决了传统RNN在处理长序列数据时的局限性。
它们在自然语言处理、语音识别和时间序列预测等领域得到广泛应用。

6、应用

RNN及其变体广泛应用于以下领域:

  • 自然语言处理:如语言模型、机器翻译和文本生成。
  • 语音识别:将音频序列转换为文本。
  • 时间序列预测:如股票价格预测和天气预报。
  • 视频分析:从视频帧中提取时间信息。

7、训练技巧

  • 梯度裁剪:限制梯度的大小以防止梯度爆炸。
  • 正则化:使用Dropout等技术防止过拟合。
  • 预训练和转移学习:利用大规模预训练模型微调特定任务。

RNN模型在序列数据处理中具有强大的表现力和适应能力,但也面临一些挑战。通过使用LSTM、GRU等改进模型,结合适当的训练技巧,能够有效地应用于各种实际问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1984055.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MATLAB车道线检测系统

研究了汽车辅助驾驶系统中的计算机视觉问题 . 一方面 , 用小波变换对高速公路上的道路边缘进行检测 ; 另一方面 , 利用灰度以及几何特征实时跟踪和检测车道边缘 , 通过建立道路边缘模型 , 采用数据拟合的方法确定边界轨迹方程 , 从而估算出公路的延伸方向 , 实现汽车的自动防偏…

信号链直流误差

1 简介 在信号链中,可能会累积的误差有两类:直流和交流误差。直流或静态误差(如增益和失调误差)有助于了解信号链的精度或灵敏度。交流类误差也称为噪声和失真,限制着系统的性能和动态范围。这两类误差都需要了解&…

js中的ajax【Axios,XMLHttpRequest,Promise,async】回调函数地狱等问题

目录 前置知识 1.什么是异步请求? 2.什么是回调函数 3.如何查看网页的异步请求(XHR)? 4.什么是ajax jquery的ajax,xhr,axios关系 正文---几种请求之间的关系 axios Axios的诞生 Axios的介绍 定义…

同城交易小程序的设计

管理员账户功能包括:系统首页,个人中心,商家管理,用户管理,商品分类管理,商品信息管理,订单管理,系统管理 微信端账号功能包括:系统首页,商品信息&#xff0…

2024年“华数杯”数学建模竞赛C题完整解析 | 代码与论文分享

C题 技术文档(论文)数据预处理问题一问题二问题三问题四 数据与代码问题一问题二问题三问题四 技术文档(论文) 29页,1w字,完整论文请看文章最后~ 数据预处理 (1)利用python对数据文件…

【安当产品应用案例100集】005-安当ASP实现Exchange双因素登录认证

Exchange双因素登录通过增加额外的安全验证层,可以有效提高企业邮箱系统的安全性,减少了数据泄露和账号被盗的风险,同时也符合了日益严格的安全合规要求。 其必要性主要体现在以下几个方面: 提高安全性:传统的用户名…

未授权访问漏洞系列详解⑤!

Kubernetes Api Server未授权访问漏洞 Kubernetes 的服务在正常启动后会开启两个端口:Localhost Port(默认8080)Secure Port(默认6443)。这两个端口都是提供 Api Server 服务的,一个可以直接通过Web 访问,另一个可以通过 kubectl 客户端进行调用。如果运…

html+css 实现hover上下边框生长

前言:哈喽,大家好,今天给大家分享htmlcss 绚丽效果!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 文…

平安城市行业无人机解决方案(夜间作业场景应用)

夜间作业场景痛点: 夜间隐蔽作业需要权衡看清楚和隐蔽性 可见光相机夜间无法使用 “五合一”混合夜视传感器-H20N 夜间侦察巡逻 H20N星光级相机提升夜间作业覆盖效率 Zenmuse H20N变焦镜头夜景模式效果 Zenmuse H20N变焦镜头夜景模式效果 Zenmuse H20T变焦镜头夜…

【Android】四大组件(Activity、Service、Broadcast Receiver、Content Provider)、结构目录

文章目录 Android系统架构Android四大组件ActivityServiceBroadcast ReceiverContent Provider 两大视图主要结构目录 Android系统架构 https://blog.csdn.net/xzzteach/article/details/140904613 Android四大组件 Activity 一个 Activity 包含了用户能够看到的界面&#xff0…

判断Windows设备是否为翻新

网购设备难免踩坑,一定要学会查验,及时保存证据并投诉商家。 1、查验包装信息,是否有拆封痕迹 商家翻新处理的第一道工序就是换个完整的包装,一般不会把拆过的包装打包卖给买家,除非声明是二手。 2、查验序列号&#x…

干货-并发编程提高——线程的唤醒(七)

没有参数的wait()方法等价于wait(0),等价于永远等下去。虚假唤醒:一个线程也能在没有被通知,中断,或超时的情况下被唤醒。也即所谓的“虚假唤醒”。解决虚假唤醒的办法就是通过while循环来判断条件。 何为虚假唤醒 简单讲,要避免使…

磷酸铁锂与三元锂:谁会取得压倒性的胜利?

在电动车市场中,磷酸铁锂(LFP)和三元锂(NCM/NCA)电池是两种主要的锂离子电池技术。近年来,关于这两种电池的讨论愈发热烈。本文将深入探讨磷酸铁锂与三元锂的真正区别,以及它们在未来电动车市场…

AI8-文本检测

文本检测任务是找出图像或视频中的文字位置。不同于目标检测任务,目标检测不仅要解决定位问题,还要 解决目标分类问题。 文本在图像中的表现形式可以视为一种‘目标‘,通用的目标检测的方法也适用于文本检测,从任务本身上来 看: • 目标检测:给定图像或者视频,找出目…

什么是SQL注入?基于实例讲解

一、SQL注入的含义: SQL注入是一种常见的网络攻击,由于程序对输入数据的判断或者检验不严格,导致攻击者查询到了授权范围之外的数据,甚至还可以修改数据库中的数据,对数据库执行一些管理操作等,所以它的危…

【Material-UI】Button 中的点击事件处理(Handling clicks)详解

文章目录 一、点击事件处理基础1. 基本用法2. 事件处理器的传递 二、实际应用中的注意事项1. 事件处理逻辑的优化2. 避免过多的状态更新3. 使用合适的事件类型 三、关于文档中未提及的原生属性四、最佳实践1. 无障碍性2. 视觉反馈3. 防止重复点击 五、总结 在现代前端开发中&am…

测试TLP 使用外部 50Ω 电缆和非 50Ω 电缆影响

测试目的 实验有 SMA 母头连接器与没有SMA母头连接器 I/V 曲线的影响实验 50Ω 电缆和非 50Ω 电缆应用条件下的 I/V 曲线研究初始启动和 16A DUT(被测器件)应用条件下的脉冲电压和脉冲电流影响 开始测试前先做短路/开路校正 短路校正 开路校正 TLP取样方式与为框黄色70ns~90…

详解线程池的使用

一、线程池基础 1.1、线程池的思想 我们首先理解什么是池化技术: 池化技术指的是提前准备一些资源,在需要时可以重复使用这些预先准备的资源。 池化技术的优点主要有两个:提前准备和重复利用。 下面是池化技术常见的应用场景: …

SpringBoot+Redis 发布与订阅

两个应用都引入 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artif…

机器学习入门之无监督学习(聚类、降维(主成分分析)、关联度分析(Apriori 算法))

无监督学习是机器学习的一种类型&#xff0c;它处理没有显式标签的数据。与监督学习不同&#xff0c;无监督学习的目标是探索数据的内在结构和模式&#xff0c;而不是从标注数据中学习一个特定的映射到预定标签的函数。这使得无监督学习特别适用于探索性数据分析、找寻隐藏模式…