概述
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只有两个门了,分别为更新门和重置门,即图中的zt和rt。
更新门用于控制前一时刻的状态信息被带入到当前状态中的程度,更新门的值越大说明前一时刻的状态信息带入越多。
重置门用于控制忽略前一时刻的状态信息的程度,重置门的值越小说明忽略得越多。
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网络的全部内容,希望文章能够帮你解决GRU网络所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复