码迷,mamicode.com
首页 > 其他好文 > 详细

深度学习之GRU网络

时间:2018-07-27 10:50:57      阅读:662      评论:0      收藏:0      [点我收藏+]

标签:训练   blank   src   深度   log   wan   丢失   控制   记忆   

1、GRU概述

  GRU是LSTM网络的一种效果很好的变体,它较LSTM网络的结构更加简单,而且效果也很好,因此也是当前非常流形的一种网络。GRU既然是LSTM的变体,因此也是可以解决RNN网络中的长依赖问题。

  在LSTM中引入了三个门函数:输入门、遗忘门和输出门来控制输入值、记忆值和输出值。而在GRU模型中只有两个门:分别是更新门和重置门。具体结构如下图所示:

    技术分享图片

  图中的zt和rt分别表示更新门和重置门。更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门的值越大说明前一时刻的状态信息带入越多。重置门用于控制忽略前一时刻的状态信息的程度,重置门的值越小说明忽略得越多。

 

2、GRU前向传播

  根据上面的GRU的模型图,我们来看看网络的前向传播公式:

    技术分享图片

    技术分享图片

    技术分享图片

    技术分享图片

    技术分享图片

  其中[]表示两个向量相连,*表示矩阵的乘积。

 

3、GRU的训练过程

  从前向传播过程中的公式可以看出要学习的参数有Wr、Wz、Wh、Wo。其中前三个参数都是拼接的(因为后先的向量也是拼接的),所以在训练的过程中需要将他们分割出来:

    技术分享图片

    技术分享图片

    技术分享图片

  输出层的输入:

    技术分享图片

  输出层的输出:

    技术分享图片

  在得到最终的输出后,就可以写出网络传递的损失,单个样本某时刻的损失为:

    技术分享图片

  则单个样本的在所有时刻的损失为:

    技术分享图片

  采用后向误差传播算法来学习网络,所以先得求损失函数对各参数的偏导(总共有7个):

    技术分享图片

    技术分享图片

    技术分享图片

    技术分享图片

    技术分享图片

    技术分享图片

    技术分享图片

  其中各中间参数为:

    技术分享图片

    技术分享图片

    技术分享图片

    技术分享图片

    技术分享图片

  在算出了对各参数的偏导之后,就可以更新参数,依次迭代知道损失收敛。

  概括来说,LSTM和CRU都是通过各种门函数来将重要特征保留下来,这样就保证了在long-term传播的时候也不会丢失。此外GRU相对于LSTM少了一个门函数,因此在参数的数量上也是要少于LSTM的,所以整体上GRU的训练速度要快于LSTM的。不过对于两个网络的好坏还是得看具体的应用场景。

 

参考文献:

  GRU神经网络

  GRU与LSTM总结

***本文为参考各位大神博客的笔记*

深度学习之GRU网络

标签:训练   blank   src   深度   log   wan   丢失   控制   记忆   

原文地址:https://www.cnblogs.com/jiangxinyang/p/9376021.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!