图解RNN

作者: 不会停的蜗牛 | 来源:发表于2016-10-06 11:16 被阅读3443次

    参考视频

    RNN-Recurrent Neural Networks


    本文结构:

    什么是 Recurrent Neural Networks ?
    Recurrent Neural Networks 的优点和应用?
    训练 Recurrent Neural Networks 的问题?
    如何解决?
    何时用 RNN 何时用前馈网络呢?


    什么是 Recurrent Neural Networks ?

    普通的前馈神经网络模型,它的结构是信号以一个方向从输入走到输出,一次走一层。

    在 RNN 中,前一时刻的输出会和下一时刻的输入一起传递下去。
    可以把这个过程看成是一个随着时间推移的流。
    在这里显示的是四个时间点,在t=1的时候,网络取到t=0的时候的输出,并且将它和下一个输入一起发送回给网络。

    Recurrent Neural Networks 的优点和应用?

    和前馈神经网络不同,RNN 可以接收一系列的数据作为输入,而且也可以返回一系列的值作为输出。这种可以处理序列化数据的功能,使得这个网络得以非常广泛的应用。

    当输入是一个的时候,输出是一个序列的时候,这可以用于 image captioning (让计算机用一句话来描述这张图片)。

    输入是一个序列,输出是1个数据的时候,这个模型可以被用来分类。

    当输入是一个序列,输出也是一个序列的时候,可以用来对视频一帧一帧的分类。

    当引入时间延迟的时候,就可以用于供应链计划里的需求预测。

    当把几个RNN堆起来时,得到的这个新的网络就可以输出比单独一个RNN更为复杂的结果。

    Paste_Image.png

    训练 Recurrent Neural Networks 的问题?

    RNN 是很难被训练的,训练的时候也使用 Back Propagation,所以这也存在着梯度消失的问题,而且这个梯度消失的问题会是指数级别的。

    原因就是,RNN的每个时间点,就相当于一个前馈神经网络的整个层,
    所以训练100步的模型就相当于训练一个100层的前馈网络。
    这就造成了随着时间的推移,梯度会以指数级的速度减小,进而造成信息的衰变。

    如何解决?

    有很多方式可以解决这个问题,其中之一就是 Gating。

    这个技术的好处就是它可以决定,什么时候需要忘记当前的输入,什么时候需要记住它,以便将来的步骤里会用到它。

    今天最流行的 Gating 就是 LSTM 和 GRU。

    当然也有一些其他的方法 Gradient clipping, Better optimizer, Steeper Gates。

    训练神经网络的时候用 GPU 要比用 CPU 好。
    研究表明,用 GPU 训练会比 CPU 训练快250倍。(现在可能更快了)
    这就是一天和八个月的区别。

    何时用 RNN 何时用前馈网络呢?

    前馈神经网络,它会输出一个数据,可以用来做分类或者回归。
    RNN 适合时间序列的数据,它的输出可以是一个序列值或者一序列的值。
    所以说,如果要做分类或者回归的话,可以用前馈是神经网络,如果要预测的话,可以用循环神经网络。


    历史技术博文链接汇总

    我是 不会停的蜗牛 Alice
    85后全职主妇
    喜欢人工智能,行动派
    创造力,思考力,学习力提升修炼进行中
    欢迎您的喜欢,关注和评论!

    相关文章

      网友评论

        本文标题:图解RNN

        本文链接:https://www.haomeiwen.com/subject/gwdeyttx.html