GRU网络

1、简介

随着 LSTM 在自然语言处理特别是文本分类任务的广泛应 用,人们逐渐发现 LSTM 具有训练时间长、参数较多、内部计 算复杂的缺点。Cho 等人在 2014 年进一步提出了更加简单的、 将 LSTM 的单元状态和隐层状态进行合并的、还有一些其他的变动的 GRU 模型。将忘记门和输入门合成了一个单一的更新门。同样还混合了细胞状态和隐藏状态。GRU把LSTM中的遗忘门和输入们用更新门来替代。 把cell state和隐状态ht进行合并,在计算当前时刻新信息的方法和LSTM有所不同。

GRU 模型是一种保持了 LSTM 效果、具有 更加简单的结构、更少的参数、更好的收敛性的模型。GRU 模 型由更新门和重置门两个门组成。

 

2、更新门和重置门

前一个时刻的输出隐层对当前隐层的影响程度由更新门控制,更新门的值越大说明前一时刻的隐层输出对当前隐层的影响越大

前一时刻的隐层信息被忽略的程度由重置门控制,重置门的值越小说明忽略得越多。 GRU 结构更加精简

使用LSTM的原因之一是解决RNN Deep Network的Gradient错误累积太多,以至于Gradient归零或者成为无穷大,所以无法继续进行优化的问题。GRU的构造更简单:比LSTM少一个gate,这样就少几个矩阵乘法。在训练数据很大的情况下GRU能节省很多时间。GRU ,简便了计算方法(简化运算),也避免了梯度消失优化LSTM。

 

3、GRU模型

与LSTM不同,GRU只有两个门了,分别为更新门重置门,即图中的ztrt

更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门的值越大说明前一时刻的状态信息带入越多。

重置门用于控制忽略前一时刻的状态信息的程度,重置门的值越小说明忽略得越多。

GRU网络_第1张图片

 

4、前向传播

 

5、GRU的训练过程

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

    

    

    

输出层的输入:

    

输出层的输出:

    

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

    

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

    

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

    

    

    

    

    

    

    

其中各中间参数为:

    

    

    

    

    

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

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

 

参考文章:

https://blog.csdn.net/qq_40900196/article/details/88997049

https://www.cnblogs.com/jiangxinyang/p/9376021.html

 

你可能感兴趣的:(深度学习,gru)