SGD 的动量为 0.9 和 0.99
Momentum 0.9 and 0.99 in SGD
我有一个 SGD 求解器:
base_lr: 1e-2
lr_policy: "step"
gamma: 0.1
stepsize: 10000
max_iter: 300000
momentum: 0.9
作为 Caffe 文档中的建议,他们说 "if you increase μ, it may be a good idea to decrease α accordingly (and vice versa)"。因此,如果我选择动量是0.99
,那么我相信base_lr
一定是1e-4
base_lr: 1e-4
lr_policy: "step"
gamma: 0.1
stepsize: 10000
max_iter: 300000
momentum: 0.99
我说得对吗?我也需要增加 stepsize
吗?与较小的动量(即 0.9
)相比,使用更大的动量(即 0.99
)有什么好处?
感谢您的澄清。不,这不是直接相关。您需要的更改量是您通过对数据集和 max_iter(也需要调整)进行实验来确定的。您可能会发现动量 0.99 的最佳 lr
是 1e-3、1e-5 或其他。您可能会发现 0.99 对于最佳结果来说太重了,您需要退回到 0.92 或 0.97
如果没有关于情况的适当细节,我无法猜测什么比我刚才给出的猜测范围更适合你。我的工作更侧重于调整其他超参数; momentum = 0.90 为我们所有的应用程序提供了很好的服务。
我有一个 SGD 求解器:
base_lr: 1e-2
lr_policy: "step"
gamma: 0.1
stepsize: 10000
max_iter: 300000
momentum: 0.9
作为 Caffe 文档中的建议,他们说 "if you increase μ, it may be a good idea to decrease α accordingly (and vice versa)"。因此,如果我选择动量是0.99
,那么我相信base_lr
一定是1e-4
base_lr: 1e-4
lr_policy: "step"
gamma: 0.1
stepsize: 10000
max_iter: 300000
momentum: 0.99
我说得对吗?我也需要增加 stepsize
吗?与较小的动量(即 0.9
)相比,使用更大的动量(即 0.99
)有什么好处?
感谢您的澄清。不,这不是直接相关。您需要的更改量是您通过对数据集和 max_iter(也需要调整)进行实验来确定的。您可能会发现动量 0.99 的最佳 lr
是 1e-3、1e-5 或其他。您可能会发现 0.99 对于最佳结果来说太重了,您需要退回到 0.92 或 0.97
如果没有关于情况的适当细节,我无法猜测什么比我刚才给出的猜测范围更适合你。我的工作更侧重于调整其他超参数; momentum = 0.90 为我们所有的应用程序提供了很好的服务。