GRU and LSTM
门控循环单元(GRU):
背景:
当时间步数较大或者时间步数较小的时候,循环神经网络的梯度较容易出现衰减或者爆炸。虽然裁剪梯度可以应对梯度爆炸,
但是无法解决梯度衰减的问题。正因为如此,循环神经网络在实际中难以捕捉时间序列中的时间步较大的依赖的关系。门控循环
神经网络的提出,真是为了更好地捕捉时间序列中时间步较大的依赖关系。它通过可以学习的门来控制信息的流动。
重置门和更新门:(修改了循环神经网络中隐藏状态的计算方式)
门控循环单元中的重置门和更新门的输入均为当前时间步输入 Xt 与上一时间步的隐藏状态 Ht-1,输出由激活函数sigmoid函数
的全连接层计算得到。

计算过程:
假设隐藏单元的个数为 h ,给定时间步 t 的小批量输入
,(样本数量为 n ,输入个数为 d )和上一时间步的隐藏状态
,
重置门和更新门的计算如下:

因为sigmiod函数可以将元素的值变换到0和1之间,因此重置门和更新门中的每个元素的值域都是【0,1】
候选隐藏状态:
门控循环单元将计算候选隐藏状态来辅助稍后的隐藏状态的计算。我们将当前时间步的重置门的输出与上一时间步的隐藏状态
做按元素乘法(符号为
)。如果重置门中的元素值接近 0 ,则意味着重置对应隐藏状态元素为 0 ,即丢弃上一时间步的隐藏状态。
如果元素值接近1,那么表示保留上一时步的隐藏状态。然后,将按元素乘法的结果与当前时间步的输入连接,在通过激活函数tanh的
全连接层计算出候选隐藏状态,其所有元素的值域都为【-1,1】

具体的来说,时间步 t 的候选状态
的计算为:

从这个公式可以看出,重置门控制了上一时间步的隐藏状态如何流入当前时间步的候选隐藏状态。而上一时间不的隐藏状态
可能包含了时间序列截止至上一时间步的全部历史信息。因此,重置门可以用来丢弃与预测无关的历史信息。
隐藏状态:
最后时间步 t 的隐藏状态
的计算使用当前时间步的更新门Zt来对上一时间步的隐藏状态 Ht-1 和当前时间步的候选隐藏
状态
做组合:

