深度学习常见概念——for 优化神经网络
收敛在局部极限值与鞍点会导致优化(神经网络)失败
梯度为零的点统称为临界点(critical point):局部极限值与鞍点
鞍点是梯度是零,且区别于局部极小值和局部极大值(local maximum)的点。
局部极小值往四周走损失会更高,无路可走;
但鞍点旁有路可让损失更低,逃离鞍点。
通过海森矩阵来判断原点是局部极小值还是鞍点,矩阵的两个特征值有正有负,则原点是鞍点。
低维度空间中的局部极小值点,在更高维的空间中,实际是鞍点。
在把数据分为批量时,会进行随机打乱(shuffle)
- 使用全批量(fullbatch)的数据来更新参数的方法即批量梯度下降法(Batch Gradient Descent,BGD)。模型必须把 20 笔训练数据都看完,才能够计算损失和梯度,参数才能够更新一次。
- 批量大小等于 1的方法即随机梯度下降法(Stochastic Gra dient Descent,SGD),也称增量梯度下降法。只要取出一笔数据即可计算损失、更新一次参数。如果共有20笔数据,那么在每个回合里参数会更新20次。
优劣:
批量梯度下降每次更新更稳定、更准确;但计算量大。
随机梯度下降的梯度上引入了随机噪声,因此在非凸优化问题中更容易逃离局部最小值。
并行计算存在极限:
当超过GPU限度时,随着批量增加(10000),计算时间也会增加。
因此大的批量大小反而可能更有效率。
动量法(momentum method)是对抗鞍点或局部最小值。
- 不是只看梯度,还看前一步的方向
- 可能会翻过山丘到达更好的局部最小值
如何优化?
- 对学习率进行调整,使用自适应学习率和学习率调度
- 批量归一化改变误差表面