【概念辨析】
术语 | 定义 | 个人理解 |
局部极小值(local minimum) | 区别于全局最小值,梯度为零且在局部损失最小的点 | 在局部范围内,在所有方向上均无法使损失函数下降的点 |
鞍点(saddle point) | 梯度是零且区别于局部极小值和局部极大值(localmaximum)的点 | 在某些方向上,损失处于最低,但某些方向上损失处于较高的情况 |
临界点(critical point) | 梯度为零的点 | 在某个(些)方向上的增长量为0的点 |
批量梯度下降法(Batch Gradient Descent,BGD) | 使用全批量(fullbatch)的数据来更新参数的方法 | |
随机梯度下降法(Stochastic Gradient Descent,SGD) | 当批量大小等于 1时使用的方法 |
【判断临界值种类的方法】
我们可以根据 12θ − θ′T Hθ − θ′来判断在 θ′ 附近的误差表面(error surface)到底长什么样子。知道误差表面的“地貌”,我们就可以判断 L(θ′) 是局部极小值、局部极大值,还是鞍点。
为了符号简洁,我们用向量 v 来表示 θ − θ′,θ − θ′T Hθ − θ′可改写为 vTHv,有如下三种情况。
(1)如果对所有 v,vTHv > 0. 这意味着对任意 θ,L(θ) > L(θ′). 只要 θ 在 θ′ 附近,L(θ) 都大于 L(θ′). 这代表 L(θ′) 是附近的一个最低点,所以它是局部极小值。
(2)如果对所有 v,vTHv < 0. 这意味着对任意 θ,L(θ) < L(θ′),θ′ 是附近最高的一个点,L(θ′) 是局部极大值。(3)如果对于 v,vTHv 有时候大于零,有时候小于零。这意味着在 θ′ 附近,有时候L(θ) > L(θ′),有时候 L(θ) < L(θ′). 因此在 θ′ 附近,L(θ′) 既不是局部极大值,也不是局部极小值,而是鞍点。
算出一个海森矩阵后,不需要把它跟所有的 v 都乘乘看,只要看 H的特征值。若 H 的所有特征值都是正的,H 为正定矩阵,则 vTHv > 0,临界点是局部极小值。若 H 的所有特征值都是负的,H 为负定矩阵,则 vTHv < 0,临界点是局部极大值。若 H 的特征值有正有负,临界点是鞍点。
【逃离鞍点的方法】
升高维度,在低维情况下可能是一个局部极小值,但在高维情况下可能会成为一个鞍点。大多数实际场景中,局部极小值很少见。
【批量法】
小批量梯度下降与批量梯度下降的比较
评价标准 | 小批量梯度下降 | 批量梯度下降 |
一次更新的速度(没有并行计算) | 相同 | 相同 |
一次更新的速度(有并行计算) | 相同 | 相同(批量大小不是很大) |
一个回合的时间 | 更慢 | 更快 |
梯度 | 有噪声 | 稳定 |
优化 | 更好 | 更坏 |
泛化 | 更好 | 更坏 |
【动量法】
另一种规避局部极小值或鞍点的方法。与批量法相比,只是在改变移动参数的方法上存在区别。
一般梯度下降走到一个局部最小值或鞍点时,就被困住了。但有动量还是有办法继续走下去,因为动量不是只看梯度,还看前一步的方向。即使梯度方向往左走,但如果前一步的影响力比梯度要大,球还是有可能继续往右走,甚至翻过一个小丘,也许可以走到更好的局部最小值,这就是动量有可能带来的好处 。