在 Azure ML 中使用“两类神经网络”时,我遇到了“Momentum”属性。根据文档,不清楚,它说
对于动量,键入在学习期间应用的值,作为先前迭代中节点的权重。
虽然这不是很清楚。有人可以解释一下吗?
在 Azure ML 中使用“两类神经网络”时,我遇到了“Momentum”属性。根据文档,不清楚,它说
对于动量,键入在学习期间应用的值,作为先前迭代中节点的权重。
虽然这不是很清楚。有人可以解释一下吗?
神经网络中的动量是随机梯度下降的一种变体。它用动量代替梯度,动量是梯度的集合,这里很好地解释了。
就像您的情况一样,它也是动量因子的通用名称。
数学
注意:图片来自视觉工作室杂志帖子
好处
除其他外,众所周知,动量可以加快学习速度并有助于不陷入局部最小值。
背后的直觉
正如这篇 quora post中很好地解释的那样,动量来自物理学:
动量是一种物理特性,即使在施加外部反作用力时,具有质量的特定物体也能够继续其轨迹,这意味着过冲。例如,一个人加速了一辆汽车,然后突然刹车,汽车会在短距离越过地面标记后打滑并停下来。
相同的概念适用于神经网络,在训练期间,当向更新方案添加动量时,更新方向往往会抵抗变化。当神经网络接近一个浅的局部最小值时,它就像刹车,但不足以立即影响更新方向和幅度。因此,以这种方式训练的神经网络将超过较小的局部最小值点,并且只会在更深的全局最小值处停止。
因此,神经网络中的动量有助于它们摆脱局部最小值点,从而找到更重要的全局最小值。过多的动量可能会产生问题,而不稳定的系统可能会产生幅度增加的振荡,在这种情况下,需要添加衰减项等等。它只是应用于神经网络训练或数值优化的物理学。
在视频中
该视频显示了不同动量值的反向传播。
其他有趣的帖子
希望能帮助到你。
作为一个非正式的定义和非彻底的定义,您可以将梯度下降中的动量理解为惯性。
因此,当您在优化问题中下坡时,您只需将“动量”添加到下降中,它有助于解决数据中的噪声、鞍点等问题。
有关更彻底的分析,请参阅https://towardsdatascience.com/stochastic-gradient-descent-with-momentum-a84097641a5d
这不依赖于 azure,但在所有 NN 中都很常见
动量是一种防止敏感运动的技术。当每次迭代都计算梯度时,它可以有完全不同的方向,并且步骤会形成锯齿形路径,这使得训练非常缓慢。像这样的东西。
为了防止这种情况发生,动量可以稳定这种运动。您可以在以下文章中找到更多信息