值得注意的是,更新门可以控制隐藏状态应该如何被包含当前时间步信息的候选隐藏状态所更新,假设更新门在时间步 t‘ 到 t 之间一直近似 1
那么,在时间步 t‘ 到 t 之间的输入信息几乎没有流入时间步 t 的隐藏状态 Ht 。实际上,这可以看作较早时刻的隐藏状态
一直通过时间
并传递至当前时间步 t 。这个设计可以应对循环神经网络中的梯度衰减问题,并更好的捕捉时间序列中时间步距离较大的依赖关系。
总结:
1、重置门有助于捕捉时间序列里短期的依赖关系;
2、更新门有助于捕捉时间序列里长期的依赖关系。
GRU and LSTM的更多相关文章
- Recurrent Neural Network系列4--利用Python,Theano实现GRU或LSTM
yi作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORK ...
- 【pytorch】关于Embedding和GRU、LSTM的使用详解
1. Embedding的使用 pytorch中实现了Embedding,下面是关于Embedding的使用. torch.nn包下的Embedding,作为训练的一层,随模型训练得到适合的词向量. ...
- RNN,GRU,LSTM
2019-08-29 17:17:15 问题描述:比较RNN,GRU,LSTM. 问题求解: 循环神经网络 RNN 传统的RNN是维护了一个隐变量 ht 用来保存序列信息,ht 基于 xt 和 ht- ...
- NLP教程(5) - 语言模型、RNN、GRU与LSTM
作者:韩信子@ShowMeAI 教程地址:http://www.showmeai.tech/tutorials/36 本文地址:http://www.showmeai.tech/article-det ...
- 机器学习(ML)九之GRU、LSTM、深度神经网络、双向循环神经网络
门控循环单元(GRU) 循环神经网络中的梯度计算方法.当时间步数较大或者时间步较小时,循环神经网络的梯度较容易出现衰减或爆炸.虽然裁剪梯度可以应对梯度爆炸,但无法解决梯度衰减的问题.通常由于这个原因, ...
- GRU和LSTM比较
比较: https://www.jianshu.com/p/3774d46b665e https://blog.csdn.net/sinat_33741547/article/details/8282 ...
- TensorFlow之RNN:堆叠RNN、LSTM、GRU及双向LSTM
RNN(Recurrent Neural Networks,循环神经网络)是一种具有短期记忆能力的神经网络模型,可以处理任意长度的序列,在自然语言处理中的应用非常广泛,比如机器翻译.文本生成.问答系统 ...
- 循环神经网络之LSTM和GRU
看了一些LSTM的博客,都推荐看colah写的博客<Understanding LSTM Networks> 来学习LSTM,我也找来看了,写得还是比较好懂的,它把LSTM的工作流程从输入 ...
- 第二十一节,使用TensorFlow实现LSTM和GRU网络
本节主要介绍在TensorFlow中实现LSTM以及GRU网络. 一 LSTM网络 Long Short Term 网络—— 一般就叫做 LSTM ——是一种 RNN 特殊的类型,可以学习长期依赖信息 ...
随机推荐
- javascript自制函数图像生成器
出于某种目的想做这个东西,顺便可以提供给GMA的用户&&放在博客园. 实现上只是简单的描点,加上一个相邻两点连线的开关,完全没有技术含量.而且函数图像一旦多起来就会变卡. 瓶颈在隐函数 ...
- Reward List 赏金列表
博主昨晚正在刷题,突然手机语音大声提示“微信支付收款到账”,把博主吓了一跳,打开一看,居然收到了第一笔打赏,还是博主最喜欢的数字,老开心了-感谢网友对于博主工作的认可与支持,多谢多谢!不管大家是物质打 ...
- 在循环中如何取input的值和增加点击事件
{volist name="dianpu" id="dianpu"} <input style="border: none;" rea ...
- 将整数m的各位数字保存到数组A中
import java.util.Scanner; /** * @author:(LiberHome) * @date:Created in 2019/3/4 20:10 * @description ...
- 2019.4.1 JMeter中文乱码解决方案
1)添加一个HTTP信息头管理器:添加Accept:application/xml;application/json;charset=utf-8 2)参数为中文:在HTTP请求时设置编码格式为utf- ...
- 关于vue页面多了之后,webpack热更新速度慢的解决办法
vue项目大了之后,每次热更新都要10多秒的时间, 网上找了一大堆发现一个有用的办法 "env": { "development":{ "plugin ...
- LeetCode 871 - 最低加油次数 - [贪心+优先队列]
汽车从起点出发驶向目的地,该目的地位于出发位置东面 target 英里处. 沿途有加油站,每个 station[i] 代表一个加油站,它位于出发位置东面 station[i][0] 英里处,并且有 s ...
- Homework 7 INF 552
Homework 7 INF 552,1. Generative Models for Text(a) In this problem, we are trying to build a genera ...
- 2018-2019-2 《网络对抗技术》Exp0 Kali安装 Week1 20165317
第一周作业 Kali的安装 Kali的下载 从kali官网下载kali-linux 64-bit 版本. Kali的安装 由于在娄老师的课上使用virtualbox, 所以我习惯性使用virtual ...
- Docker入门级简单的操作命令
在理解 Docker 之前,首先得先区分清楚两个概念,容器和虚拟机. 虚拟机都需要有自己的操作系统,虚拟机一旦被开启,预分配给它的资源将全部被占用. 容器技术是和我们的宿主机共享硬件资源及操作系统,可 ...