当前位置: 首页 > news >正文

GRU(门控循环单元)详解

1️⃣ GRU介绍

前面介绍的LSTM可以有效缓解RNN的梯度消失问题,但是其内部结构比较复杂,因此衍生出了更加简化的GRU。GRU把输入门遗忘门整合成一个更新门,并且合并了细胞状态和隐藏状态。于2014年被提出


2️⃣ 原理介绍

GRU的结构和最简单的RNN是一样的。当前输入为 x t x_t xt,上一个节点传递下来的隐层状态为 h t − 1 h_{t-1} ht1,这个隐层状态包含了之前节点的相关信息。根据 x t x_t xt h t − 1 h_{t-1} ht1,GRU会得到当前时间步的输出 y t y_t yt和传递给下一个节点的隐层状态 h t h_t ht,实际上 y t y_t yt就是等于 h t h_t ht
在这里插入图片描述
下面介绍详细的原理,下图展示了GRU的详细结构:
在这里插入图片描述

第一步,计算重置门,它的参数是 W r W_r Wr用于控制之前的记忆需要保留多少。该门的输入是前一个隐层状态 h t − 1 h_{t-1} ht1以及当前时间步的输入 x t x_t xt,输出为 r t r_t rt,在0到1之间,:
r t = σ ( W r ⋅ [ h t − 1 , x t ] ) r_{t}=\sigma\left(W_{r}\cdot[h_{t-1},x_{t}]\right) rt=σ(Wr[ht1,xt])其中, σ \sigma σ表示sigmoid激活函数

第二步,我们来看更新门,它的参数为 W z W_z Wz,它将LSTM中的输入门和遗忘门结合,决定当前时间步应该保留多少以前的记忆,多少新信息应该加入。该门的输入也是前一个隐层状态 h t − 1 h_{t-1} ht1以及当前时间步的输入 x t x_t xt,省略了偏置参数 b b b,输出为 z t ,在 0 到 1 之间, z_t,在0到1之间, zt,在01之间,公式具体表达为:
z t = σ ( W z ⋅ [ h t − 1 , x t ] ) z_{t}=\sigma\left(W_{z}\cdot[h_{t-1},x_{t}]\right) zt=σ(Wz[ht1,xt])其中, σ \sigma σ表示sigmoid激活函数

第三步,计算输入值,输入值由前一个隐层状态 h t − 1 h_{t-1} ht1,当前的 x t x_t xt以及重置门 r t r_t rt得到。 r t ∗ h t − 1 r_{t}*h_{t-1} rtht1可以理解为之前的记忆保留多少来学习新的内容 x t x_t xt h ~ t \tilde{h}_{t} h~t相当于利用之前的记忆对新的内容理解的部分
h ~ t = tanh ⁡ ( W ⋅ [ r t ∗ h t − 1 , x t ] ) \tilde{h}_{t}=\operatorname{tanh}\left(W\cdot[r_{t}*h_{t-1},x_{t}]\right) h~t=tanh(W[rtht1,xt])

第四步,计算当前输出 h t h_t ht,由两部分,一部分是之前信息的影响 h t − 1 h_{t-1} ht1,后一部分是当前输入的影响 h ~ t \tilde{h}_t h~t z t z_{t} zt是更新门的输出,取值在0-1之间。给 h t − 1 h_{t-1} ht1赋予 ( 1 − z t ) (1-z_t) (1zt)权重,给 h ~ t \tilde{h}_t h~t赋予 z t z_{t} zt权重:

h t = ( 1 − z t ) ∗ h t − 1 + z t ∗ h ~ t \begin{aligned}h_t=(1-z_t)*h_{t-1}+z_t*\tilde{h}_t\end{aligned} ht=(1zt)ht1+zth~t

我前面写的这篇文章中介绍了为什么RNN会有梯度消失和爆炸:点这里查看

