Skip to main content
QUICK REVIEW

[论文解读] Neumann Optimizer: A Practical Optimization Algorithm for Deep Neural Networks

Shankar Krishnan, Ying Xiao|arXiv (Cornell University)|Dec 8, 2017
Advanced Neural Network Applications参考文献 36被引用 3
一句话总结

Neumann优化器是一种适用于深度神经网络的实用型二阶随机优化算法,通过使用Neumann级数展开隐式计算逆Hessian方向,避免了显式计算Hessian矩阵或Hessian-向量乘积。该方法通过仅调整初始学习率且计算成本与Adam相当,在无需验证准确率下降的情况下,实现了高达32,000小批量大小的线性扩展,并在小批量设置下将泛化性能提升0.8–0.9%,达到当前最优性能。

ABSTRACT

Progress in deep learning is slowed by the days or weeks it takes to train large models. The natural solution of using more hardware is limited by diminishing returns, and leads to inefficient use of additional resources. In this paper, we present a large batch, stochastic optimization algorithm that is both faster than widely used algorithms for fixed amounts of computation, and also scales up substantially better as more computational resources become available. Our algorithm implicitly computes the inverse Hessian of each mini-batch to produce descent directions; we do so without either an explicit approximation to the Hessian or Hessian-vector products. We demonstrate the effectiveness of our algorithm by successfully training large ImageNet models (Inception-V3, Resnet-50, Resnet-101 and Inception-Resnet-V2) with mini-batch sizes of up to 32000 with no loss in validation error relative to current baselines, and no increase in the total number of steps. At smaller mini-batch sizes, our optimizer improves the validation error in these models by 0.8-0.9%. Alternatively, we can trade off this accuracy to reduce the number of training steps needed by roughly 10-30%. Our work is practical and easily usable by others -- only one hyperparameter (learning rate) needs tuning, and furthermore, the algorithm is as computationally cheap as the commonly used Adam optimizer.

研究动机与目标

  • 通过开发一种可扩展、实用的优化算法,解决大规模深度神经网络训练中日益严重的运行时间瓶颈。
  • 实现在不降低模型泛化性能的前提下高效进行大批次训练,克服速度与准确率之间的典型权衡。
  • 引入二阶信息以改进下降方向,同时避免显式Hessian近似或高成本的Hessian-向量乘积计算。
  • 设计一种如同Adam一样易于使用的优化器,仅需调节一个超参数(学习率),同时在速度与准确率上均优于现有方法。

提出的方法

  • 该算法通过求解一个中间优化问题来计算下降方向,利用Neumann级数展开隐式反转每个小批量的Hessian矩阵。
  • 通过用单次梯度计算替代Hessian应用,避免了显式表示Hessian矩阵,从而实现高效计算。
  • 该方法利用Neumann级数在不计算Hessian-向量乘积或存储Hessian矩阵的情况下近似逆Hessian矩阵。
  • 该算法被实现为可微分的优化步骤,可无缝集成到标准的深度学习训练流程中。
  • 其仅需一个学习率超参数,且计算效率与Adam相当,使其在大规模模型中具有实际可行性。
  • 该方法通过在ImageNet上使用ResNet-50、ResNet-101、Inception-V3和Inception-ResNet-V2架构进行大规模实验得到验证。

实验结果

研究问题

  • RQ1能否在不进行显式Hessian计算或高计算成本的前提下,使二阶优化方法在大规模深度学习中变得实用?
  • RQ2通过Neumann级数实现的隐式Hessian逆运算是否能够在增加小批量大小的同时实现训练性能的线性扩展,同时保持模型泛化能力?
  • RQ3与Adam或RMSProp等标准优化器相比,Neumann优化器是否能在较小的小批量设置下提升泛化性能?
  • RQ4在序列到序列 RNN 等常见梯度裁剪的非视觉模型上,该优化器表现如何?

主要发现

  • 在ResNet-50上,Neumann优化器在小批量大小达到32,000时仍能实现无验证误差下降的线性扩展。
  • 在较小小批量设置下(例如4,000),该优化器在所有评估模型上均将top-1验证误差降低0.8–0.9%,尽管训练损失未见改善。
  • 泛化性能的提升可转换为更快的训练速度:在保持基线准确率的前提下,训练步数可减少10–30%。
  • 该算法的计算成本与Adam相当,仅需调整学习率,且在实际应用中易于部署。
  • 正则化进一步提升了性能:在小批量大小为4,000时,ResNet-50的top-1误差从23.5%(无正则化)降至23.0%(有正则化)。
  • 该优化器在序列到序列的Tacotron模型上未能提升性能,可能由于在激进梯度裁剪下Hessian近似失效。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。