3.1 局部极小值与鞍点
3.1.1 临界点及其种类
临界点(critical point):
- 局部极小值(local minimum)
- 鞍点(saddle point):鞍点的梯度为零,其形状像马鞍。
- 局部极大值(local maximum)
图.局部最小值和鞍点
3.1.2 判断临界值种类的方法
海森矩阵(Hessian matrix)H ,即 损失函数L 的二次微分矩阵
-
若海森矩阵H为正定矩阵(特征值全为正),临界点是局部极小值;
-
若海森矩阵H为负定矩阵(特征值全为负),临界点是局部极大值;
-
若海森矩阵H特征值有正有负,临界点是鞍点。
海森矩阵(Hessian matrix)H可以帮助我们逃离鞍点
只要找出负的特征值,再找出这个特征值对应的特征向量,沿着该方向更新参数,就可以找到一个损失更低的点。
但实际上,我们几乎不会真的把海森矩阵算出来,因为海森矩阵需要算二次微分,计算这个矩阵的运算量非常大,还要把它的特征值跟特征向量找出来,所以几乎没有人用这个方法来逃离鞍点。
3.1.3 逃离鞍点的方法
鞍点跟局部极小值谁比较常见?
实际上,我们几乎找不到所有特征值都为正的临界点(局部最小值点)。
局部极小值并没有那么常见。多数的时候,我们训练到一个梯度很小的地方,参数不再更新,往往只是遇到了鞍点。
思考:误差表面上,鞍点比局部最小值更加常见,这对训练比较有利,因为鞍点比局部最小值点更容易逃离。
3.2 批量和动量
3.2.1 批量大小对梯度下降法的影响
批量梯度下降法(Batch Gradient Descent,BGD):使用全批量(fullbatch)的数据来更新参数的方法
随机梯度下降法(Stochastic Gradient Descent,SGD):批量大小等于 1,也称为增量梯度下降法。
批量大小的比较:
1.考虑并行计算的时候,大的批量大小反而是较有效率的。
2.大的批量更新比较稳定,小的批量的梯度的方向是比较有噪声的(noisy)。
3.优化的问题,大的批量大小优化可能会有问题,小的批量大小优化的结果反而是比较好的。
4.小的批量也对测试有帮助。当大的批量跟小的批量训练得一样好时,实验结果表明小的批量在测试的时候会是比较好的。
表.小批量梯度下降与批量梯度下降的比较
思考:因此找到一个合适大小的batchsize很重要,具有比较快的训练效率,同时具备比较高的准确率。
3.2.2 动量法
动量法(momentum method)是另外一个可以对抗鞍点或局部最小值的方法
一般的梯度下降(vanilla gradient descent)
动量法(momentum method),每次在移动参数的时候,移动的方向由梯度的反方向和前一步移动的方向共同决定。
思考:引入动量的好处,参数优化时,甚至翻过一个小丘(容易脱离local minima的束缚),可以走到更好的局部最小值点。