为什么坡度符号(正或负)不足以找到最陡的上升?

数据挖掘 梯度下降 学习率 坡度
2021-09-30 22:38:44

考虑一个简单的一维函数y=x2使用梯度上升法找到最大值。

如果我们从x-axis 上的第 3 点开始:

fx|x=3=2x|x=3=6

这意味着我们应该移动的方向是6.

梯度上升给出更新规则:x = old_x + learning_rate * gradient

我不明白为什么我们需要将 alearing_rate与相乘gradient为什么我们不能只使用x = old_x + learning_rate * sign(gradient).

因为如果我们 learning_rate朝着积极的方向迈出一步,那已经是x我们可以做出的最大转变了。

我知道在这个等式中找到最大方向的原因:

grad(𝑓(𝑎))𝑣=|grad(𝑓(𝑎))||𝑣|cos(𝜃)

但我无法理解为什么仅仅接受梯度(正负)的符号不足以上升。

3个回答

仅使用梯度符号是一种可行的方法,但可能会导致收敛缓慢。然而,它是该方法的有效变体。

  1. 符号梯度下降的几何

基于符号的优化方法由于其在分布式优化中有利的通信成本以及在神经网络训练中的出色表现而在机器学习中变得流行。此外,它们与 Adam 等所谓的自适应梯度方法密切相关。最近关于 signSGD 的作品使用了非标准的“可分离平滑度”假设,而一些较早的作品将符号梯度下降研究为相对于 ℓ∞-范数的最陡下降。在这项工作中,我们通过展示可分离平滑度和ℓ∞-平滑度之间的密切联系来统一这些现有结果,并认为后者是更弱和更自然的假设。然后我们继续研究关于 ℓ∞-范数的平滑常数,从而隔离影响基于符号的方法性能的目标函数的几何特性。简而言之,如果 (i) Hessian 在某种程度上集中在其对角线上,并且 (ii) 它的最大特征值远大于平均特征值,我们发现基于符号的方法优于梯度下降。这两个属性在深度网络中都很常见。

  1. 符号梯度下降算法的性质

本文的目的是研究符号梯度下降算法的性质,该算法涉及梯度的符号而不是梯度本身,并首次在 RPROP 算法中引入。本文提供了两个局部优化的收敛结果,第一个用于没有不确定性的标称系统,第二个用于具有不确定性的系统。包括二分法 DICHO 在内的新符号梯度下降算法应用于几个示例,以显示它们在收敛速度方面的有效性。作为一种新颖性,符号梯度下降算法可以允许在实践中收敛到其他最小值而不是初始条件的最接近最小值,使得这些算法适合作为一种新的元启发式方法进行全局优化。

考虑一下你的算法的收敛行为(假设学习率是固定的)——一旦 x 在learning_rate最优值范围内,它就会跳到另一边,符号也会改变。然后它会跳回到原来的值,并在这两个值之间振荡,直到你选择终止它,永远不会接近真正的最优值

当您接近最优时,使用梯度值的算法会看到更小的梯度,因此可以在该点采取更小的步骤并任意接近最优值。

只关注“标志”部分。梯度的符号告诉移动方向,但仅限于“局部”。一旦你移动你有一个新的表面,然后可能现在最陡的部分(导致全局最小值/最大值)不存在,然后你需要根据符号再次决定方向,这可能不是最佳的。

正如维基百科https://en.wikipedia.org/wiki/Gradient_descent给出的例子。想象一下,你在山顶上,一切都雾蒙蒙的,你想下到山下。您计算并朝着您认为会到达底部的最陡峭的方向迈出一步,但由于有雾,您的能见度有限,这一步可能会让您处于下一步不会到达底部的位置。

正如上述答案也表明这也会导致收敛缓慢。

在此处输入图像描述