method_Nesterov's Accelerated Gradient Descent

一般的梯度下降算法的收敛速率为
o(1/t).

1.简介:

加速梯度算法(AGD)是梯度算法(GD)的一个改进的版本。Nesterov 在1983年首次提出。人们已经证明AGD算法是所有基于梯度算法(或者说一阶)算法中最好的方法。然而原始的AGD算法仅能处理光滑的凸优化问题。最新的进展是,将AGD扩展到了更广泛类型的凸优化问题:

minxf(x)+g(x)

其中 f(x)是闭凸函数。同样可以获得相似的收敛速率。

2.算法

AGD算法可以概括为算法1:,其中有两种方式确定步长γ
这里写图片描述
首先,类似于梯度下降算法,为了确保收敛率,我们可以设置γ。其次,我们可以使用直线搜索,自适应地确定步长,满足:

f(xk+1)myk,γ(xk+1)

其中:
xk+1=proxγg()(ykγf(yk))

proxγg()()表示近端操作(近似操作)。即:
proxγg()(v)=argminzRn12γ||vz||2+g(z)

通常给定γ.
注意:序列{tk}满足下面的三个属性:

  1. {tk} 是正的,并且递增
  2. tk+1tk+12
  3. fract01t1=0

3.收敛率:

AGD 是最优的基于梯度的方法。因为它提供了最优的收敛率。假定满足下面的Lipschitz 条件。
假设1. 假定平滑的凸函数f(x)拥有一个Lipschitz梯度。也就是说存在常数L,满足:

f(y)f(x)+<f(x),yx>+L2||yx||2x,y

在这个假设下,如果步长选择的足够小,或者通过直线搜索确定,那么我们有下面的收敛率:

F(xk)FO(1k2)

另外一种解释方法:

首先定义下面的序列:

λ0=0,λs=1+1+4λ2s1−−−−−−−−√2,and,γs=1λsλs+1

注意: γs0是任意的。
ys+1=xs1βf(xs)

xs+1=(1γs)ys+1+γsys

换句话说:
Nesterov加速梯度下降法执行简单的梯度下降步骤,从xs.

参考文献:

  1. https://blogs.princeton.edu/imabandit/2013/04/01/acceleratedgradientdescent/
    [ORF523: Nesterov’s Accelerated Gradient Descent]
  2. CSC 576: Accelerated Gradient Descent Algorithm
  3. Gradient methods for minimizing composite objective function [Nesterov2007]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值