深度神经网络面临的挑战
一、梯度消亡
梯度消亡会导致网络训练过程会非常慢。系数不再随着网络训练而变化,或者变化非常缓慢,随着网络层数的增加,这个现象越发明显。
1.梯度消亡现象存在的原因:
1)使用了基于梯度的网络训练方法(例如梯度下降法).
2)使用了输出值范围远远小于输入值范围的激活函数(例如logistic、tanh等)。
tanh双曲正切曲线:
将(-∞,+∞)的输入值,压缩到(-1,+1)范围内
tanh曲线.png
tanh双曲正切曲线梯度变化:
输入值在(-6,+6)范围内,梯度值才有变化;其它的输入值梯度都非常小,接近于0。
tanh曲线及导数.png
2.梯度消亡的解决方案:
1)使用ReLu激活函数
2)采用不实用梯度的网络训练方法
- 基于遗产、进化算法
- 粒子群优化
二、过拟合
在训练数据上面的效果好,在实际的测试数据上面效果差。
1.过拟合的解决方案:
1)DropOut
2)L2正则
3)L1正则化
4)MaxNorm 最大范数约束
1)DropOut算法
在每次网络训练过程中,随机删除部分节点数(DropOut rate),只使用部分神经元进行参数学习的方法。
② 预测:
由于每次训练网络时都随机删除rate比例的节点说,所以训练出来的系数权值会偏大,在网络预测时,系数需要乘以(1-rate)。
DropOut预测.png
2)L2正则化
L2正则化中,大多数的系数值都不为零,但系数的绝对值都比较小。
3)L1正则化
L1正则化中,大多数的系数值都接近于零,这样使得其它系数不为零特征对输出值有更大的影响,所以可以用来做特征选择。
4)MaxNorm
最大范数约束可以有效防止由于训练步长较大引起的过拟合问题。
公式:
在每一次更新系数的时候,都额外加上这一项:
最大范数约束项.png
网友评论