局部最小值和鞍点
为什么模型训练优化失败?
模型训练往往需要考察梯度,但梯度为0不一定是最优状态,需要进行判断是局部极小值还是局部极大值,又或者是鞍点。
如何判断临界点是局部极小值,局部极大值,鞍点?
海森矩阵后,不需要把它跟所有的 v 都乘乘看,只要看 H 的特征值。若 H 的所有特征值都是正的,H 为正定矩阵,则 v THv > 0,临界点是局部极 小值。若 H 的所有特征值都是负的,H 为负定矩阵,则 v THv < 0,临界点是局部极大值。 若 H 的特征值有正有负,临界点是鞍点。
批量和动量
批量大小对梯度下降法的影响?
使用全批量(full batch)的数据来更新参数的方法即批量梯度下降法(Batch Gradient Descent,BGD)。批量梯度下降并没有“划分批量”:要把所有的数据都看过一遍,才能够更新一次 参数,因此其每次迭代的计算量大。
批量大小等于 1(不是一定是1,假设),此时使用的方法即随机梯度下降法(Stochastic Gradient Descent,SGD),也称为增量梯度下降法。批量大小等于 1 意味着只要取出一 笔数据即可计算损失、更新一次参数。
随机梯度下降的梯度上引入了随机噪声,因此在非凸优化问题中,其相比批量梯度下 降更容易逃离局部最小值。
小的批量更新的方向比较有噪声的,大的批量更新的方向比较稳定。但是有噪声的更新方向反而在优化的时候有优势,而且在测试的时候也会有优势。所以大 的批量跟小的批量各有优缺点,批量大小是需要去调整的超参数。
什么是动量法?
引入动量后,每次在移动参数的时候,不是只往梯度的反方向来移动参数,而是根据梯度 的反方向加上前一步移动的方向决定移动方向。
一般梯度下降走到一个局 部最小值或鞍点时,就被困住了。但有动量还是有办法继续走下去,因为动量不是只看梯度, 还看前一步的方向。即使梯度方向往左走,但如果前一步的影响力比梯度要大,球还是有可能 继续往右走,甚至翻过一个小丘,也许可以走到更好的局部最小值,这就是动量有可能带来的 好处 。