循环神经网络导读

循环神经网络导读

循环神经网络(Recurrent Neural Network)是一类以序列数据为输入,在序列的演进方向进行递归且所有节点(循环单元)按链式连接的递归神经网络。其中双向循环神经网络(Bidirectional RNN, Bi-RNN)和长短期记忆网络(Long Short-Term Memory networks,LSTM)是常见的的循环神经网络。今天,小编带你认识常见的几种循环神经网络模型,主要内容来自Colah的博客,外加一些自己的总结,一起来学习吧~

循环神经网络 RNNs

在阅读或思考的过程中,人类常常结合以前的信息得到结果。但是,普通的神经网络并不能做到这一点。这或许便是传统神经网络的主要缺点。循环神经网络可以做到这一点,通过循环,循环神经网络将当前步所学习到的信息传递下去,从而学会像人一样进行思考。

上图即是循环神经网络的一个示例。可以看到,同普通的神经网络相似,其同样具有输入输出层以及隐层。但是,循环神经网络会结合当前步的输入 以及上一步网络所给出的 hidden state , 计算出当前时间步的 ,并将作为输入输出到下一时间步的循环神经网络之中。同时,网络的其他部分会根据当前的状态计算出当前步的输出.

给出计算公式为:

为了便于理解,我们可以将循环神经网络视作一系列共享权值的网络,并将其展开。

展开之后,可以感觉到循环神经网络似乎天然与序列有某种联系,似乎循环神经网络就是为了序列而出现的。

LSTMs

但是,RNN 仍然具有其局限性。很多时候,人类做出推理时仅需根据最新得到的信息即可得到结果。然而,不可避免的是,有些推理可能需要较长时间以前的信息进行辅助。

在这种情况之下,RNN对于要学习的东西便无能为力了。理论上,RNN 是可以学习到这样的长时依赖的。然而,RNN 并没有在时间上学习到这种长时依赖。因而,在RNN 的基础上提出了LSTM, 用以学习这种情况。LSTM 被设计解决上文所述的长时依赖问题,但是,在实际中,记住信息似乎是LSTM的本能,而不是挣扎着学会的能力。

    LSTMs 全称:Long Short Term Memory networks, 是一种特殊的 RNN 网络,能够学习到序列问题中的长时依赖。同普通的RNN 相似,LSTM同样是链式的结构。相较于RNN, LSTM的重复单元发生了变化。LSTM 的隐层不在只是简简单单的一层,而是通过特殊方式联结在一起的4层隐层。

首先需要谈到的是LSTMs 的Core Idea之一cell state. Cell State 就像传送带一样,穿越整个链式网络,仅仅存在少量的线性互动。这使得信息非常容易从网络的浅层传递到网络的深层。

其次需要谈到的是LSTMs 网络中的门gates. 正是通过一些特定门的实现,LSTMs 才能实现对 Cell State 进行修改。

  1. 首先需要决定遗忘 中多少的内容,通过sigmoid 层计算遗忘门

  2. 接下来向cell state中加入当前步所学习到的内容,这将分为两部分:一是通过 sigmoid 层计算输入门, 二是通过 tanh 层计算候选cell state . 接下来便是结合遗忘门与输入门,得到新的cell state 

  3. 最终,我们需要决定输出的内容,通过学习输出门 决定接下来需要输出的内容。

LSTMs 的变种

第二节中介绍的 LSTMs 是普通的LSTM. 并不是所有的LSTM 结构均如上所述。 事实上,很多论文中提到的 LSTM 架构会有一些小小的差异。下面是几种LSTM的变体:

  • 添加了 peephole connections 的 LSTM:

这种 LSTM在计算遗忘、输入、输出门时,将cell state 添加到考虑之中。

  • 遗忘门和输入门互补的 LSTM:

该版本中,遗忘门与输入门的和为1,因而只需计算遗忘门即可,无需再次计算和学习输入门。

  • Gated Recurrent Unit, GRU:

GRU 舍弃了遗忘门和输入门,将其合并为一个更新门。并且,GRU同样合并了cell state 和hidden state, 以及一些其它的变化。相较于普通的LSTMs, GRU更加简单,并且也逐渐流行起来

公众号ID:gakki0103希望大家多多支持我的公众号,扫码关注,我们一起学习,一起进步~

原文地址:https://www.cnblogs.com/PJQOOO/p/11730537.html

时间: 2024-07-30 07:09:02

循环神经网络导读的相关文章

循环神经网络(RNN)模型与前向反向传播算法

