我正在使用本讲座 pdf推导神经网络
我被困在等式
记号注意事项:
- 层的激活函数是
- 层的权重之和为
- 最终标签是
我想弄清楚在哪里
来自最终等式
作者提到它是一个动量术语,没有真正详细说明它。
我认为计算如下
对于最终输出层之前的 1 层:
对于所有其他层:
那么什么是动量项呢?
有人可以帮我吗 ?
我正在使用本讲座 pdf推导神经网络
我被困在等式
记号注意事项:
我想弄清楚在哪里
来自最终等式
作者提到它是一个动量术语,没有真正详细说明它。
我认为计算如下
对于最终输出层之前的 1 层:
对于所有其他层:
那么什么是动量项呢?
有人可以帮我吗 ?
由于您要求直觉,因此一般的想法是:假设您正在使用随机梯度下降 (SGD) 来遍历损失函数的表面。进一步想象那个表面看起来像一座山,并且你从顶部附近开始。表面有许多小峭壁和嘴唇,但显然是向下通往山谷。当您使用 SGD 穿越表面时,导数的大小和符号经常变化,因此您下山的方向和速度会有很大的波动。如果您包含动量项,那么您的方向现在不仅取决于每个新停止点的梯度来确定您的运动,还取决于您在上次更新中运动的大小和方向。而且由于您上次更新移动的数量和方向也取决于之前的更新,您可以看到每个移动都取决于先前移动的整个历史。很快你就从山下奔向山谷。
请注意,您距离更新越远,确定当前更新的重要性就越低,因为如果您在时间扩展动量项,那么从时间开始更新的贡献是: 其中是动量,是时间
首先,假设我们刚刚开始训练,这样:
你可以看到,如果我们继续这个趋势,即使是一个时间步长
如果我将一个块向前推 10m/s(将其视为我的第一个时间步),然后我以 -20m/s 的速度推它(我的第二个时间步);然后通过动量,这将是:
新速度 = -20m/s + u (100m/s) 其中u是摩擦力(或者在我们的例子中是eta)。所以如果摩擦力是 0.1,我的最终速度实际上是 -20 + (0.1)(100) = -10。我接近-20,但我并不完全在那里。如果我再次以 -20m/s 的速度推动块,我的结果是:-10 + (0.1)(-20) = -12,我更接近我希望达到的速度。
在神经网络的概念中,这意味着如果我沿着梯度下降并寻找最小值,我不想在每个时间步大幅改变方向,因为某些方向可能会导致谷值或局部最小值。因此,我想朝着我的大部分体重梯度推动我的方向前进。改变这个方向通常需要大量的权重梯度来对抗我当前的梯度“流”。