梯度消失与梯度爆炸

本文探讨了神经网络中常见的梯度消失与梯度爆炸问题,并介绍了ReLU激活函数的优缺点及其在实践中如何应对这些挑战。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 梯度分析

costbias
观察不同隐藏层数在不同层bias的梯度对比:
two
three
four
可以看出,第一个隐藏层梯度比第四个几乎慢1000倍.

这种现象普遍存在于神经网络中,称为:vanishing gradient problem
另一种情况与之相反,称为:exploding gradient problem

2. 梯度消失

picture1
picture2
此处就是简单的反向传播算法!

picture3
picture4
标准正态分布图
normGraph
picture5

3. 梯度爆炸

exploding

4. 不稳定梯度问题

nonstread

5. 解决办法之激活函数

ReLU(修正线性单元)
人们起初并不觉得它的效果会好过 sigmoid 和 tanh。但是,实战中它确实做到了。事实上,cs231n 课程甚至指出,应该默认使用 Relu 函数。

ReLU 从数学表达式来看,运算十分高效。对于某一输入,当它小于 0 时,输出为 0,否则不变。下面是 ReLU 的函数表达式。
Relu
然而,ReLU 有一个致命缺点,叫「ReLU 坏死」。ReLu 坏死是指网络中的神经元由于无法在正向传播中起作用而永久死亡的现象。

更确切地说,当神经元在向前传递中激活函数输出为零时,就会出现这个问题,导致它的权值将得到零梯度。因此,当我们进行反向传播时,神经元的权重将永远不会被更新,而特定的神经元将永远不会被激活。

还有件事值得一提。你可能注意到,不像 sigmoid 和 tanh,Relu 并未限定输出范围。这通常会成为一个很大的问题,它可能在另一个深度学习模型如递归神经网络(RNN)中成为麻烦。具体而言,由 ReLU 生成的无界值可能使 RNN 内的计算在没有合理的权重的情况下发生数值爆炸。因此反向传播期间权重在错误方向上的轻微变化都会在正向传递过程中显著放大激活值,如此一来学习过程可能就非常不稳定。

参考文献

http://blog.youkuaiyun.com/qq_29133371/article/details/51867856
http://blog.youkuaiyun.com/baidu_29782299/article/details/52742773
机器之心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值