在前面我们讲到了DNN,以及DNN的特例CNN的模型和前向反向传播算法,这些算法都是前向反馈的,模型的输出和模型本身没有关联关系.今天我们就讨论另一类输出和模型间有反馈的神经网络:循环神经网络(Recurrent Neural Networks ,以下简称RNN),它广泛的用于自然语言处理中的语音识别,手写书别以及机器翻译等领域. 1. RNN概述 在前面讲到的DNN和CNN中,训练样本的输入和输出是比较的确定的.但是有一类问题DNN和CNN不好解决,就是训练样本输入是连续的序列,且序列的长短不

循环神经网络RNN公式推导走读

0语言模型-N-Gram 语言模型就是给定句子前面部分,预测后面缺失部分 eg.我昨天上学迟到了,老师批评了____. N-Gram模型: ,对一句话切词 我 昨天 上学 迟到 了 ,老师 批评 了 ____. 2-N-Gram 会在语料库中找 了 后面最可能的词: 3-N-Gram 会在预料库中找 批评了 后面最可能的词: 4-N-Gram 的内存耗费就非常巨大了(语料库中保存所有的四个词的预料组合). 1.1单向循环神经网络 一个单隐层结构示意图: 参数:输入到隐层的权重U.隐层到输出的权重

TensorFlow框架(6)之RNN循环神经网络详解

1. RNN循环神经网络 1.1 结构 循环神经网络(recurrent neural network,RNN)源自于1982年由Saratha Sathasivam 提出的霍普菲尔德网络.RNN的主要用途是处理和预测序列数据.全连接的前馈神经网络和卷积神经网络模型中,网络结构都是从输入层到隐藏层再到输出层,层与层之间是全连接或部分连接的,但每层之间的节点是无连接的. 图 11 RNN-rolled 如图 11所示是一个典型的循环神经网络.对于循环神经网络,一个非常重要的概念就是时刻.循环神经网

theano学习指南--词向量的循环神经网络(翻译)

欢迎fork我的github:https://github.com/zhaoyu611/DeepLearningTutorialForChinese 最近在学习Git,所以正好趁这个机会,把学习到的知识实践一下~ 看完DeepLearning的原理,有了大体的了解,但是对于theano的代码,还是自己撸一遍印象更深 所以照着deeplearning.net上的代码,重新写了一遍,注释部分是原文翻译和自己的理解. 感兴趣的小伙伴可以一起完成这个工作哦~ 有问题欢迎联系我 Email: [email

《转》循环神经网络(RNN, Recurrent Neural Networks)学习笔记:基础理论

转自 http://blog.csdn.net/xingzhedai/article/details/53144126 更多参考:http://blog.csdn.net/mafeiyu80/article/details/51446558 http://blog.csdn.net/caimouse/article/details/70225998 http://kubicode.me/2017/05/15/Deep%20Learning/Understanding-about-RNN/ RNN

84、循环神经网络实现语言模型

''' Created on 2017年5月13日 @author: weizhen ''' import numpy as np import tensorflow as tf import ptb_iterator as reader from tensorflow.contrib import rnn DATA_PATH = "/path/to/ptb/data" # 数据存放的路径 HIDDEN_SIZE = 200 # 隐藏层的规模 NUM_LAYERS = 2 # 深层循环

循环神经网络

循环神经网络 作者:樱花猪 摘要: 本文为七月算法(julyedu.com)12月机器学习第二十次课在线笔记. 多层反馈RNN(Recurrent neural Network.循环神经网络)神经网络是一种节点定向连接成环的人工神经网络.这种网络的内部状态可以展示动态时序行为.不同于前馈神经网络的是,RNN可以利用它内部的记忆来处理任意时序的输入序列,这让它可以更容易处理如不分段的手写识别.语音识别等. 引言:   循环神经网络的目的使用来处理序列数据.在传统的神经网络模型中,是从输入层到隐含层

CNN(卷积神经网络)、RNN(循环神经网络)、DNN(深度神经网络)

CNN(卷积神经网络).RNN(循环神经网络).DNN(深度神经网络)的内部网络结构有什么区别? DNN以神经网络为载体,重在深度,可以说是一个统称.RNN,回归型网络,用于序列数据,并且有了一定的记忆效应,辅之以lstm.CNN应该侧重空间映射,图像数据尤为贴合此场景. DNN以神经网络为载体,重在深度,可以说是一个统称.RNN,回归型网络,用于序列数据,并且有了一定的记忆效应,辅之以lstm.CNN应该侧重空间映射,图像数据尤为贴合此场景. Stanford University CS231

Recurrent Neural Network(循环神经网络)

Reference:   Alex Graves的[Supervised Sequence Labelling with RecurrentNeural Networks] Alex是RNN最著名变种,LSTM发明者Jürgen Schmidhuber的高徒,现加入University of Toronto,拜师Hinton. 统计语言模型与序列学习 1.1 基于频数统计的语言模型 NLP领域最著名的语言模型莫过于N-Gram. 它基于马尔可夫假设,当然,这是一个2-Gram(Bi-Gram)模