递归神经网络问题整理
2017-05-03 16:11
176 查看
问题一:LSTM如何避免梯度弥散和梯度爆炸
LSTM只能避免RNN的梯度消失(gradient vanishing);梯度膨胀(gradient explosion)不是个严重的问题,一般靠裁剪后的优化算法即可解决,比如gradient clipping(如果梯度的范数大于某个给定值,将梯度同比收缩)。下面简单说说LSTM如何避免梯度消失.RNN的本质是在网络内部维护了一个状态
,其中
表示时间且
可递归计算。
传统的RNN总是用“覆写”的方式计算状态:
,其中
表示仿射变换外面在套一个Sigmoid,
表示输入序列在时刻
的值。根据求导的链式法则,这种形式直接导致梯度被表示为连成积的形式,以致于造成梯度消失——粗略的说,很多个小于1的项连乘就很快的逼近零。
现代的RNN(包括但不限于使用LSTM单元的RNN)使用“累加”的形式计算状态:
,其中的
显示依赖序列输入
.
稍加推导即可发现,这种累加形式导致导数也是累加形式,因此避免了梯度消失。
以上解释来自于文献[1]的第2节以及文献[2]的3.3节,希望对题主有帮助。
参考文献:
[1] Rafa Jozefowicz et al. An Empirical Exploration of Recurrent Network Architectures.
[2] Junyoung Chung et al. Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling.
问题二:LSTM中为什么不推荐使用relu
lstm使用relu可能intuitivelydoesn't make sense. lstm中非线性单元的输出在[0,1]之间,然后会与其它信号做乘积,模拟“cut off”信号和“let go”信号这两种状态,起到开关的作用;如果改用relu做非线性单元,输出 [0, +inf],这除了能"cut off"信号,还能"scale/expand"信号(梯度爆炸)
相关文章推荐
- 整理在CSDN上回答网友的问题,温故知新(一)
- 蛙蛙推荐:整理一个树型问题的解决方法。
- Wap中常见Asp+Wml问题整理
- [导入]发布本人整理的面试问题大全,为准备找工作的同行们尽一份力!希望大家多补充或回答!
- 对VC++一些常见问题的整理(转自程序员之家论坛)
- 大文件上传问题,整理自csdn论坛
- Win2003下常见问题整理[转]
- 发布本人整理的面试问题大全,为准备找工作的同行们尽一份力!希望大家多补充或回答!
- [导入]发布本人整理的面试问题大全,为准备找工作的同行们尽一份力!希望大家多补充或回答!
- JavaScript常见问题整理(2)
- IIS版面中经常看到大家问一些相同的或者以前已经多次解答的问题。所以,我将这些问题整理了一些出来供大家参考。
- 字节转换的问题(csdn整理)
- JSP访问数据库的问题整理
- 蛙蛙推荐:大文件上传问题,整理自csdn论坛
- 转载:[原创]我学Solaris9中间遇到的问题的整理-陈年老帖..
- Wap中常见Asp+Wml问题整理
- xmlhttp,adodb.stream 结合整理 ——代码转换效率问题
- j2medev“用户界面和多媒体”版面问题整理[0407更新]
- [整理]文本的换行问题