Answers:
这是一个用于解释梯度下降和牛顿方法的通用框架,这可能是一种有用的方式将差异视为@Sycorax答案的补充。(BFGS近似于牛顿的方法;在这里我不再特别讨论。)
我们正在使函数最小化,但是我们不知道如何直接做到这一点。因此,我们取当前点的局部近似值并将其最小化。X
牛顿法使用二阶泰勒展开式近似函数: 其中表示的梯度在点和的Hessian矩阵在。然后,它到并重复。
仅具有梯度而不具有Hessian的梯度下降不能仅进行一阶近似并将其最小化,因为正如@Hurkyl所指出的那样,它没有最小值。取而代之的是,我们定义步长并步到。但请注意, 因此,梯度下降使函数最小化 ģX(Ý):=˚F(X)+∇˚F(X)ţ(Ý-X)+1
因此梯度下降是那种喜欢用牛顿的方法,但不是以二阶泰勒展开,我们假装黑森州是。这经常是基本上更糟近似比,因此梯度下降往往需要更糟糕的步骤比牛顿法。当然,这与平衡下降是相对的,因为梯度下降的每个步骤比牛顿方法的每个步骤便宜得多。哪个更好,完全取决于问题的性质,您的计算资源和您的准确性要求。ģ˚FÑ
看一下@Sycorax的示例,该示例使平方最小化 ,这是值得一提的,这种观点有助于理解这两种方法。
使用牛顿法,我们将得到这样就可以在一步之内以确切的答案(直到浮点精度问题)结束。
另一方面,梯度下降使用 其在处的切平面为是正确的,但曲率完全错误,并且当的特征值发生显着变化时,确实会抛弃不同方向上的重要差异。xA
本质上,像牛顿法这样的二阶导数方法的优势在于它具有二次终止的质量。这意味着它可以在有限的步骤中最小化二次函数。诸如梯度下降之类的方法在很大程度上取决于学习率,这可能导致优化由于收敛于最优值而缓慢收敛或完全发散。可以找到稳定的学习速度...但是需要计算粗麻布。即使使用稳定的学习率,您也可能会遇到诸如围绕最佳值波动的问题,即您将不会总是走“直接”或“有效”的路径来达到最小值。因此,即使终止,也可能需要多次迭代你离它比较近。BFGS和Newton的方法可以收敛得更快,即使每个步骤的计算量都比较昂贵。
以您的示例要求为例:假设您有目标函数 梯度为 并将其放入成为具有恒定学习率的最陡下降形式 ∇˚F(X)=阿X+d
如果的特征向量的大小小于1,这将是稳定的。我们可以使用此属性显示稳定的学习率满足其中是的最大特征值。最速下降算法的收敛速度受到最大特征值的限制,该例程将在其对应特征向量的方向上收敛最快。同样,它将在最小特征值的特征向量方向上最慢地收敛。当大特征值和小特征值之间存在较大差异时,梯度下降将很慢。任何λ中号一个X甲阿甲
在神经网络的特定上下文中,《神经网络设计》一书提供了大量有关数值优化方法的信息。上面的讨论是第9-7节的总结。