Adam 优化器有四个主要的超参数。例如,查看 Keras 界面,我们有:
keras.optimizers.Adam(lr=0.001, beta_1=0.9, beta_2=0.999, epsilon=None, decay=0.0, amsgrad=False)
第一个超参数称为步长或学习率。理论上,自适应优化方法应该在优化过程中自动修改学习率。因此,我希望lr它是一个影响不大的超参数,我可以从我必须在验证集上调整的超参数列表中删除它,从而节省一些时间。
这在实践中是否成立?即,至少对于一类问题(例如图像识别)lr不会对优化产生太大影响,因此我们可以将其保留为默认值 0.001,这是真的吗?还是它仍然像对具有动力的 SGD 一样具有极大的影响力?
编辑:为了消除答案中产生的误解,学习率和步长是同义词。请参阅Adam 论文中的算法定义:,其默认值为 0.001,明确命名为步长。我认为这可能不是一个好名字(参数空间中步长的实际大小取决于累积的一阶和二阶动量,当然还有梯度),但不幸的是,这种误导性术语是优化的规范(至少在深度学习论文中)。
