caffe 求解器文档。如何理解动量 μ 对因子 $1/(1-μ)$ 的影响?

caffe solver document. how to understand the momentum μ has an effect of factor $1/(1-μ)$?

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

它说

Note that the momentum setting μ effectively multiplies the size of your updates by a factor of 1/(1-μ) after many iterations of training, so if you increase μ , it may be a good idea to decrease α accordingly (and vice versa).

我的问题是:

  1. why 1/(1-μ) , how to prove that?

  2. why it's a good idea to decrease α according to an increasing μ?

简单来说就是一个几何级数的和

动量更新意味着"velocity"和"position"更新如下:

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 - μ) * α

(用无限几何级数求和公式)

EDIT:要回答问题的第二部分,(添加到下面@Prune 的回答中)1/(1 - μ) * α 的行为或多或少像"effective learning rate"。因此,如果 α 的某个特定值在您更改 μ 之前运行良好,您应该通过减小 α 来进行补偿以保持 "effective learning rate" 不变。这与在没有动量的情况下选择正确的梯度下降学习率一样重要。

关于您的第二点,您通常希望将速度调整为与您的问题兼容的值。速度描述了您估计的解决方案点的移动。如果速度太小,你收敛太慢,and/or过拟合;太大的话会绕着解点折腾,甚至无法收敛。

大多数算法都会控制第二个问题,每当我们发现新的有史以来最好的损失时,通常只需将 α 减少一个小因子(例如 .01)。您需要控制的部分是您的初始设置。如果增加 μ 使得 1/(1-μ) 上升 1.25 倍,请尝试将 α 减少 20% 以进行补偿。