12. 优化算法¶
如果你按顺序读到这里,那么你已经使用了许多优化算法来训练深度学习模型了。它们是帮助我们不断更新模型参数,并最小化训练集上损失函数值的工具。当然,如果只是将优化看作一个在简单情景下最小化目标函数的黑盒,那么我们可能只需要了解“SGD”和“Adam”等优化算法的名称就足够了。
然而,想要做好,就需要更深入的知识。优化算法对于深度学习至关重要。一方面,训练一个复杂的深度学习模型可能需要数小时、数天甚至数周。优化算法的性能直接影响模型的训练效率。另一方面,了解不同优化算法的原理以及其超参数的作用,将使我们能够有针对性地调整超参数,以提高深度学习模型的性能。
在本章中,我们将深入探讨常见的深度学习优化算法。几乎所有深度学习中出现的优化问题都是*非凸*的。尽管如此,在*凸*问题背景下的算法设计和分析已经被证明是非常有指导意义的。因此,本章包含一个关于凸优化的入门介绍,以及一个在凸目标函数上对一个非常简单的随机梯度下降算法的证明。