zoukankan      html  css  js  c++  java
  • 循环神经网络导读

    循环神经网络导读

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

    循环神经网络 RNNs

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

    image.png

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

    给出计算公式为:

     

    image.png

     

    image.png

     

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

    image.png

     

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

     

    LSTMs

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

    image.png

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

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

    image.png

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

    image.png

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

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

      image.png

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

      image.png

    3. image.png

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

      image.png

    LSTMs 的变种

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

    • 添加了 peephole connections 的 LSTM:

    image.png

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

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

    image.png    

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

    • Gated Recurrent Unit, GRU: 

    image.png

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

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

  • 相关阅读:
    mapreduce框架详解【转载】
    Hadoop的基本命令【转载】
    mininet实验 设置带宽之简单性能测试
    Opendarlight Carbon 安装
    mininet实验 测量路径损耗率
    Controller与Switch建立连接
    OpenFlow协议
    Controller控制器
    进击的SDN
    SDN前瞻 传统网络的缺陷
  • 原文地址:https://www.cnblogs.com/PJQOOO/p/11730537.html
Copyright © 2011-2022 走看看