GRU介绍

上篇文章提到了RNN(循环神经网络)的变体LSTM(长短期记忆网络),现在说一下它们的另一个变体GRU(Gate Recurrent Unit)——门控循环单元。虽然LSTM能够解决循环神经网络因长期依赖带来的梯度消失和梯度爆炸问题,但是在LSTM中引入了三个门函数:输入门、遗忘门和输出门来控制输入值、记忆值和输出值,参数较多,训练起来比较困难。而在GRU模型中只有两个门:分别是更新门和重置门,且在超参数全部调优的情况下,二者性能相当,GRU结构更为简单,训练样本较少,易实现。

GRU的结构


  图中的zt和rt分别表示更新门和重置门。

GRU的前向传播

根据GRU的模型结构图,我们来看一下GRU的前向传播公式:

(1)更新门Zt :更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门的值越大说明前一时刻的状态信息带入越多, 将前一时刻和当前时刻的信息分别右乘权重矩阵,然后相加后的数据送入更新门,也就是与sigmoid函数相乘,得出的数值在[0, 1]之间。
(2)重置门rt:控制前一状态有多少历史信息被写入到当前的候选集 h~t 上,重置门越小,前一状态的信息被写入的越少,同更新门的数据处理一样,将前一时刻和当前时刻的信息分别右乘权重矩阵,然后相加后的数据送入重置门,也就是与sigmoid函数相乘,得出的数值在[0, 1]之间。只是两次的权重矩阵的数值和用处不同。
GRU直接使用更新门来控制输入和遗忘的平衡,而LSTM中输入门和遗忘门相比GRU就具有一定的冗余性了。

通俗理解GRU网络原理相关推荐

  1. 深入理解K8S网络原理下

    承接上文深入理解K8S网络原理上 Service 应用是K8s集群内部可见的而我们发布的应用需要外网甚至公网可以访问K8s如何将内部服务暴露出去? 四层网络只有Node节点网络可以对外通讯现在问题是第 ...

  2. 深入理解 Docker 网络原理

    作者 | 渡. 来源 | CSDN博客 Docker网络原理 容器是相对独立的环境,相当于一个小型的Linux系统,外界无法直接访问,那他是怎么做的呢,这里我们先了解下Linux veth pair. ...

  3. 深入理解K8S网络原理上

    K8s四层网络 抽象成四层网络 Node节点网络 底层基础设施支持节点主机之间网络的互通 Pod网络 能够相互做IP寻址.相互通讯 同一节点上的Pod网络 大多数场景下一个pod下面有1个容器 也有一 ...

  4. 【图解】算法原理!通俗理解机器学习算法

    机器之心报道 机器之心编辑部 算法公式挺费神,机器学习太伤人.任何一个刚入门机器学习的人都会被复杂的公式和晦涩难懂的术语吓到.但其实,如果有通俗易懂的图解,理解机器学习的原理就会非常容易.本文整理了一 ...

  5. 【阿里云课程】残差网络原理,结构发展及有效性理解

    大家好,继续更新有三AI与阿里天池联合推出的深度学习系列课程,本次更新内容为第10课中的一节,介绍如下: 残差网络原理与结构演变 本次课程是阿里天池联合有三AI推出的深度学习系列课程第10期,深度学习 ...

  6. 通俗理解torch.distributed.barrier()工作原理

    1.背景介绍 在pytorch的多卡训练中,通常有两种方式,一种是单机多卡模式(存在一个节点,通过torch.nn.DataParallel(model)实现),一种是多机多卡模式(存在一个节点或者多 ...

  7. 网络七层模型和对应协议的通俗理解

    文章目录 1.七层.五层.四层模型划分 2.记忆口诀 3.各层的协议 4.OSI 七层模型的通俗理解 4.1.需求1: 4.2. 需求2: 4.3.需求3: 4.4. 需求4: 4.5.需求5: 4. ...

  8. 【通俗理解】RBF网络

    1 RBF Network Hypothesis 在SVM中引入Gaussian Kernel就能在无限多维的特征转换中得到一条"粗壮"的分界线(或者高维分界平面.分界超平面).从 ...

  9. gan网络原理(通俗)+minist手写字体实战

     gan网络原理如下: mnist手写字体实战: import torch import torchvision from torchvision import transforms from tor ...

最新文章

  1. 活着不容易!几度被扼杀又雄起的NLP简史
  2. 如何点击TextField不弹出键盘?
  3. 2021年下软考各省防控要求汇总
  4. 绝地求生自定义服务器租一天多少钱,绝地求生自定义服务器怎么样?绝地求生自定义服务器使用攻略...
  5. boost::hana::members用法的测试程序
  6. SQL注入-基于MySQL的注入提权(十七)
  7. sqlserver 库服务器导数据
  8. django-中间件
  9. oracle fiscal year,Version 0 is not defined for fiscal year 2007.
  10. 判断C语言变量名是否合法
  11. 接口进阶 java 1614956772
  12. 什么是Code Review(转)
  13. Python Selenium 调用IE浏览器失败Unexpected error launching Internet Explorer解决方法
  14. com.sun:tools
  15. ROBOCOPY命令
  16. 最全最新cpu显卡天梯图_电脑显卡天梯图2019排行榜——2019显卡CPU天梯图排行榜...
  17. 腾讯元老上市公司CTO赚够钱后辞职,到安徽隐居,每天对着200亩地发呆
  18. 单片机继电器控制实验程序C语言,继电器控制实验
  19. 为什么要给代码添加注释?
  20. python批量提取word指定内容_python批量提取word内信息

热门文章

  1. 交流电怎样转变为直流电?
  2. EasyUI Layout实现tabs标签
  3. 【MATLAB】MATLAB实现 之 OFDM(正交频分复用技术)
  4. 从美团实习生到上市公司CEO,沈鹏的自我训练心法
  5. pygame系列_原创百度随心听音乐播放器_完整版
  6. Node框架thinkjs开发后台API
  7. 怎么将webp在线转改成jpg格式?
  8. JtextField 学习
  9. RHCA回忆录---开篇:RH358
  10. rk3368_android9.0添加launcher备份功能