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的简单理解相关推荐

  1. 基于RNN,LSTM,GRU对黄金期货的时间序列研究

    目录 一. 背景介绍 二. 原理介绍 2.1模型原理 RNN模型介绍 2.LSTM模型介绍 三. 实验论证 3.1 数据预处理 3.2 模型的评价指标 3.3 实验模型设置 3.4 实验数据和超参数设 ...

  2. 彻底看懂RNN,LSTM,GRU,用数学原理解释梯度消失或者梯度爆炸

    Recurrent Neutral Network 章节 RNN概述 LSTM GRU 梯度困区 Seq2Seq模型 何去何从 模型之外 RNN概述 为什么它叫做递归神经网络呢?与其他网络有何不同?接 ...

  3. RNN LSTM GRU 代码实战 ---- 简单的文本生成任务

    RNN LSTM GRU 代码实战 ---- 简单的文本生成任务 import torch if torch.cuda.is_available():# Tell PyTorch to use the ...

  4. 理解RNN、LSTM、GRU和Gradient Vanishing

    最近在学习cs224n: Natural Language Processing with Deep Learning课程时,对RNN.LSTM和GRU的原理有了更深一层的理解,对LSTM和GRU如何 ...

  5. RNN,LSTM,GRU的理解

    RNN x 为当前状态下数据的输入, h 表示接收到的上一个节点的输入. y为当前节点状态下的输出,而h′h^\primeh′为传递到下一个节点的输出. LSTM #定义网络 lstm = nn.LS ...

  6. [PyTorch] rnn,lstm,gru中输入输出维度

    本文中的RNN泛指LSTM,GRU等等 CNN中和RNN中batchSize的默认位置是不同的. CNN中:batchsize的位置是position 0. RNN中:batchsize的位置是pos ...

  7. 三次简化一张图:一招理解LSTM/GRU门控机制

    机器之心专栏 作者:张皓 RNN 在处理时序数据时十分成功.但是,对 RNN 及其变种 LSTM 和 GRU 结构的理解仍然是一个困难的任务.本文介绍一种理解 LSTM 和 GRU 的简单通用的方法. ...

  8. RNN、LSTM、GRU的原理和实现

    个人博客:http://www.chenjianqu.com/ 原文链接:http://www.chenjianqu.com/show-41.html 用python实现了经典的RNN,LSTM和GR ...

  9. 深度学习之RNN、LSTM、GRU篇

    写在前面,作为RNN篇学习的记录 参考1:https://blog.csdn.net/mpk_no1/article/details/72875185 参考2:https://blog.csdn.ne ...

最新文章

  1. python制作图形化小游戏_创意编程|Python的GUI简易界面设计测测你的反应力
  2. 【OH】Oracle软件安装需要的软件包(官方文档)
  3. docker images 详解
  4. 基于ffmpeg和libvlc的视频剪辑、播放器
  5. sts 创建webservice项目_常用的RPC架构---WebService
  6. mysql 最近_关于mysql查询最近一条记录
  7. Spring MVC 原理 - DispatcherServlet调用完整过程
  8. Python:如何获取一个用户名的组ID
  9. IDM下载百度资源出现403的解决方法
  10. SHELL中获取函数返回值
  11. 2018年蓝桥杯省赛 明码
  12. Andorid11 暗码启动应用(一)
  13. 【牛客】CPU的运算速度与许多因素有关,下面______是提高速度的有效措施?
  14. Alphabetic Removals
  15. Win10鼠标右键菜单选项提示找不到应用程序解决方法
  16. 强烈推荐,建议收藏,Java经典书籍汇总!分享Java那些口口相传的好书籍
  17. 4000倍的资本效率提升,Uniswap V3 将如何实现?
  18. 字号、pt、px、inch、cm 之间的关系及对照表
  19. Oracle-DDL语句详解
  20. 【C语言】打印出一箭穿心图案(简单版)----gotoxy函数

热门文章

  1. jenkins~管道Pipeline里使用公用类库
  2. MyBatis多对多关联查询示例——MyBatis学习笔记之十八
  3. phpStorm如何用FTP,SSH连接到虚拟机linux系统?
  4. 电脑知识--Windows一片
  5. JQeury form插件的ajaxForm方法和ajaxSubmit方法的区别
  6. 回头看医疗行业信息化,怎一个乱字了得
  7. android 安全讲座第三层 linux权限基础知识
  8. 何洁音乐会今晚开唱 大手笔打造pure show
  9. awesome docsify learning notes
  10. formal method lecture 2: propositional logic