RNN和LSTM、GRU的简单理解
RNN循环神经网络,recurrent neural networks
1,RNNs已经在众多自然语言处理(Natural Language Processing, NLP)中取得了巨大成功以及广泛应用,如语言模型与文本生成,机器翻译,语音识别,
2,RNNs的目的是用来处理序列数据,RNN中一个序列当前的输出与前面时刻的输出也有关(结合前面的状态、当前的记忆与当前的输入)。具体的表现形式为RNN网络会对前面的信息进行记忆并应用于当前输出的计算中。传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的
3,RNN的训练:
在使用梯度下降算法中,每一步的输出不仅依赖当前步的网络,并且还依赖前面若干步网络的状态
该学习算法称为Backpropagation Through Time (BPTT)
BPTT无法解决长时依赖问题(即当前的输出与前面很长的一段序列有关,一般超过十步就无能为力了),因为BPTT会带来所谓的梯度消失或梯度爆炸问题(the vanishing/exploding gradient problem),,
梯度爆炸相对比较好处理,可以用梯度裁剪(gradientclipping)来解决
vanilla RNN是最简单循环神经网络
4,LSTM Netwoorks
4.1 LSTM目前非常流行。它与一般的RNNs结构本质上并没有什么不同,只是使用了不同的函数去计算隐藏层的状态。
4.2 在LSTMs中,记忆结构被称为cells,可以把cells看作是黑盒用以保存当前输入之前保存的状态,结合前面的状态、当前的记忆与当前的输入
4.3 LSTM 有通过精心设计的称作为“门”的结构来去除或者增加信息到达细胞状态的能力。门是一种让信息选择式通过的方法。他们包含一个 sigmoid 神经网络层和一个 pointwise 乘法操作
Sigmoid 层输出 0 到 1 之间的数值,描述每个部分有多少量可以通过。0 代表“不许任何量通过”,1 就指“允许任意量通过”
4.4 LSTM 拥有三个门,来保护和控制细胞状态
忘记门:将细胞状态中的信息选择性的遗忘 ,回到语言模型的例子中来基于已经看到的预测下一个词。在这个问题中,细胞状态可能包含当前主语的类别,因此正确的代词可以被选择出来。当我们看到新的主语,我们希望忘记旧的主语。
输入层门:将新的信息选择性的记录到细胞状态中 .希望增加新的主语的类别到细胞状态中,来替代旧的需要忘记的主语。 他今天有事,所以我。。。。当处理到‘’我‘’这个词的时候,就会把主语我更新到细胞中去。
输出层门:
从记忆单元ct产生隐层单元ht(下一层),ct可能包含了很多对ht无用的信息,ot的作用就是判断ct中哪些部分是对ht有用的,哪些部分是无用的
5,Gated Recurrent Unit (GRU)
GRUs就是lstm的一个变体,它将忘记门和输入门合成了一个单一的 更新门。同样还混合了细胞状态和隐藏状态,和其他一些改动。最终的模型比标准的 LSTM 模型要简单,也是非常流行的变体。
它也是一般的RNNs的改良版本,主要是从以下两个方面进行改进。一是,序列中不同的位置处的单词(已单词举例)对当前的隐藏层的状态的影响不同,越前面的影响越小,即每个前面状态对当前的影响进行了距离加权,距离越远,权值越小。二是,在产生误差error时,误差可能是由某一个或者几个单词而引发的,所以应当仅仅对对应的单词weight进行更新
6,LSTMs与GRUs的区别
newmemory的计算方法都是根据之前的state及input进行计算,但是GRUs中有一个reset gate控制之前state的进入量,而在LSTMs里没有这个gate;
产生新的state的方式不同,LSTMs有两个不同的gate,分别是forget gate (f gate)和input gate(i gate),而GRUs只有一个update gate(z gate);
LSTMs对新产生的state又一个output gate(o gate)可以调节大小,而GRUs直接输出无任何调节。
RNN和LSTM、GRU的简单理解相关推荐
- 基于RNN,LSTM,GRU对黄金期货的时间序列研究
目录 一. 背景介绍 二. 原理介绍 2.1模型原理 RNN模型介绍 2.LSTM模型介绍 三. 实验论证 3.1 数据预处理 3.2 模型的评价指标 3.3 实验模型设置 3.4 实验数据和超参数设 ...
- 彻底看懂RNN,LSTM,GRU,用数学原理解释梯度消失或者梯度爆炸
Recurrent Neutral Network 章节 RNN概述 LSTM GRU 梯度困区 Seq2Seq模型 何去何从 模型之外 RNN概述 为什么它叫做递归神经网络呢?与其他网络有何不同?接 ...
- RNN LSTM GRU 代码实战 ---- 简单的文本生成任务
RNN LSTM GRU 代码实战 ---- 简单的文本生成任务 import torch if torch.cuda.is_available():# Tell PyTorch to use the ...
- 理解RNN、LSTM、GRU和Gradient Vanishing
最近在学习cs224n: Natural Language Processing with Deep Learning课程时,对RNN.LSTM和GRU的原理有了更深一层的理解,对LSTM和GRU如何 ...
- RNN,LSTM,GRU的理解
RNN x 为当前状态下数据的输入, h 表示接收到的上一个节点的输入. y为当前节点状态下的输出,而h′h^\primeh′为传递到下一个节点的输出. LSTM #定义网络 lstm = nn.LS ...
- [PyTorch] rnn,lstm,gru中输入输出维度
本文中的RNN泛指LSTM,GRU等等 CNN中和RNN中batchSize的默认位置是不同的. CNN中:batchsize的位置是position 0. RNN中:batchsize的位置是pos ...
- 三次简化一张图:一招理解LSTM/GRU门控机制
机器之心专栏 作者:张皓 RNN 在处理时序数据时十分成功.但是,对 RNN 及其变种 LSTM 和 GRU 结构的理解仍然是一个困难的任务.本文介绍一种理解 LSTM 和 GRU 的简单通用的方法. ...
- RNN、LSTM、GRU的原理和实现
个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-41.html 用python实现了经典的RNN,LSTM和GR ...
- 深度学习之RNN、LSTM、GRU篇
写在前面,作为RNN篇学习的记录 参考1:https://blog.csdn.net/mpk_no1/article/details/72875185 参考2:https://blog.csdn.ne ...
最新文章
- python制作图形化小游戏_创意编程|Python的GUI简易界面设计测测你的反应力
- 【OH】Oracle软件安装需要的软件包(官方文档)
- docker images 详解
- 基于ffmpeg和libvlc的视频剪辑、播放器
- sts 创建webservice项目_常用的RPC架构---WebService
- mysql 最近_关于mysql查询最近一条记录
- Spring MVC 原理 - DispatcherServlet调用完整过程
- Python:如何获取一个用户名的组ID
- IDM下载百度资源出现403的解决方法
- SHELL中获取函数返回值
- 2018年蓝桥杯省赛 明码
- Andorid11 暗码启动应用(一)
- 【牛客】CPU的运算速度与许多因素有关,下面______是提高速度的有效措施?
- Alphabetic Removals
- Win10鼠标右键菜单选项提示找不到应用程序解决方法
- 强烈推荐,建议收藏,Java经典书籍汇总!分享Java那些口口相传的好书籍
- 4000倍的资本效率提升,Uniswap V3 将如何实现?
- 字号、pt、px、inch、cm 之间的关系及对照表
- Oracle-DDL语句详解
- 【C语言】打印出一箭穿心图案(简单版)----gotoxy函数
热门文章
- jenkins~管道Pipeline里使用公用类库
- MyBatis多对多关联查询示例——MyBatis学习笔记之十八
- phpStorm如何用FTP,SSH连接到虚拟机linux系统?
- 电脑知识--Windows一片
- JQeury form插件的ajaxForm方法和ajaxSubmit方法的区别
- 回头看医疗行业信息化,怎一个乱字了得
- android 安全讲座第三层 linux权限基础知识
- 何洁音乐会今晚开唱 大手笔打造pure show
- awesome docsify learning notes
- formal method lecture 2: propositional logic