什么是RNN网络?

RNNs背后的主要目的是要使用序列本身的顺序信息。在传统的神经网络里,我们假设输入(输出)是条件独立的。但是,在许多任务里,这是个非常非常差的假设。如果你想预测一个序列中的下一个单词是什么,你最好知道它的前一个词是什么。RNNs被叫做循环神经网络是因为它对于序列中的每个元素都做相同的操作,输出会依赖于之前的计算。用另一种说法,RNNs拥有了一个能捕获到目前为止所有计算的结果的记忆单元。从理论上讲,RNNs能使用任意长度的序列信息,但是,在实践中RNNs被限制到只能回溯几步(稍后再讨论这个问题)。下面是一个典型的RNN。

\[A recurrent neural network and the unfolding in time of the computation involved in its forward\\computation. Source: Nature\]

上面的示意图展示了一个RNN展开为整个网络时的样子。通过展开图,我们简单的认为我们写出了全完序列的网络结构。举个例子,如果我们关心的序列是由5个词组成的句子,网络将被展开为一个5层的神经网络,每层表示一个词。计算RNN时的公式如下。

  • \(x_t\) 是第\(t\) 步时间下的输入。举个例子,\(x_1\) 可以是一个one-hot 编码的向量,相当于句子的第二个词。
  • \(x_t\) 第\(t\)步的隐藏状态,\(s_t\)是基于之前的隐藏状态和当前输入计算出来的:\(s_t=f(Ux_t + Ws_{t-1})\),f通常是一个非线性函数,例如:ReLU函数。\(s_{t-1}\)是需要计算的第一个隐藏状态,通常全部初始化为0.
  • \(o_t\)是第\(t\)步的输出。例如:如果我们想预测一个句子中的下一个词是什么,\(o_t\)将会是一个关于我们词典的概率向量。\(o_t=\mathrm{softmax}(Vs_t)\)

这里还有一些需要注意的点:

  • 你可以把隐藏状态\(s_t\)当做是网络的记忆单元。\(s_t\)捕获了当前步之前所产生的信息。输出\(o_t\)只是根据第\(t\)步的记忆单元来计算。如上面简要提到的,在实践是它(记忆单元)是比较复杂的,因为\(s_t\)通常无法捕获到很多步之前的信息。
  • RNN不像每层都使用不同参数的传统神经网络,RNN所有步共享相同的参数(上面的 U,V,W)。这反映了一个事实,每一步我们都做同样的任务,只有输入不同。这大大减少了我们需要学习的参数数量。
  • 上面的示意图每个步骤均有输出,但对于一些任务来说,这个也许不是必要的。例如,当我们预测一个句子的情感的时候,我们可能只关注最后的输出,而不是每个词的情感。相似的,我们也不需要在每个步骤都有输入。RNN的主要特征是捕获了一个序列一些信息的隐藏状态。

RNNs 能做什么?

RNNs 在很多自然语言处理的任务中取得了很大成功。在此刻我要提醒你,最常使用的RNNs是LSTMs,LSTMs相比于普通的RNNs能更好的捕获到长距离依赖。但是不要担心,LSTMs大体上与我们将要在这个课上开发的RNN是一样的,LSTMs只是用一个不同的方法来计算隐藏状态。我们在之后会发文中会包含LSTMs细节。下面是一些RNN在自然语言处理上的应用的例子。

未完待续。。。

本文是翻译自wildml的一篇RNN导读文章。本人英语水平有限,仅共参考学习。

RNNs的更多相关文章

  1. 开始学习深度学习和循环神经网络Some starting points for deep learning and RNNs

    Bengio, LeCun, Jordan, Hinton, Schmidhuber, Ng, de Freitas and OpenAI have done reddit AMA's.  These ...

  2. RNNs在股票价格预测的应用

    RNNs在股票价格预测的应用 前言 RNN和LSTMs在时态数据上表现特别好,这就是为什么他们在语音识别上是有效的.我们通过前25天的开高收低价格,去预测下一时刻的前收盘价.每个时间序列通过一个高斯分 ...

  3. PP: Shallow RNNs: a method for accurate time-series classification on tiny devices

    Problem: time series classification shallow RNNs: the first layer splits the input sequence and runs ...

  4. Recurrent Neural Network系列1--RNN(循环神经网络)概述

    作者:zhbzz2007 出处:http://www.cnblogs.com/zhbzz2007 欢迎转载,也请保留这段声明.谢谢! 本文翻译自 RECURRENT NEURAL NETWORKS T ...

  5. CNN for NLP (CS224D)

    斯坦福课程CS224d: Deep Learning for Natural Language Processing lecture13:Convolutional neural networks - ...

  6. (转)The Neural Network Zoo

    转自:http://www.asimovinstitute.org/neural-network-zoo/ THE NEURAL NETWORK ZOO POSTED ON SEPTEMBER 14, ...

  7. (转)LSTM NEURAL NETWORK FOR TIME SERIES PREDICTION

    LSTM NEURAL NETWORK FOR TIME SERIES PREDICTION Wed 21st Dec 2016   Neural Networks these days are th ...

  8. (译) Conditional Variational Autoencoders 条件式变换自编码机

    Conditional Variational Autoencoders --- 条件式变换自编码机 Goal of a Variational Autoencoder: 一个 VAE(variati ...

  9. RNN 入门教程 Part 4 – 实现 RNN-LSTM 和 GRU 模型

    转载 - Recurrent Neural Network Tutorial, Part 4 – Implementing a GRU/LSTM RNN with Python and Theano ...

随机推荐

  1. Application应用程序级变量

    对于每一个网站访问用户都要访问的变量,应该将它设为________变量.(选择1项) A. Session B. Reques C. Response D. Application 解答:D

  2. ThinkPHP整合cropper剪裁图片上传功能

    1.先下载核心文件:https://github.com/fengyuanchen/cropper 2. 3.对于index.html文件 4.对于main.js文件 5.对于crop.php文件 & ...

  3. 基于docker部署的微服务架构(四): 配置中心

    原文:http://www.jianshu.com/p/b17d65934b58%20 前言 在微服务架构中,由于服务数量众多,如果使用传统的配置文件管理方式,配置文件分散在各个项目中,不易于集中管理 ...

  4. Machine Learning With Spark学习笔记(在10万电影数据上训练、使用推荐模型)

    我们如今開始训练模型,还输入參数例如以下: rank:ALS中因子的个数.通常来说越大越好,可是对内存占用率有直接影响,通常rank在10到200之间. iterations:迭代次数,每次迭代都会降 ...

  5. C++之异常处理

     C++ Code  12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 ...

  6. JBPM4.4_工作流基础_准备jBPM4.4环境

    1. 工作流基础 1.1. 工作流相关概念 工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档.信息或任 ...

  7. 关东升的《从零开始学Swift》3月9日已经上架

    大家一直期盼的<从零开始学Swift>于3月9日已经上架,它是关东升老师历时8个月的呕心沥血所编著,全书600多页,此本书基于Swift 2.x,通过大量案例全面介绍苹果平台的应用开发.全 ...

  8. 类似hibernate实现sql增删改错

    Util package utils; import java.lang.reflect.Method; import java.util.ArrayList; import java.util.Ha ...

  9. poj1179 Polygon【区间DP】

    Polygon Time Limit: 1000MS   Memory Limit: 10000K Total Submissions:6633   Accepted: 2834 Descriptio ...

  10. 浏览器加载不上css,样式走丢

    来自:http://www.cnblogs.com/crizygo/p/5466444.html 问题描述:使用eclipse修改样式文件,浏览器的页面一时显示一时不显示,最后直接没有加载最新的css ...