http://caffe.berkeleyvision.org/tutorial/solver.html
它说

注意动量设定值μ
有效地将更新大小乘以1 /(1-μ)
经过多次训练之后,如果增加μ
,相应地减小α可能是一个好主意(反之亦然)。

我的问题是:


为什么是1 /(1-μ),如何证明呢?

为什么增加μ来减小α是一个好主意?

最佳答案

简而言之,它是几何级数的总和。

用动量更新意味着“速度”和“位置”更新如下:

v =μ* v +α*梯度

θ=θ-v

现在,假设最初v = 0且梯度保持(几乎)恒定(为方便起见,假设为1),则速度演变为:


0,
α,
(1 +μ)*α,
(1 +μ(1 +μ))*α=(1 +μ+μ^ 2)*α,
(1 +μ+μ^ 2 +μ^ 3)*α,
(1 +μ+μ^ 2 +μ^ 3 +μ^ 4)*α,
(1 +μ+μ^ 2 +μ^ 3 +μ^ 4 +μ^ 5)*α,
...
1 /(1-μ)*α


(使用无限几何级数之和的公式)

编辑:要回答您问题的第二部分,(添加到下面的@Prune的答案中)1 /(1-μ)*α或多或少地表现为“有效学习率”。因此,如果在更改μ之前,某个特定的α值工作良好,则应通过减小α来进行补偿,以保持“有效学习率”恒定。这与在没有动量的梯度下降中选择正确的学习率一样重要。

07-24 19:39