NNDL 作业10:第六章课后题(LSTM | GRU)

目录

习题6-3 当使用公式(6.50)作为循环神经网络得状态更新公式时,分析其可能存在梯度爆炸的原因并给出解决办法.

习题6-4 推导LSTM网络中参数的梯度,并分析其避免梯度消失的效果

习题6-5 推导GRU网络中参数的梯度,并分析其避免梯度消失的效果

附加题 6-1P 什么时候应该用GRU? 什么时候用LSTM?

总结


习题6-3 当使用公式(6.50)作为循环神经网络得状态更新公式时,分析其可能存在梯度爆炸的原因并给出解决办法.

原因

公式:h_t=h_{t-1}+g(x_t,h_{t-1};\theta ),此时可能存在||diag(f'(z_t))U^\top||> 1,则在计算梯度时有:

z_k=Uh_{k-1}+Wx_k+bg(\cdot)在第k时刻的输入,则在\delta_{t,k}=\frac{\partial L_t}{\partial z_k}时,有:

\delta _{t,k}=diag(f'(z_k))U^T \delta_{t,k+1}=\delta_{t,t}\prod_{i=k}^{t}diag(f'(z_k))U^T

因此:t-k\rightarrow +\infty时,\delta_{t,k}\rightarrow +\infty,故梯度此刻可能爆炸了。

解决方法

1、增加门控机制,使用长短期记忆神经网络(LSTM);

2、使用更小的U和f(⋅)缓解,尽量让||diag(f'(z_t))U^\top||\approx 1

习题6-4 推导LSTM网络中参数的梯度,并分析其避免梯度消失的效果

习题6-5 推导GRU网络中参数的梯度,并分析其避免梯度消失的效果

附加题 6-1P 什么时候应该用GRU? 什么时候用LSTM?

GRU和LSTM的区别在于:

①GRU通过更新门来控制上一时刻的信息传递和当前时刻计算的隐层信息传递。GRU中由于是一个参数进行控制,因而可以选择完全记住上一时刻而不需要当前计算的隐层值,或者完全选择当前计算的隐层值而忽略上一时刻的所有信息,最后一种情况就是无论是上一时刻的信息还是当前计算的隐层值都选择传递到当前时刻隐层值,只是选择的比重不同。而LSTM是由两个参数(遗忘门和输入门)来控制更新的,他们之间并不想GRU中一样只是由一个参数控制,因而在比重选择方面跟GRU有着很大的区别,例如它可以既不选择上一时刻的信息,也不选择当前计算的隐层值信息(输入门拒绝输入,遗忘门选择遗忘)。

②GRU要在上一时刻的隐层信息的基础上乘上一个重置门,而LSTM无需门来对其控制,LSTM必须考虑上一时刻的隐层信息对当前隐层的影响,而GRU则可选择是否考虑上一时刻的隐层信息对当前时刻的影响。

③ 一般来说两者效果差不多,性能在很多任务上也不分伯仲。GRU参数更少,收敛更快;数据量很大时,LSTM效果会更好一些,因为LSTM参数也比GRU参数多一些。

一般地,RNN包含如下三个特性:

  •     循环神经网络能够在每个时间节点产生一个输出,且隐单元间的连接是循环的;
  •     循环神经网络能够在每个时间节点产生一个输出,且该时间节点上的输出仅与下一时间节点的隐单元有循环连接;
  •     循环神经网络包含带有循环连接的隐单元,且能够处理序列数据并输出单一的预测。

LSTM简单来说:

  •     LSTM是用来解决RNN的梯度问题,起到了有效缓解作用
  •     LSTM比RNN多出了几个门,用来控制信息的流动
  •     LSTM的效率要比RNN低,毕竟计算上多出了更多步骤
  •     LSTM能比RNN捕获更长的依赖关系

实际上,任何的深度学习模型均存在梯度问题,这也是需要从优化的角度解决的一个比较棘手的问题。

LSTM 和 GRU对于梯度消失或者梯度爆炸的问题处理方法主要是:

对于梯度消失: 由于它们都有特殊的方式存储”记忆”,那么以前梯度比较大的”记忆”不会像简单的RNN一样马上被抹除,因此可以一定程度上克服梯度消失问题。

对于梯度爆炸:用来克服梯度爆炸的问题就是gradient clipping,也就是当计算的梯度超过阈值\small c或者小于阈值\small -c的时候,便把此时的梯度设置成\small c\small -c

总结

本次作业和上次作业BPTT的推导有密切联系,所以还是按照顺序做的作业,这次推导很多,也是看了一些优秀的文章才推导出来。这部分内容对自己来说还是很有难度的,还是需要自己花时间下功夫去琢磨透的。

参考:

GRU和LSTM区别_微知girl的博客-CSDN博客_gru和lstm

LSTM和GRU如何选择?RNN模型超详细介绍_Yunlord的博客-CSDN博客_什么时候应该用gru? 什么时候用lstm?

LSTM与GRU简单介绍 - 知乎 

神经网络与深度学习[邱锡鹏] 第六章习题解析 - whyaza - 博客园

NNDL 作业10:第六章课后题(LSTM | GRU)_HBU_David的博客-CSDN博客 

你可能感兴趣的:(深度学习,人工智能)