首页 > 其他分享 >门控循环单元GRU

门控循环单元GRU

时间:2024-11-10 21:46:43浏览次数:3  
标签:状态 GRU RNN 信息 隐藏 LSTM 门控 单元

结构:

特点:

结构简单,参数较少

结构图:

对比LSTM:

1.LSTM有三个门,而GRU只有两个门

2.LSTM在左侧有两项输入,而GRU只有一项输入,将两项C_{t-1}H_{t-1}合二为一合成一个部分H_{t-1}

3.LSTM中的参数数量很多(W_{xi}W_{hi}W_{xf}W_{hf}等9个),而GRU中的参数少得多(W_{z}W_{r}等6个)

4.LSTM中的门为输入门、遗忘门、输出门,GRU的门为更新门和重置门

关注一个序列:

不是每个观察值都同等重要:

做RNN时,处理不了太长的序列,因为将整个序列信息放在隐藏状态里;当时间很长时,隐藏状态就累积了很多信息,对于前面很久前的信息并不容易将其抽取出来。

老鼠较为重要,第一次出现的猫也较为重要。

在现实生活中的NLP里,句子里可能只有一些关键字比较重要,关键句比较重要,其他的也不是很重要;类似于股票,重要的是几个点;电影里的几帧相类似,但在切换场景时,每次切换比较重要。

在RNN中无法实现特别关注某些区域,对RNN而言所有信息都为一个序列输入,门控神经网络通过一些额外的控制单元使得在构造隐藏状态时,可以选择的(重要的记住,不重要的忘记)浏览。

想只记住相关的观察需要:

能关注的机制(更新门)

能遗忘的机制(重置门)

门:

下图表示为一个层

R^{t}:重置;若为RNN,则等价于使用sigmoid做激活函数的隐藏状态的计算方法

Z^{t}:更新;对比R^{t}也有自己的权重W

门:与隐藏状态同样长度的一个向量,与RNN计算隐藏状态的方法类似

候选隐藏状态:

定义:

并不是真正的隐藏状态,而是候选的隐藏状态。

假设不看R_{t},类似于之前的RNN计算隐藏层

但现在加入了一个R_{t},用 \bigodot 代表对元素进行乘法;因为R_{t}H_{t-1}的长度相同,可以按元素做乘法且值域在(0,1)之间,假设R_{t}\bigodot H_{t-1}中的元素更靠近“0”,那么运算后的结果更靠近“0”,等于把上一时刻的隐藏状态忘记;假设R_{t}\bigodot H_{t-1}中的元素更靠近“1”,那么运算结果更靠近“1”,等价于RNN做运算的结果。

R_{t}可以根据前面的信息进行学习,决定信息可以丢弃或保留,是一个控制单元,被称为"门"。因为值域在(0,1),代表可以在(0,1)之间做比较软的控制。

隐状态:

H_{t-1}:上一次的隐藏状态

\widetilde{H_{t}}:候选项隐藏状态

Z_{t}:控制单元;若Z_{t}为“1”,H_{t}=H_{t-1},不更新过去状态,将过去状态放入现在,忽略掉元素;当Z_{t}为“0”,基本回到了RNN的情况,基本不看过去状态,而是看现在的状态。

总结:

引入了两个额外门,每个门可以学到的参数和之前的RNN一样多;两个门都为一个控制单元,控制(0,1)的输出值;Reset gate用来在更新新隐藏状态时,要用到多少过去隐藏状态的信息,在算新的隐藏状态时,需要用当前X_{t}相关的多少信息;极端情况下,\widetilde{H_{t}}回到RNN的情况;

标签:状态,GRU,RNN,信息,隐藏,LSTM,门控,单元
From: https://blog.csdn.net/m0_61595251/article/details/143485509

相关文章

  • Bayes-CNN-BiGRU-Att贝叶斯算法-卷机网络-双向门控循环单元-注意力机制多特分类预测 M
    %*****************************************************************************************************************************************************************************************************************%%清空环境变量warningoff%关闭报警......
  • 如何使用gtest编写C++单元测试代码
    目录一.为什么要编写单元测试代码二.gtest是什么三.下载四.使用方法4.1场景一4.2场景二4.3场景三五.其他一.为什么要编写单元测试代码相信很多人都不喜欢编写单元测试代码,但是单元测试对我们来说真的很重要,单元测试可以暴露出我们自己的代码的内部问题,从而保证我......
  • 【CNN-GRU-Attention】基于卷积神经网络和门控循环单元网络结合注意力机制的多变量回
    ......
  • Java JUnit从入门到精通:一篇文章带你掌握单元测试
    JavaJUnit从入门到精通:一篇文章带你掌握单元测试前言在现代软件开发中,单元测试已经成为保证代码质量的重要手段。作为Java生态中最流行的单元测试框架,JUnit提供了强大而灵活的测试功能。本文将从基础开始,逐步深入JUnit的各个方面,帮助你全面掌握Java单元测试。目录JUnit......
  • Java单元测试完全指南:JUnit从入门到精通
    Java单元测试完全指南:JUnit从入门到精通一、前言在现代软件开发中,单元测试已经成为保证代码质量的重要手段。本文将全面介绍Java最流行的单元测试框架JUnit,从基础概念到高级特性,帮助你掌握单元测试的核心技能。二、目录JUnit基础及环境搭建核心注解详解注解最佳实践高级测......
  • C代码单元测试框架
    如何在Windows本地集成unity和CMocka单元测试框架? 一、Cmocka源码下载编译官方网站 https://cmocka.org/ 下载源码。CMocka使用CMake来管理构建过程,它能自动生成适用于MinGW的构建文件(MinGWMakefiles)。如果你想要在Windows上使用MinGW编译CMocka则......
  • 符合ISO26262的零部件级的软件测试解决方案:目前功能安全零部件测试的困难|软件单元、
    引言在功能安全的开发、测试过程中概念阶段的活动一般都是由主机厂负责,而从系统开发到单元实现则是由供应商负责,对于供应商所做的一系列测试通常称为零部件级测试。根据ISO26262功能安全标准的划分,功能安全在零部件阶段的测试包括:软件单元测试、软件集成测试、硬件集成测......
  • .msc 是 Microsoft Management Console (MMC) 的管理单元文件扩展名,它通常用于存储管
    .msc是MicrosoftManagementConsole(MMC)的管理单元文件扩展名,它通常用于存储管理工具的配置和界面信息。MSC文件本质上是一个预设的管理工具,它包含了一些可以用来管理和配置Windows操作系统、网络、硬件等资源的界面和功能。简单来说,.msc文件是Windows系统中的管理工......
  • Abp-工作单元应用场景注意事项
    Abp-工作单元应用场景注意事项事务工作单元=数据库事务+工作单元事务。Controller[ApiController][Route("[controller]")]publicclassBlogController:AbpController{privateBlogAppService_blogAppService=>LazyServiceProvider.LazyGetRequiredService<BlogA......
  • 强噪声下基于mscnn-bigru-attention深度学习模型CWRU(凯斯西储大学)轴承故障诊断(Pytho
     1.效果视频(以0HP数据集为例,在-30DB下的测试准确率效果)强噪声下基于mscnn-bigru-attention深度学习模型CWRU(凯斯西储大学)轴承故障诊断_哔哩哔哩_bilibili对原始信号分别添加不同强度的高斯白噪声,以模拟实验数据遇到的实际环境中干扰噪声。原始信号(以0HP数据为例进行展示,可......