主要原因是反向传播时,梯度中有这一部分:
∏ j = k + 1 3 ∂ s j ∂ s j − 1 = ∏ j = k + 1 3 t a n h ′ W \prod_{j=k+1}^3\frac{\partial s_j}{\partial s_{j-1}}=\prod_{j=k+1}^3tanh^{'}W j=k+13sj1sj=j=k+13tanhW

那么GRU如何缓解RNN的梯度消失问题呢?

在GRU里,隐层的输出换了个符号,从 s s s变成 h h h了。因此我们来分析一下 ∂ h t ∂ h t − 1 \frac{\partial h_t}{\partial h_{t-1}} ht1ht。 我们可以得到:
∂ h t ∂ h t − 1 = ( 1 − z t ) + … \frac{\partial h_t}{\partial h_{t-1}}=(1-z_t)+\ldots ht1ht=(1zt)+

因此我们可以通过控制更新门的输出 z t z_t zt来控制梯度,以缓解梯度消失问题


3️⃣ 总结

  • GRU和LSTM对比:
    在这里插入图片描述

  • GRU通过控制更新门的输出 z t z_t zt来控制梯度,以缓解梯度消失问题


4️⃣ 参考

  • Pytorch_LSTM与GRU
  • 白话机器学习-从RNN、LSTM到GRU

相关文章:

GRU(门控循环单元)详解

1️⃣ GRU介绍 前面介绍的LSTM可以有效缓解RNN的梯度消失问题,但是其内部结构比较复杂,因此衍生出了更加简化的GRU。GRU把输入门和遗忘门整合成一个更新门,并且合并了细胞状态和隐藏状态。于2014年被提出 2️⃣ 原理介绍 GRU的结构和最简单…...

【代码随想录|回溯算法排列问题】

491.非减子序列 题目链接. - 力扣(LeetCode) 这里和子集问题||很像,但是这里要的是非递减的子序列,要按照给的数组的顺序来进行排序,就是如果我给定的数组是[4,4,3,2,1],如果用子集||的做法先进行排序得到…...

Azure Kubernetes Service (AKS)资源优化策略

针对Azure Kubernetes Service (AKS)的资源优化策略,可以从多个维度进行考虑和实施,以提升集群的性能、效率和资源利用率。以下是一些关键的优化策略: 一、 Pod资源请求和限制 设置Pod请求和限制:在YAML清单中为所有Pod设置CPU和…...

R语言 | 宽数据变成一列,保留对应的行名和列名

对应稀疏矩阵 转为 宽数据框,见 数据格式转换 | 稀疏矩阵3列还原为原始矩阵/数据框,自定义函数 df3toMatrix() 目的:比如查看鸢尾花整体的指标分布,4个指标分开,画到一个图中。每个品种画一个图。 1.数据整理&#…...

RTSP播放器EasyPlayer.js播放器在webview环境下,PC和安卓能够正常播放,IOS环境下播放器会黑屏无法播放

流媒体技术分为顺序流式传输和实时流式传输两种。顺序流式传输允许用户在下载的同时观看,而实时流式传输则允许用户实时观看内容。 流媒体播放器负责解码和呈现内容,常见的播放器包括VLC和HTML5播放器等。流媒体技术的应用场景广泛,包括娱乐…...

.NET周刊【11月第3期 2024-11-17】

国内文章 .NET 9使用Scalar替代Swagger https://www.cnblogs.com/netry/p/18543378/scalar-an-alternative-to-swagger-in-dotnet-9 .NET 9 移除了 Swashbuckle.AspNetCore,因为其维护不力,并转向 Microsoft.AspNetCore.OpenApi。除了 Swashbuckle&am…...

c语言数据22数组使用

1.1数组分配的空间 int a[10]{1,2,3,4,5,6,7,8,9,10};//分配空间 元素类型大小int4*元素个数1040byte 元素之间空间连续 数组名代表数组首元素地址;a 取的是a[0]的地址;&a 是整个数组的地址 说明: 数组首元素地址: 0号元…...

深入理解TensorFlow中的形状处理函数

摘要 在深度学习模型的构建过程中,张量(Tensor)的形状管理是一项至关重要的任务。特别是在使用TensorFlow等框架时,确保张量的形状符合预期是保证模型正确运行的基础。本文将详细介绍几个常用的形状处理函数,包括get_…...

MySQL数据库3——函数与约束

一.函数 1.字符串函数 MySQL中内置了很多字符串函数,常用的几个如下: 使用方法: SELECT 函数名(参数);注意:MySQL中的索引值即下标都是从1开始的。 2.数值函数 常见的数值函数如下: 使用方法: SELECT…...

⾃动化运维利器 Ansible-Jinja2

Ansible-Jinja2 一、Ansible Jinja2模板背景介绍二、 JinJa2 模板2.1 JinJa2 是什么2.2 JinJa2逻辑控制 三、如何使用模板四、实例演示 按顺序食用,口味更佳 ( 1 ) ⾃动化运维利器Ansible-基础 ( 2 ) ⾃动化运维利器 Ansible-Playbook ( 3 ) ⾃动化运维利器 Ansible…...

博客文章怎么设计分类与标签

首发地址(欢迎大家访问):博客文章怎么设计分类与标签 新网站基本上算是迁移完了,迁移之后在写文章的过程中,发现个人的文章分类和标签做的太混乱了,分类做的像标签,标签也不是特别的丰富&#x…...

FastDDS之DataSharing

目录 原理说明限制条件配置Data-Sharing delivery kindData-sharing domain identifiers最大domain identifiers数量共享内存目录 DataReader和DataWriter的history耦合DataAck阻塞复用 本文详细记录Fast DDS中Data Sharing的实现原理和代码分析。 DataSharing的概念&#xff1…...

计算机网络在线测试-概述

单项选择题 第1题 数据通信中,数据传输速率(比特率,bps)是指每秒钟发送的()。 二进制位数 (我的答案) 符号数 字节数 码元数 第2题 一座大楼内的一个计算机网络系统&#xf…...

【MySQL】数据库必考知识点:查询操作全面详解与深度解剖

前言:本节内容讲述基本查询, 基本查询要分为两篇文章进行讲解。 本篇文章主要讲解的是表内删除数据、查询结果进行插入、聚合统计、分组聚合统计。 如果想要学习对应知识的可以观看哦。 ps:本篇内容友友们只要会创建表了就可以看起来了哦!&am…...

鲸鱼机器人和乐高机器人的比较

鲸鱼机器人和乐高机器人各有其独特的优势和特点,家长在选择时可以根据孩子的年龄、兴趣、经济能力等因素进行综合考虑,选择最适合孩子的教育机器人产品。 优势 鲸鱼机器人 1)价格亲民:鲸鱼机器人的产品价格相对乐高更为亲民&…...

游戏引擎学习第15天

视频参考:https://www.bilibili.com/video/BV1mbUBY7E24 关于游戏中文件输入输出(IO)操作的讨论。主要分为两类: 只读资产的加载 这部分主要涉及游戏中用于展示和运行的只读资源,例如音乐、音效、美术资源(如 3D 模型和…...

详解模版类pair

目录 一、pair简介 二、 pair的创建 三、pair的赋值 四、pair的排序 (1)用sort默认排序 (2)用sort中的自定义排序进行排序 五、pair的交换操作 一、pair简介 pair是一个模版类,可以存储两个值的键值对.first以…...

AI驱动的桌面笔记应用Reor

网友 竹林风 说,已经成功的用 mxbai-embed-large 映射到 text-embedding-ada-002,并测试成功了。不愧是爱折腾的人,老苏还没时间试,因为又找到了另一个支持 AI 的桌面版笔记 Reor Reor 简介 什么是 Reor ? Reor 是一款由人工智…...

搜维尔科技:使用sensglove触觉反馈手套进行虚拟拆装操作

使用sensglove触觉反馈手套进行虚拟拆装操作 搜维尔科技:使用sensglove触觉反馈手套进行虚拟拆装操作...

深入理解电子邮件安全:SPF、DKIM 和 DMARC 完全指南

引言 在当今数字时代,电子邮件已经成为我们日常通信中不可或缺的一部分。然而,随之而来的安全问题也日益突出。邮件欺诈、钓鱼攻击和垃圾邮件等威胁不断增加,这促使了多种邮件安全验证机制的出现。本文将深入探讨三个最重要的邮件安全协议&a…...

OpenClaw+nanobot自动化处理客服常见问题

OpenClawnanobot自动化处理客服常见问题 1. 为什么选择OpenClawnanobot做客服自动化 去年夏天,我的个人项目突然迎来一波用户增长,随之而来的是每天上百条的客服咨询。当我连续三天凌晨两点还在回复"如何重置密码"这类问题时,终于…...

AC6966B开发板开发准备-环境搭建:Windows下JL杰理AC696N开发环境配置

引言做蓝牙音频、音箱或IoT产品的开发,最怕的不是写代码,而是环境配半天跑不起来。JL杰理AC696N这颗芯片在耳机、音箱方案里很常见,性价比高,外设也全,但第一次接触杰理方案时,环境配置往往要先踩几个坑。尤…...

高效开启AI专著撰写!揭秘让写作速度飙升的实用工具

创新与AI写专著工具的背景 创新是学术专著的核心,也是写作过程中的一大挑战。一部优秀的专著不应仅仅是把之前的研究成果堆在一起,而是要能够提出贯穿全书的新颖观点、理论结构或研究手段。在海量的学术文献中,发现未被充分探讨的研究空白并…...

Virtual-Display-Driver技术指南:Windows虚拟显示驱动解决方案

Virtual-Display-Driver技术指南:Windows虚拟显示驱动解决方案 【免费下载链接】Virtual-Display-Driver Add virtual monitors to your windows 10/11 device! Works with VR, OBS, Sunshine, and/or any desktop sharing software. 项目地址: https://gitcode.c…...

嵌入式硬件工程师如何转型管理者

嵌入式硬件工程师的职业发展路径:从技术专家到管理者的转型指南1. 职业发展概述1.1 技术与管理双轨发展在嵌入式硬件工程领域,职业发展通常呈现两条路径:技术专家路线和管理路线。对于希望转向管理岗位的工程师,需要理解技术能力与…...

3个步骤让Sketch设计效率提升300%:Automate Sketch插件完全指南

3个步骤让Sketch设计效率提升300%:Automate Sketch插件完全指南 【免费下载链接】Automate-Sketch Make your workflow more efficient. 项目地址: https://gitcode.com/gh_mirrors/au/Automate-Sketch 在当今快节奏的设计工作中,效率就是竞争力。…...

进程与线程:操作系统中的“公司”与“员工”

进程与线程:操作系统中的“公司”与“员工”在操作系统的宏大叙事中,进程(Process)和线程(Thread)是两个最基础也最容易混淆的概念。很多初学者容易将它们混为一谈,认为它们只是“大任务”和“小…...

文科论文降AI率难度更大?人文社科类论文降AIGC率的正确方法

文科论文降AI率难度更大?人文社科类论文降AIGC率的正确方法 “我全文都是自己写的,为什么AI率还有42%?” 这是一位中文系研究生最近在论文交流群里的吐槽。她的毕业论文研究的是明清小说叙事结构,通篇都是自己一字一句写的&#x…...

CosyVoice多语言语音生成模型环境配置终极指南:解决5大常见部署错误

CosyVoice多语言语音生成模型环境配置终极指南:解决5大常见部署错误 【免费下载链接】CosyVoice Multi-lingual large voice generation model, providing inference, training and deployment full-stack ability. 项目地址: https://gitcode.com/gh_mirrors/cos…...

SDMatte镜像国产化适配:昇腾/海光平台移植可行性评估

SDMatte镜像国产化适配:昇腾/海光平台移植可行性评估 1. 项目背景与技术特点 SDMatte是一款专注于高质量图像抠图的AI模型,特别擅长处理复杂边缘和半透明物体的提取任务。该模型在电商、设计、内容创作等领域具有广泛应用价值,能够高效完成…...