亚当优化器和动量优化器

adam optimizer and momentum optimizer

我正在尝试运行一个基于U-net架构的图像分割代码。在实验过程中,我发现 Adam 优化器 运行 比动量优化器慢得多。我不确定这是否是这两个优化器之间的共同观察结果?或者它应该是一个依赖于数据的观察?

这可能取决于你的框架;例如,MxNet 的这个问题:https://github.com/dmlc/mxnet/issues/1516。根据我的经验,Adam 倾向于收敛较少的 epoch,但我意识到这与优化器 运行 快速不同。

使用 Adam 的优化比使用 Momentum 的优化运行得慢,因为前者需要为每个参数累加第一和第二时刻的指数移动平均值,因为它是一种自适应学习率算法. 相反,后者不需要跟踪过去的梯度,也不需要为每个参数应用具有不同值的更新规则。

因此您的观察是正确的,但它不依赖于数据,优化算法本身需要进行额外的计算,因此执行时间(对于每个训练步骤)较慢。

优点是使用自适应学习率算法,即使单个步骤较慢,您也可以更快地达到最小值。