1.局部极小值
对于目标函数 f(x) ,如果 f(x) 在 x 上的值比在 x 邻近的其他点的值更小,那么 f(x) 可能是一个局部最小值(local minimum)。如果 f(x) 在 x 上的值是目标函数在整个定义域上的最小值,那么 f(x) 是全局最小值(global minimum)。
深度学习模型的目标函数可能有若干局部最优值。当一个优化问题的数值解在局部最优解附近时,由于目标函数有关解的梯度接近或变成零,最终迭代求得的数值解可能只令目标函数局部最小化而非全局最小化。
解决方法:
鞍点
刚刚我们提到,梯度接近或变成零可能是由于当前解在局部最优解附近造成的。事实上,另一种可能性是当前解在鞍点(saddle point)附近。
学习率
梯度下降算法中的正数 η 通常叫作学习率。这是一个超参数,需要人工设定。如果使用过小的学习率,会导致 x 更新缓慢从而需要更多的迭代才能得到较好的解。学习率选择太大则,步子太大,容易扯着蛋, 跨越最优解。
使用适当的学习率,沿着梯度反方向更新自变量可能降低目标函数值。梯度下降重复这一更新过程直到得到满足要求的解。
小批量随机梯度下降
在每一次迭代中,梯度下降使用整个训练数据集来计算梯度,因此它有时也被称为批量梯度下降(batch gradient descent)。而随机梯度下降在每次迭代中只随机采样一个样本来计算梯度。正如我们在前几章中所看到的,我们还可以在每轮迭代中随机均匀采样多个样本来组成一个小批量,然后使用这个小批量来计算梯度。