GRU(门控循环单元),易懂。
一、什么是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(门控循环单元),易懂。相关推荐
- GRU门控循环单元读书笔记
文章目录 1. 概述 2. GRU关键组件 2.1 门 2.2 候选隐藏状态H~t\widetilde{H}_tHt 2.3 隐状态 HtH_tHt 2.4 小结 3. 代码 4. torch.n ...
- 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 ...
- 回归预测 | MATLAB实现CNN-GRU(卷积门控循环单元)多输入单输出
回归预测 | MATLAB实现CNN-GRU(卷积门控循环单元)多输入单输出 目录 回归预测 | MATLAB实现CNN-GRU(卷积门控循环单元)多输入单输出 基本介绍 模型结构 CNN神经网络 G ...
- (pytorch-深度学习)门控循环单元(GRU)
门控循环单元(GRU) 循环神经网络中的梯度计算 当时间步数较大或者时间步较小时,循环神经网络的梯度较容易出现衰减或爆炸. 虽然裁剪梯度可以应对梯度爆炸,但无法解决梯度衰减的问题. 通常由于这个原因, ...
- 花书+吴恩达深度学习(十七)序列模型之长短期记忆 LSTM 和门控循环单元 GRU
目录 0. 前言 1. 长短期记忆 LSTM 2. 门控循环单元 GRU 如果这篇文章对你有一点小小的帮助,请给个关注,点个赞喔~我会非常开心的~ 花书+吴恩达深度学习(十五)序列模型之循环神经网络 ...
- pytorch学习笔记(三十一):门控循环单元(GRU)
文章目录 前言 1. 门控循环单元 1.1 重置门和更新门 1.2 候选隐藏状态 1.3 隐藏状态 2. 读取数据集 3. 从零开始实现 3.1 初始化模型参数 3.2 定义模型 3.3 训练模型并创 ...
- 动手学深度学习(三十九)——门控循环单元GRU
文章目录 门控循环单元(GRU) 一.门控隐藏状态 1.1 重置门和更新门 1.2候选隐藏状态 1.3 隐藏状态 二.从零实现GRU 2.1 初始化模型参数 2.2 定义模型 2.3 训练与预测 2. ...
- 现代循环神经网络-1.门控循环单元(GRU)【动手学深度学习v2】
文章目录 1.门控循环单元(GRU) 1.1 门控隐状态 A.重置门与更新门 B.候选隐状态 C.隐状态 1.2 GRU的实现 A.从零实现 B.简洁实现 1.门控循环单元(GRU) GRU是一个比较 ...
- 【吴恩达deeplearning.ai】Course 5 - 1.9 GRU 单元(门控循环单元)
GRU 单元 (Gated Recurrent Unit (GRU)) 你已经了解了基础的RNN模型的运行机制,在本节视频中你将会学习门控循环单元,它改变了RNN的隐藏层,使其可以更好地捕捉深层连接, ...
最新文章
- 42_ResNet (深度残差网络)---学习笔记
- Ubuntu下用apache+perl搭建最简单的聊天室
- NLP使用Python作为开发语言以及人工智能方面的优势
- 在ArcScene中导入显示自己在SketchUp创建并经过修饰的模型
- 今日芯声 | 连发五个“感恩”,余承东庆祝与鸿蒙OS同一天生日
- 软件测试的四个阶段【单元测试、集成测试、系统测试、验证测试】
- RDPWrap1.6.2让windows家庭版Home实现远程桌面
- 程序员必备的10个B站优质UP主!
- 高数竞赛、数学建模、算法、计算机专业书籍等亲情大甩卖
- 20145322何志威 《信息安全系统设计基础》第2周学习总结
- android 邮箱 推荐,Android邮箱谁最棒?最新热门邮箱App横向测试
- el表达式设置option标签selected
- 德国计算机留学难度,德国留学,真的很难毕业吗?德国留学生的真实感受
- EventBus粘性事件
- 微信小程序实现柱形图与折现图
- 【海子诗全编】序及后记
- Java生鲜电商平台-微服务生鲜电商用户中心的系统设计(小程序/APP)
- mppdb 查看建表语句_内存MPP数据库介绍.pptx
- QT实现浏览器访问网页,使用QWebEngineView
- Vue(总结完毕)2021.1.1 新年快乐