一、什么是GRU?

GRU(Gate Recurrent Unit)是循环神经网络(RNN)的一种,可以解决RNN中不能长期记忆和反向传播中的梯度等问题,与LSTM的作用类似,不过比LSTM简单,容易进行训练。

二、GRU详解

GRU模型中有两个门,重置门和更新门,具体作用后面展开说。

先来看一张GRU的图,看不懂没关系,后面慢慢展开说。

符号说明:

:当前时刻输入信息

:上一时刻的隐藏状态。隐藏状态充当了神经网络记忆,它包含之前节点所见过的数据的信息

:传递到下一时刻的隐藏状态

:候选隐藏状态

:重置门

:更新门

:sigmoid函数,通过这个函数可以将数据变为0-1范围的数值。

tanh: tanh函数,通过这个函数可以将数据变为[-1,1]范围的数值

先不看内部具体的复杂关系,将上图简化为下图:

结合 和 ,GRU会得到当前隐藏节点的输出和传递给下一个节点的隐藏状态,这个

的推导是GRU的关键所在,我们看一下GRU所用到的公式:

这四个公式互有关联,并不是单独去使用,下面我们详细展开。

1. 重置门

重置门决定了如何将新的输入信息与前面的记忆相结合,这句话猛的一看也不好理解,我们再继续拆解。

将这个图片转化为公式就是重置门的公式:

这里并不是一个值,而是一个权重矩阵。

用这个权重矩阵对拼接而成的矩阵进行线性变换(两个矩阵相乘)。然后将两个矩阵相乘得到的值投入sigmoide函数,会得到的值,比如:0.6 。这个值会用到候选隐藏状态的公式中,即下面这个公式:

为了方便理解,我们将这个公式展开:

下面便是重点:

的值越小,它与哈达玛积出来的矩阵数值越小,再与权重矩阵相乘得到的值越小,也就是这个值越小,

说明上一时刻需要遗忘的越多,丢弃的越多。

的值越大, 值越大,说明上一时刻需要记住的越多,新的输入信息(也就是当前的输入信息)与前面的记忆相结合的越多。

的值接近0时,值也接近为0,说明上一时刻的内容需要全部丢弃,只保留当前时刻的输入,所以可以用来丢弃与预测无关的历史信息。

的值接近1时,值也接近为1,表示保留上一时刻的隐藏状态。

这就是重置门的作用,有助于捕捉时间序列里短期的依赖关系。

2.更新门

更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,也就是更新门帮助模型决定到底要将多少过去的信息传递到未来,简单来说就是用于更新记忆。结合下面两个公式比较好理解:

更新门公式:

更新记忆表达式:

越接近1,代表”记忆“下来的数据越多;而越接近0则代表”遗忘“的越多。

:表示对上一时刻隐藏状态进行选择性“遗忘”。忘记中一些不重要的信息,把不相关的丢弃。

:表示对候选隐藏状态的进一步选择性”记忆“。会忘记 中的一些不重要的信息。也就是对中的某些信息进一步选择。

综上,

忘记传递下来的 中的某些信息,并加入当前节点输入的某些信息。这就是最终的记忆。

门控循环单元GRU不会随时间而清除以前的信息,它会保留相关的信息并传递到下一个单元。

参考资料:

人人都能看懂的GRU - 知乎 (zhihu.com)

GRU学习总结_哔哩哔哩_bilibili

