提出

Nadam(Nesterov-accelerated Adaptive Moment Estimation)算法是由 Tim Salimans et al. 在 2016 年提出的。Nadam 算法的详细描述和原理可以在论文《Incorporating Nesterov Momentum into Adam》中找到,该论文最初在 2016 年提交到 arXiv,并且后来在 2017 年的 ICLR 会议上发表

Nadam 算法的原理

Nadam(Nesterov-accelerated Adaptive Moment Estimation)是一种结合了 Nesterov 动量(NAG)和 Adam 优化算法的优化器。它旨在提高优化过程的性能,特别是在深度学习中

Nadam 的更新规则如下:

  1. 初始化一阶矩估计(动量) 和二阶矩估计(梯度平方的移动平均) 为 0,以及时间步长
  2. 在每次迭代中,计算梯度
  3. 更新一阶矩估计 和二阶矩估计
  4. 计算偏差修正的一阶矩估计 和二阶矩估计
  5. 计算 Nadam 特有的修正动量
  6. 更新参数

在 Nadam 的更新公式中, 是结合了 Nesterov 动量的修正动量,它在计算更新时考虑了前一步的速度。这种结合 Nesterov 动量的特性是 Nadam 与 Adam 的主要区别

Nadam 算法的主要特点

Nadam 算法的优点包括:

  • 结合了 Nesterov 动量和 Adam 算法的优点,既有自适应学习率,又有 Nesterov 动量,可以更快地收敛
  • 对于深度学习模型的优化效果较好

Nadam 算法的缺点可能包括:

  • 需要人工设置初始学习率和两个衰减系数,调参较为复杂
  • 可能会导致训练过程中的震荡,尤其是在学习率较高的情况下
  • 结合了 Adam 和 Nesterov 动量,所以其可能会导致优化过程过于复杂,从而增加了计算负担

在实际应用中,Nadam 通常被用于深度学习模型的训练,尤其是在需要快速收敛和对稀疏数据集进行优化时。它在许多情况下都能提供良好的性能,但使用时需要注意调整超参数以达到最佳效果