02 网络优化与正则化

1. 神经网络常遇到的两个问题

1)优化问题:a 神经网络的损失函数通常是一个非凸函数,找到全剧最优值比较难;b深度学习的参数通常比较多,训练数据也比较大,因此也无法使用计算代价很高的二阶优化方法,而一阶优化方法的训练效率通常比较低。c深度学习存在梯度消失或爆炸问题,导致基于梯度的优化方法经常失效。
2)泛化问题。深度神经网络的复杂度比较高,并且拟合能力很强,很容易在训练集上产生过拟合,使用正则化方法来改进网络的泛化能力。

从网络优化和网络正则化两个方面介绍改进方法。
网络优化是指寻找一个神经网络模型来使得结构风险最小化的过程(模型选择、参数学习等)深度神经网络是一个高度非线性的模型,其风险函数是一个非凸函数,因此风险最小化是一个非凸优化问题.此外,深度神经网络还存在梯度消失问题。

2.1 网络优化

2. 进行深度学习 梯度下降会遇到的问题

低维空间的非凸优化问题主要是存在一些局部最优点。基于梯度下降的优化方法会陷入局部最优点,因此在低维空间中非凸优化主要难点是如何选择初始化参数和逃离局部最优点。

深度神经网络的参数非常多,其参数学习是在非常高维空间中的非凸优化问题,其挑战和在低维空间中的非凸优化问题中有所不同。
高维空间中,局部最小值要求在每一维度上都是最低点,这种概率非常低。高维非凸优化的难点是如何逃离鞍点,鞍点的梯度是零,但是在一些维度上是最高点,一些维度上是最低点。
所以在高维空间引入随机性可以有效的逃离鞍点。

3. 平坦最小值、尖锐最小值、局部最小解的等价性

(经验上看,而无理论证明)
平坦最小值,损失函数在局部最小解附近通常是一个平坦的区域,在一个平坦最小值的邻域内,所有点对应的训练损失都比较接近,表明我们在训练神经网络时,不需要精确地找到一个局部最小解,只要在一个局部最小解的邻域内就足够了。
大型神经网络中,大部分的局部最小解是等价的,它们在测试集上性能都比较相似.此外,局部最小解对应的训练损失都可能非常接近于全局最小解对应的训练损失。虽然神经网络有一定概率收敛于比较差的局部最小值,但随着网络规模增加,网络陷入比较差的局部最小值的概率会大大降低.在训练神经网络时,我们通常没有必要找全局最小值,这反而可能导致过拟合。

4. 神经网络优化的改善方法

1)使用更有效的优化算法来提高梯度下降优化方法的效率和稳定性,比如,梯度下降法(批量梯度下降、随机梯度下降以及小批量梯度下降)、动态学习率调整、梯度估计修正等。
2)使用更好的参数初始化方法、数据预处理方法
来提高优化效率。
3)修改网络结构来得到更好的优化地形(Optimization Landscape), (优化地形指在高维空间中损失函数的曲面形状)。好的优化地形通
常比较平滑。比如使用ReLU激活函数、残差连接、逐层归一化等。
4)使用更好的超参数优化方法。
通过上面的方法,我们通常可以高效地、端到端地训练一个深度神经网络。

2.2 网络过拟合解决方案

5. 如何防止模型过拟合
从数据层面考虑:增加训练数据量,数据增强(翻转、旋转、缩放比例、剪裁、移位)
从模型层面考虑:加正则项、dropout/BN、(树模型限制深度)

2.3 细节部分

细节部分会加入公式推导和前面框架中每个方法的展开叙述