梯度下降优化算法综述

Posted zhiyong_will

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了梯度下降优化算法综述相关的知识,希望对你有一定的参考价值。

本文翻译自Sebastian Ruder的“An overview of gradient descent optimization algoritms”,作者首先在其博客中发表了这篇文章,其博客地址为:An overview of gradient descent optimization algoritms,之后,作者将其整理完放在了arxiv中,其地址为:An overview of gradient descent optimization algoritms,在翻译的过程中以作者发布在Arxiv的论文为主,参考其在博客中的内容。

本文的翻译已经获得作者的同意。


摘要

虽然梯度下降优化算法越来越受欢迎,但通常作为黑盒优化器使用,因此很难对其优点和缺点的进行实际的解释。本文旨在让读者对不同的算法有直观的认识,以帮助读者使用这些算法。在本综述中,我们介绍梯度下降的不同变形形式,总结这些算法面临的挑战,介绍最常用的优化算法,回顾并行和分布式架构,以及调研用于优化梯度下降的其他的策略。

1 引言

梯度下降法是最著名的优化算法之一,也是迄今优化神经网络时最常用的方法。同时,在每一个最新的深度学习库中都包含了各种优化的梯度下降法的实现(例如:参见lasagnecaffekeras的文档)。然而,这些算法通常是作为黑盒优化器使用,因此,很难对其优点和缺点的进行实际的解释。

本文旨在让读者对不同的优化梯度下降的算法有直观的认识,以帮助读者使用这些算法。在第2部分,我们首先介绍梯度下降的不同变形形式。在第3部分,我们将简要总结在训练的过程中所面临的挑战。随后,在第4部分,我们将介绍最常用的优化算法,包括这些算法在解决以上挑战时的动机以及如何得到更新规则的推导形式。在第5部分,我们将简单讨论在并行和分布式环境中优化梯度下降的算法和框架。最后,在第6部分,我们将思考对优化梯度下降有用的一些其他策略。

梯度下降法是最小化目标函数 J(θ) 的一种方法,其中, θRd 为模型参数,梯度下降法利用目标函数关于参数的梯度 θJ(θ) 的反方向更新参数。学习率 η 决定达到最小值或者局部最小值过程中所采用的步长的大小。即,我们沿着目标函数的斜面下降的方向,直到到达谷底。如果你对梯度下降法不熟悉,你可以从http://cs231n.github.io/optimization-1/找到介绍神经网络优化的材料。

2 梯度下降法的变形形式

梯度下降法有3中变形形式,它们之间的区别为我们在计算目标函数的梯度时使用到多少数据。根据数据量的不同,我们在参数更新的精度和更新过程中所需要的时间两个方面做出权衡。

2.1 批梯度下降法

Vanilla梯度下降法,又称为批梯度下降法(batch gradient descent),在整个训练数据集上计算损失函数关于参数 θ 的梯度: