【机器学习300问】123、什么是GRU?GRU网络的基本结构是怎样的?

        在之前的文章中,我们谈到了标准RNN所面临的诸多困境,你也可以理解为RNN的缺点。其中最让人苦恼的就是梯度消失问题,正是由于梯度消失问题的存在,导致RNN无法获得上下文的长期依赖信息。那么就没有办法解决了吗?非也!本文就介绍一种改进网络结构——GRU

        关于传统RNN的知识可以看我之前的文章:【机器学习300问】118、循环神经网络(RNN)的基本结构是怎样的?icon-default.png?t=N7T8https://blog.csdn.net/qq_39780701/article/details/139685879

一、什么是GRU?

        GRU,即门控循环单元(Gated Recurrent Unit),是一种用于自然语言处理和其他序列任务的神经网络架构,是标准循环神经网络(RNN)的一种改进版本。GRU的核心在于它试图解决标准RNN的梯度消失问题,同时保留长期依赖信息。

        上面这段话的解释,太过于苍白无力,只知道它解决了梯度消失问题,却没说怎么解决的。要想弄清楚GRU相对标准RNN到底强在哪里,就必须要了解其基本结构。

二、GRU网络的基本结构

        先说结论:“GRU通过两种门组件和两种记忆状态解决了梯度消失”,接下来我们一个个好好看看这四大组件。

(1)四大组件

① 重置门

        重置门(reset gate),记为 r_t ,这个门决定了上一时间步的记忆状态如何影响当前时间步的候选记忆内容。计算时会结合前一时间步的隐藏状态 h_{t-1} 和当前输入 x_t ,输出是一个0到1之间的值。值越接近1表示越多地保留之前的状态,越接近0表示遗忘更多旧状态。对应的数学表达如下:

 r_t = \sigma(W_r \cdot [h_{t-1}, x_t])

② 更新门

        更新门(update gate),记为 z_t ,这个门决定了上一时间步的记忆状态有多少需要传递到当前时间步,以及当前的输入信息有多少需要加入到新的记忆状态中,同样,它也是基于 h_{t-1} 和 x_t 计算得到的。对应的数学表达如下:

z_t = \sigma(W_z \cdot [h_{t-1}, x_t])

③ 候选记忆状态

        候选记忆状态(candidate memory),记为 \tilde{h_t} ,这是基于当前输入 x_t  、上一时间步隐藏状态 h_{t-1}  以及重置门的输出,三者计算得到的。其中的重置门决定了如何“重置”旧的记忆状态,以便更好地整合新信息。对应的数学表达如下:

\tilde{h}_t = \tanh(W \cdot [r_t * h_{t-1}, x_t])

④ 最终记忆状态

        最终记忆状态(hidden state)记为 h_t ,通过结合更新门的输出和候选记忆状态以及上一时间步的记忆状态来计算得出的。其中更新门决定了新旧记忆的混合比例。对应的数学表达如下:

h_t = (1 - z_t) * h_{t-1} + z_t * \tilde{h}_t

让我们总结一下上面的各种符号,方便后期查阅:

符号解释
z_t更新门
r_t重置门
h_t当前时刻的隐藏状态
\tilde{h}_t候选隐藏状态
h_{t-1}前一时刻的隐藏状态
x_t当前时刻的输入
W,W_z,W_r对应的训练参数
\sigmasigmoid激活函数
*Hadamard积(按元素乘积)运算符

(2)到底长什么样?图解GRU

① 重置门和更新门的结构

        上图描述了门控循环单元中的重置门和更新门的输入, 输入是由当前时间步的输入和前一时间步的隐状态给出。 两个门的输出是由使用sigmoid激活函数的两个全连接层给出。

②  候选隐藏状态的结构

③ GRU的循环块结构

门控循环单元具有以下两个显著特征:

  • 重置门有助于捕获序列中的短期依赖关系;

  • 更新门有助于捕获序列中的长期依赖关系。

三、GRU为何能缓解梯度消失?

        在传统的RNN中,由于长时间依赖问题,反向传播过程中梯度可能会因连续乘以小于1的数而变得非常小,导致早期时间步的权重几乎不更新,这就是梯度消失问题。

而GRU通过其独特的门控机制,特别是更新门和重置门的设计,能够更加灵活地控制信息流:

  • 更新门:有助于模型决定在每一步中应该保留多少之前时刻的信息。它可以让模型在需要的时候保持激活状态,这样有助于后续的梯度传递而不会随时间迅速减小。如果更新门接近1,那么梯度可以在很多时间步内传递而不衰减,使得长期依赖的信息得到保留。
  • 重置门:帮助模型决定忽略多少之前的信息。重置门可以用来减少那些不太相关信息的影响,从而保护模型不会把注意力放在不相关的长期依赖上。当选择忽略一些不相关的信息时,梯度将不会在这部分信息上进行传递,这有助于集中于更相关的信息,并有助于梯度完整地在其他相关部分传递。

        因为有了这样的机制,GRU能够在每次更新中将梯度既不是完全传递也不是完全阻断,而是能够在相关的部分进行传递。这样在优化过程中,即使对于较长的序列,也能够更加稳定地保留梯度,防止了梯度极端消失,这对于学习长期依赖至关重要。因此,GRU往往在处理长序列数据时比传统RNN更加有效。

四、举个例子说明GRU的工作原理

        我们可以把某个学生的学习历程想象成一个时间序列,其中每个学科对应一个时间步骤上的输入数据。每个笔记代表了在特定时间点(假设从小学、初中、高中到大学)学习的内容。我们想利用GRU模型来理解学生的学习轨迹。

GRU在这个场景的应用解释:

① 输入序列

        在这个例子中的输入序列,就是学生学习的学科,例如他在高中时学习的学科:['语文', '数学', '英语', '编程', '物理']

② 初始化隐藏状态(小学时期)

        开始时,GRU有一个初始的隐藏状态h_0​,可以看作是学生开始学习时的一张“空白记忆板”。

③ 第t-1个时间步(高中时期)

        学生在高中时学习了一系列科目并做了笔记:['语文', '数学', '英语', '编程', '物理']。这些知识构成了他前一时间步隐藏状态 h_{t-1}

④ 第t个时间步(大学时期)

  • 更新门:现在学生在大学里学习深度学习,他需要回顾某些高中学科的知识。在GRU中,更新门将决定他之前学过哪些知识依然重要并且需要在他的记忆中保留(比如'数学'知识对于'微积分','线性代数'和'概率论'很重要;'编程'对'Python'和'机器学习基础'很重要)。
  • 重置门:对于那些与当前的深度学习不直接相关的旧知识(比如'语文'和'英语'),通过重置门,GRU可以决定减少对这些信息的依赖,从而让神经网络集中于更相关的信息(这里是数学和编程相关的科目)。
  • 候选记忆状态:在接触到新的科目后('微积分', '线性代数', 'Python', '概率论', '机器学习基础'),经过重置门过滤后,之前的知识和新的输入共同决定了新的候选隐藏状态。以此模拟学生如何将过去的知识与新知识结合起来。
  • 最终隐藏状态:更新门负责把新的候选隐藏状态与旧的隐藏状态结合起来,创造出最新的隐藏状态,代表学生整合了新旧知识后的当前知识水平。这一过程就是学生用之前学过的高中的数学和编程课程来帮助理解大学的深度学习课程。

        在反向传播过程中,GRU的这些门结构帮助了梯度在通过长序列时不会消失,确保即使时间跨度很长(比如从高中到大学),模型仍然能够学习到如何从过去的经验中获取有用的知识。在这个例子里,即使'物理'可能不直接相关深度学习,但如果更新门认为这部分知识还是有用的,那么信息依然可以被保留下来。在真实的GRU模型中,这一切都是通过网络自动学习到的权重来决定的。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

深入解析纹理贴图——纹理压缩技术

by STANCH 标签:#纹理压缩 #纹理贴图 1.纹理压缩概述 3D计算机图形学离不开各种类型的纹理。纹理贴图可以极大地提高3D物体的视觉质量和细节水平,而不增加几何复杂度。简单的纹理是二维图像,该图像的单个像素称为纹素(texel)。事实上,纹理不仅可以存储…

chrome的插件怎么获取到安装包

问: chrome的插件怎么获取到安装包 回答: 在chrome浏览器输入: chrome://version/ 复制: 个人资料路径, 打开这个路径, 在文件中打开Extensions这个文件夹, 这个文件夹就是存放插件安装包的文件夹.

Mac 安装HomeBrew(亲测成功)

1、终端安装命令: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"执行后,没有安装git,会先安装,安装后再执行一下命令。 2、根据中文选择源安装 3、相关命令 查看版本号&a…

Jmeter如何进行分布式测试

使用Jmeter进行性能测试时,有些同学问我如果并发数比较大(比如最近项目需要支持1000并发),单台电脑的配置(CPU和内存)可能无法支持,怎么办就需要使用分布式压测 1.分布式原理: 1、Jmeter分布式测试时,选择其中一台作…

深度剖析ElasticSearch分页原理与深分页问题|ES深分页问题|ES分页原理剖析

文章目录 ES分页|Paginate search resultsES深分页的问题一页获取数据量太大,报错分页深度太大,报错官方解释 其他解决方案Search after解决两个问题 有没有深分页查询的必要性?search after & PIT的使用方式1.创建pit2.首次查询3.之后的…

Opencv高级图像处理

文章目录 Opencv高级图像处理图像坐标二值化滤波高斯滤波中值滤波 开闭运算检测霍夫圆检测边缘检测Canny边缘检测findContours区别傅里叶变换-高/低通滤波 直线检测 相机标定视频处理视频格式 模板摄像头处理(带参调节)单图片处理(带参调节&a…

JAVA上门家政服务系统源码微信小程序+微信公众号+APP+H5

🏠家政服务系统:一键预约,轻松享受家居生活🎉 功能介绍 用户端:精准分类、支持家政、维修、万能服务、一口价、报价、线上、各类家政服务、优惠专区、师傅入驻、商家入驻、我的需求、补费明细、我的投诉 师傅端&…

基于Spring Boot+VUE旧物置换网站

1前台首页功能模块 旧物置换网站,在系统首页可以查看首页、旧物信息、网站公告、个人中心、后台管理等内容,如图1所示。 图1系统功能界面图 用户注册,在用户注册页面通过填写用户名、密码、姓名、性别、头像、手机、邮箱等内容进行用户注册&…

Linux 系统图像化编程GTK入门

环境前期准备 演示环境:Windows 11 Ubuntu 22.04.4 VS Code 前提条件:1、Windows 11 子系统Ubuntu 22.04.4 已经安装图形化界面,如果没有安装请参考文章: windows11子系统Ubuntu 22.04.4子安装图形化界面 2、Ubuntu 22.04.4…

小程序餐饮点餐系统,扫码下单点菜,消费端+配送端+收银端+理端

目录 前言: 一、小程序功能有哪些 前端: 管理端: 二、实体店做小程序的好处 方便快捷的点餐和支付体验: 扩大店铺的曝光度和影响力: 优化顾客体验和服务质量: 降低成本和提高效率: 数据…

iview 组件里面的(任何一个月)整月日期全部选中_iview时间轴选中有历史记录日期

iview 组件里面的整月日期全部选中: ①:第一种是当前月的日期全部选中: 先上效果图:当前月分 获取到的值: 当前月的方法: // getDateStr() {// var curDate new Date();// var curMonth curDate.ge…

K8s的资源对象

资源对象是 K8s 提供的一些管理和运行应用容器的各种对象和组件。 Pod 资源是 K8s 中的基本部署单元,K8s通过Pod来运行业务应用的容器镜像 Job 和 CronJob 资源用于执行任务和定时任务,DaemonSet 资源提供类似每个节点上守护进程, Deployment…

WPF 深入理解四、样式

样式 WPF中的各类控件元素,都可以自由的设置其样式。 诸如: 字体(FontFamily) 字体大小(FontSize) 背景颜色(Background) 字体颜色(Foreground) 边距(Margin) 水平位置(HorizontalAlignment) 垂直位置(VerticalAlignment)等等。 而样式则是组织和重用以上的重要工具。不是使…

Nginx缓存之web缓存配置

Web 缓存可节约网络带宽,有效提高用户打开网站的速度。由于应用服务器被请求次数的降低,也相对使它的稳定性得到了提升。Web 缓存从数据内容传输的方向分为前向位置缓存和反向位置缓存两类。如下图所示。 前向位置缓存既可以是用户的客户端浏览器&#x…

iOS 18 Siri 升级之后都有哪些改变?

新界面 首先最显著的改变就是 Siri 的界面不同了,之前的界面是在打开 Siri 之后会出现一个圆形图案,而在 Siri 升级之后变成了屏幕边缘发出亮光。 来源:Apple 可在任意位置使用 苹果的生成式人工智能 Apple Intelligence 将为 Siri 提供支…

【前端】 nvm安装管理多版本node、 npm install失败解决方式

【问题】If you believe this might be a permissions issue, please double-check the npm ERR! permissio或者Error: EPERM: operation not permitted, VScode中npm install或cnpm install报错 简单总结,我们运行npm install 无法安装吧包,提示权限问题…

pdf怎么压缩到2m以内或5m以内的方法

PDF作为一种广泛使用的文档格式,已经成为我们工作和生活中不可或缺的一部分。然而,有时候PDF文件内存会比较大,给我们的存储和传输带来了很大的不便。因此,学会压缩 PDF 文件是非常必要的。 打开"轻云处理pdf官网"&…

JAVA二手车交易二手车市场系统源码支持微信小程序+微信公众号+H5+APP

🚗二手车交易系统小程序:让买卖更轻松🔍 功能介绍 我的粉丝、我的关注、获赞、访客 我的动态、认证中心、我的团队、开通会员 免费估值、买二手车、我要卖车、车型选择 每日上新、底价专区、精准筛选、附近展厅商 车辆的详细信息、拨打电…

Mamba: Linear-Time Sequence Modeling with Selective State Spaces论文笔记

文章目录 Mamba: Linear-Time Sequence Modeling with Selective State Spaces摘要引言 相关工作(SSMs)离散化计算线性时间不变性(LTI)结构和尺寸一般状态空间模型SSMs架构S4(补充)离散数据的连续化: 基于零阶保持技术做连续化并采样循环结构表示: 方便快速推理卷积结构表示: 方…

从0开始开发一个简单web界面的学习笔记(HTML类)

文章目录 什么是HTML页面vscode 开放工具搭建第一个HTML页面编写vscode 如何快速生成代码框架html标签——注释、标题、段落、换行标签格式化标签img 标签(src 属性01)img 属性02(alt、title、width/height、border)a标签href属性a标签target属性表格标签01 基本属性表格标签02…