文章目录
习题6-3 当使用公式(6.50)作为循环神经网络得状态更新公式时,分析其可能存在梯度爆炸的原因并给出解决办法.
令Zk= Uhk-1 + Wxk + b 为在第 k 时刻函数g(.) 的输入,在计算公式6.34中的误差项
时,梯度可能过大,从而导致梯度过大问题。
解决方法:增加门控机制,例如:使用长短期记忆神经网络。
习题6-4 推导LSTM网络中参数的梯度,并分析其避免梯度消失的效果
LSTM中通过门控机制解决梯度问题,遗忘门,输入门和输出门是非0就是1的,并且三者之间都是相加关系,梯度能够很好的在LSTM传递,减轻了梯度消失发生的概率,门为0时,上一刻的信息对当前时刻无影响,没必要接受传递更新参数了。
习题6-5 推导GRU网络中参数的梯度,并分析其避免梯度消失的效果
GRU结构图:
GRU具有调节信息流动的门单元,但没有一个单独的记忆单元,GRU将输入门和遗忘门整合成一个升级门,通过门来控制梯度。这种门控的方式,让网络学会如何设置门控数值,来决定何时让梯度消失,何时保持梯度。
附加题 6-1P 什么时候应该用GRU? 什么时候用LSTM?
- GRU和LSTM的区别:
- LSTM利用输出门(output gate)可以选择性的使用细胞状态(cell state),而GRU总是不加选择的使用细胞状态
- LSTM利用更新门(update gate)可以独立控制加入多少新的“记忆”,与老“记忆”无关,而GRU对新“记忆”的加入会受老“记忆”的约束,老“记忆”留存越多新“记忆”加入越少。
- GRU的优点是其模型的简单性 ,因此更适用于构建较大的网络。它只有两个门控,从计算角度看,它的效率更高,它的可扩展性有利于构筑较大的模型;但是LSTM更加的强大和灵活,因为它具有三个门控。LSTM是经过历史检验的方法。
附加题 6-2P LSTM BP推导,并用Numpy实现
首先求出它们在t时刻的梯度,然后再求出他们最终的梯度。
import numpy as np
def sigmoid(x):
return 1/(1+np.exp(-x))
def softmax(x):
e_x = np.exp