上QQ阅读APP看书,第一时间看更新
3.2.6 何时梯度下降法不适用
梯度下降法并没有提供足够多的保证。使用梯度下降法,我们有时会走一条比最短路径更长的路线。我们可能会跨过营地,然后再往回走,甚至可能像乌鸦飞行一样远离基地。
还有一些不走运的情况,那就是梯度下降法有时会完全错失目标。其中一种情况与学习率有关,我们会在本章末尾的亲手研究内容中讨论这种情况。然而,大部分梯度下降法的失败是由损失函数曲面的形状造成的。
只要你使用一些想象力,就可能会想到一个会绊住徒步登山者的曲面。如果损失曲面上突然有一个如下图所示的悬崖,徒步旅行者不得不跳过去,那会怎么样?
还有另外一种情形,如下图所示,当徒步旅行者到达了局部最小值点,而不是到达她应该到达的全局最小值点时,又会怎么样?
局部最小值底部的梯度为零。如果梯度下降到达这里,它就会卡住。
长话短说,只要损失函数曲面具有某些特征,梯度下降法就能够正常运作。使用数学术语表达,就是一个好的损失函数应该是凸的,这意味着它不应该有导致局部最小值的凸点;是连续的,这意味着是没有垂直的悬崖或缺口;并且是可微的,这意味着它应该是光滑的,没有尖头和其他一些你甚至无法计算梯度的奇点。我们目前使用的损失函数符合所有这些条件,所以它是梯度下降法的理想函数。稍后,我们将把梯度下降法应用到其他的一些函数,到时候会检查这些函数是否符合梯度下降法的先决条件。
能够使用梯度下降法也是选择均方误差公式作为损失计算公式的主要原因。虽然我们可以使用误差绝对值的平均值作为损失函数,但是这种关于绝对值的平均数在梯度下降法中不太好用,因为它有一个在0附近的函数值尖峰。另外,平方误差会使得较大的误差变得更大,当你离最小值越来越远时,就会产生一个非常陡峭的曲面。反过来,这种陡度就意味着梯度下降以较高的速度向最小值进发。由于其平滑性和陡峭性,均方误差非常适合梯度下降法。