flp*_*lpn 4 artificial-intelligence machine-learning
我是机器学习领域的新手,最近听说了这个词。我试图阅读互联网上的一些文章,但我仍然不明白其背后的想法。有人可以给我一些例子吗?
Pru*_*une 18
在反向传播期间,我们正在调整模型的权重以适应最新的训练结果。在表现良好的表面上,我们将简单地使用牛顿方法并毫无问题地收敛到最佳解决方案。然而,现实很少表现得很好,尤其是在随机初始化模型的初始混乱中。我们需要以比在下一次迭代中达到最优值的全面尝试更不随意的方式遍历空间(就像牛顿的方法那样)。
相反,我们对牛顿的方法进行了两项修正。第一个是learning rate
:牛顿通过使用局部梯度来计算解决方案应该在哪里调整权重,并直接进入下一次迭代的新输入值。 Learning rate
将其缩小很多,在指示的方向上采取更小的步骤。例如,0.1 的学习率表示只走计算距离的 10%。从这个新值,我们再次计算梯度,“偷偷摸摸”解决方案。这使我们有更好的机会在不同的表面上找到最佳值,而不是在各个方向上过冲或振荡超过它。
Momentum
看到这里是一个类似的尝试,以保持一致的方向。如果我们采取较小的步骤,在我们的空间中保持某种一致的方向也是有意义的。我们采用前一个航向向量和新计算的梯度向量的线性组合,并在该方向上进行调整。例如,如果我们有 0.90 的动量,我们将取前一个方向的 90% 加上新方向的 10%,并相应地调整权重——将该方向向量乘以学习率。
这有帮助吗?
动量是梯度下降算法中使用的术语。
梯度下降是一种优化算法,它通过找到当前状态下最陡坡的方向并通过向该方向移动来更新其状态。因此,在每一步中,它都保证要最小化的函数值每一步都在减少。问题是这个方向在函数的某些点会发生很大变化,而最佳路径通常不包含很多转弯。所以我们希望让算法在改变方向之前保持它已经前进的方向一段时间。为此,引入了动力。
一种思考方式是想象一块石头从山上滚下来,直到它停在平坦的区域(局部最小值)。如果从山上滚下来的石头碰巧经过了一个点,在这个点上,最陡峭的方向会改变片刻,我们不希望它完全改变方向(因为它的物理动量会保持它前进)。但是,如果坡度方向完全改变,石头会逐渐再次朝着最陡峭的下降方向改变方向。
这是一个详细的链接,您可能想查看它背后的数学原理,或者只是看看动量在行动中的效果:
https://towardsdatascience.com/stochastic-gradient-descent-with-momentum-a84097641a5d