GRU(门控循环单元),易懂。相关推荐

  1. GRU门控循环单元读书笔记

    文章目录 1. 概述 2. GRU关键组件 2.1 门 2.2 候选隐藏状态H~t\widetilde{H}_tHt​ 2.3 隐状态 HtH_tHt​ 2.4 小结 3. 代码 4. torch.n ...

  2. 2020-10-21 吴恩达DL学习-C5 序列模型-W1 循环序列模型(1.9 GRU门控循环单元-改善梯度消失-在序列中学习非常深的连接-简化和完整版本-记忆细胞)

    1.视频网站:mooc慕课https://mooc.study.163.com/university/deeplearning_ai#/c 2.详细笔记网站(中文):http://www.ai-sta ...

  3. 回归预测 | MATLAB实现CNN-GRU(卷积门控循环单元)多输入单输出

    回归预测 | MATLAB实现CNN-GRU(卷积门控循环单元)多输入单输出 目录 回归预测 | MATLAB实现CNN-GRU(卷积门控循环单元)多输入单输出 基本介绍 模型结构 CNN神经网络 G ...

  4. (pytorch-深度学习)门控循环单元(GRU)

    门控循环单元(GRU) 循环神经网络中的梯度计算 当时间步数较大或者时间步较小时,循环神经网络的梯度较容易出现衰减或爆炸. 虽然裁剪梯度可以应对梯度爆炸,但无法解决梯度衰减的问题. 通常由于这个原因, ...

  5. 花书+吴恩达深度学习(十七)序列模型之长短期记忆 LSTM 和门控循环单元 GRU

    目录 0. 前言 1. 长短期记忆 LSTM 2. 门控循环单元 GRU 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(十五)序列模型之循环神经网络 ...

  6. pytorch学习笔记(三十一):门控循环单元(GRU)

    文章目录 前言 1. 门控循环单元 1.1 重置门和更新门 1.2 候选隐藏状态 1.3 隐藏状态 2. 读取数据集 3. 从零开始实现 3.1 初始化模型参数 3.2 定义模型 3.3 训练模型并创 ...

  7. 动手学深度学习(三十九)——门控循环单元GRU

    文章目录 门控循环单元(GRU) 一.门控隐藏状态 1.1 重置门和更新门 1.2候选隐藏状态 1.3 隐藏状态 二.从零实现GRU 2.1 初始化模型参数 2.2 定义模型 2.3 训练与预测 2. ...

  8. 现代循环神经网络-1.门控循环单元(GRU)【动手学深度学习v2】

    文章目录 1.门控循环单元(GRU) 1.1 门控隐状态 A.重置门与更新门 B.候选隐状态 C.隐状态 1.2 GRU的实现 A.从零实现 B.简洁实现 1.门控循环单元(GRU) GRU是一个比较 ...

  9. 【吴恩达deeplearning.ai】Course 5 - 1.9 GRU 单元(门控循环单元)

    GRU 单元 (Gated Recurrent Unit (GRU)) 你已经了解了基础的RNN模型的运行机制,在本节视频中你将会学习门控循环单元,它改变了RNN的隐藏层,使其可以更好地捕捉深层连接, ...

最新文章

  1. 42_ResNet (深度残差网络)---学习笔记
  2. Ubuntu下用apache+perl搭建最简单的聊天室
  3. NLP使用Python作为开发语言以及人工智能方面的优势
  4. 在ArcScene中导入显示自己在SketchUp创建并经过修饰的模型
  5. 今日芯声 | 连发五个“感恩”,余承东庆祝与鸿蒙OS同一天生日
  6. 软件测试的四个阶段【单元测试、集成测试、系统测试、验证测试】
  7. RDPWrap1.6.2让windows家庭版Home实现远程桌面
  8. 程序员必备的10个B站优质UP主!
  9. 高数竞赛、数学建模、算法、计算机专业书籍等亲情大甩卖
  10. 20145322何志威 《信息安全系统设计基础》第2周学习总结
  11. android 邮箱 推荐,Android邮箱谁最棒?最新热门邮箱App横向测试
  12. el表达式设置option标签selected
  13. 德国计算机留学难度,德国留学,真的很难毕业吗?德国留学生的真实感受
  14. EventBus粘性事件
  15. 微信小程序实现柱形图与折现图
  16. 【海子诗全编】序及后记
  17. Java生鲜电商平台-微服务生鲜电商用户中心的系统设计(小程序/APP)
  18. mppdb 查看建表语句_内存MPP数据库介绍.pptx
  19. QT实现浏览器访问网页,使用QWebEngineView
  20. Vue(总结完毕)2021.1.1 新年快乐

热门文章

  1. 应届毕业生的不知所措,面对“毕业即失业”的境地,这该怎么办?
  2. java assert函数_Java Assert 用法简介
  3. 《魔兽世界》任务系统体验 2
  4. 实际例子描述和分析“猎豹抢票跨站推荐功能跨站有票刷不到”的疑似bug
  5. 装饰模式(装饰设计模式)
  6. 黄健翔质疑半自动越位技术?用「技术流」解读卡塔尔世界杯
  7. 博球一看,CSDN与你共观世界杯
  8. OpenCV3之——漫水填充:floodFill函数
  9. 相对定位和绝对定位的用法
  10. RK 平台MIPI 点屏注意事项