【深度学习笔记】优化算法的选择


上篇文章,我们一起了解了几种深度学习的优化算法,SGD不是一无是处,Adam也不是十全十美,这篇文章,我们一起看下怎么去选择一个合适的优化算法,为炼丹(训练模型)保驾护航。

Adam + SGD

上篇文章中,我们可以得出不同优化算法的核心差异是下降的方向不同,这会导致不同的算法到达不同的局部最优点(一般很难到达全局最优点)。主流的观点认为,Adam 等自适应学习率算法对稀疏数据有优势,收敛速度快,但SGD往往能取得更好的最终结果。

所以将Adam和SGD结合起来,前期用Adam快速下降,后期再用SGD精雕细琢。但这种方法面临着两个难题:

  1. 什么时候切换算法
  2. 切换算法后学习率大小该为多少

Improving Generalization Performance by Switching from Adam to SGD 中,作者给出了解决思路。

一些 Tricks

  1. 选择自己熟悉的算法。这样可以方便根据自己的经验进行调优。
  2. 根据数据分布选择。如果是稀疏的数据,使用自适应学习率类的算法更合适。
  3. 使用小数据验证。可以使用一部分数据快速迭代训练,比较不同的优化算法性能。
  4. 考虑不同算法组合。
  5. 使用自适应学习率算法时,制定合适的学习率衰减策略。
  6. 根据自己的需求选择。要快速验证模型效果时,选择Adam进行快速训练,要发布模型时,使用精调的SGD进行模型的精致优化。

声明:迟於|版权所有,违者必究|如未注明,均为原创|本网站采用BY-NC-SA协议进行授权

转载:转载请注明原文链接 - 【深度学习笔记】优化算法的选择


栖迟於一丘