【问题标题】:Momentum 0.9 and 0.99 in SGDSGD 中的动量 0.9 和 0.99
【发布时间】:2017-06-01 04:47:54
【问题描述】:

我有一个 SGD 求解器:

base_lr: 1e-2    
lr_policy: "step"
gamma: 0.1       
stepsize: 10000  
max_iter: 300000  
momentum: 0.9

正如 Caffe 文档中的建议,他们说“如果增加 μ,则相应地减少 α 可能是个好主意(反之亦然)”。因此,如果我选择动量是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)有什么好处?

【问题讨论】:

  • 求解器高度依赖模型拓扑。您正在寻求有关调整未知模型的建议。这会使您的问题过于笼统,无法准确回答。
  • 另外,请在交互方面询问。你知道这些超参数(动量、学习率和步长)对训练有什么作用吗?如果没有,请更改您的问题以询问需要知道的内容。 on topichow to ask 将适用于此。
  • 请完成以“then my solver will be”结尾的句子片段。
  • 是的,我知道。我的问题只关注对于任何网络的 monentum 0.9 学习率 0.001 和动量 0.99 学习率 0.0001 的情况是否相同?

标签: machine-learning neural-network deep-learning caffe


【解决方案1】:

感谢您的澄清。不,这不是直接相关。您需要的更改量是您通过对数据集和 max_iter(也需要调整)的实验来确定的。您可能会发现动量 0.99 的最佳 lr 是 1e-3、1e-5 或其他值。您可能会发现 0.99 太重而无法获得最佳结果,您需要退回到 0.92 或 0.97

如果没有有关情况的适当详细信息,我无法猜测什么比我刚刚给出的猜测范围更适合您。我的工作更多地集中在调整其他超参数上。动量 = 0.90 对我们所有的应用程序都很有效。

【讨论】:

  • 感谢您的回答。就我而言,学习率和动量很大程度上取决于性能。动量 0.99 使损失更稳定
  • 这使得损失相当稳定。什么是你的“性能”?训练模型的准确性?是时候训练到最低准确度了吗?
  • 这是每次迭代的损失指标
  • 我不清楚损失除以迭代次数如何给出有用的数量。这应该会在整个训练过程中趋于减少,随着时间的增长,渐近线为 0。
猜你喜欢
  • 1970-01-01
  • 2019-07-09
  • 1970-01-01
  • 1970-01-01
  • 2015-04-07
  • 2017-02-12
  • 1970-01-01
  • 2016-10-06
  • 1970-01-01
相关资源
最近更新 更多