# 3.1 局部极小值与鞍点
临界点(critical point):局部极小值(local minimum)或鞍点(saddle point)
通过损失函数形状->泰勒级数近似(Tayler series appoximation)->梯度和海森矩阵(Hessian matrix)H来判断是哪种情况。
在临界点的附近,损失函数可被近似为
从而判断临界点附近形状。
更简单的说, 根据海森矩阵(Hessian matrix)H的特征值来判断,H是正定矩阵,则是局部极小值,H是负定矩阵,则是局部最大值,H特征值有正有负,则是鞍点。负的特征值对应的特征向量,就是继续优化的方向。
在参数维度高的情况下,训练更容易遇到鞍点而不是局部极小值点。
# 3.2 批量和动量
批量梯度下降法(Batch Gradient Descent,BGD):每次迭代的计算量大。但相比随机梯度下降,每次更新更稳定、更准确。
随机梯度下降法(Stochastic Gradient Descent,SGD)(增量梯度下降法):下降的梯度上引入了随机噪声,因此在非凸优化问题中,其相比批量梯度下降更容易逃离局部最小值。
在有考虑并行计算的时候,大的批量大小反而是较有效率的,一个回合大的批量花的时间反而是比较少的。
虽然批量大小越大,验证集准确率越差,但这不是过拟合,也不是模型偏见的问题。大的批量大小优化可能会有问题,小的批量大小优化的结果反而是比较好的。因为小批量梯度下降法(mini-batch gradient descent)每次是挑一个批量计算损失,所以每一次更新参数的时候所使用的损失函数是有差异的。
小批量的测试效果也更好,大的批量大小会让我们倾向于走到狭窄的最小值“峡谷”里面,而小的批量有很多的损失函数,更新方向比较随机,倾向于走到范围比较宽的最小值“盆地”里面。
动量法(momentum method):每次在移动参数的时候,不是只往梯度的反方向来移动参数,而是根据梯度的反方向加上前一步移动的方向决定移动方向。