UA MATH567 高维统计专题3 含L1-norm的凸优化4 Nesterov方法与Accelerate Proximal Gradient
UA MATH567 高维统计专题3 含L1-norm的凸优化4 一阶方法的加速
- Nesterov方法
- Accelerate Proximal Gradient (APG)
梯度下降与Proximal gradient descent都是一阶方法,也就是借助目标函数的某种一阶导进行迭代找最小值的方法,假设目标函数f(x)f(x)f(x)是一个平滑的凸函数,则对于minxf(x)\min_x f(x)minxf(x),一阶方法可以用下面的递推式表示
xk+1=ϕk(x0,x1,⋯,xk,∇f(x0),∇f(x1),⋯,∇f(xk))x_{k+1}=\phi_k(x_0,x_1,\cdots,x_k,\nabla f(x_0),\nabla f(x_1),\cdots,\nabla f(x_k))xk+1=ϕk(x0,x1,⋯,xk,∇f(x0),∇f(x1),⋯,∇f(xk))
但是一阶方法只利用了梯度信息,也就是单调性的信息(kkk次迭代后误差为O(1/k)O(1/k)O(1/k),而误差的下界为O(1/k2)O(1/k^2)O(1/k2)),所以一阶方法还有可以提高的空间。
Nesterov方法
Nesterov (1983)认为,一阶方法会出现oscillation,也就是如下图所示的,下降路径存在很严重的“震荡”,他觉得在当次下降中,比如在x2x_2x2到x3x_3x3的下降过程中,下降方向不应该只受到x2x_2x2处梯度或者次梯度的影响,而是应该综合x2x_2x2处的梯度、次梯度以及x1x_1x1到x2x_2x2下降的“惯性”,所以Nesterov引入了一种Momentum用来修正下降方向。
基于Nesterov的思想,递推式可以写成
xk+1=xk−α∇f(xk)⏟GradientDescent+β(xk−xk−1)⏟Momentumx_{k+1}=\underbrace{x_k-\alpha\nabla f(x_k)}_{Gradient\ Descent}+\underbrace{\beta(x_k-x_{k-1})}_{Momentum}xk+1=Gradient Descentxk−α∇f(xk)+Momentumβ(xk−xk−1)
这个式子只是简单描述Nesterov的思想,具体算法实现有很多种形式,比较常用的一种是:
假设∇f\nabla f∇f是LLL-Lipschitz函数,取α=1/L\alpha=1/Lα=1/L, t1=1t_1=1t1=1,按下面的递推式迭代
tk+1=1+1+4tk22βk+1=tk−1tk+1pk+1=xk+βk+1(xk−xk−1)xk+1=pk+1−α∇f(pk+1)t_{k+1}=\frac{1+\sqrt{1+4t_k^2}}{2} \\ \beta_{k+1}=\frac{t_k-1}{t_{k+1}} \\ p_{k+1}=x_k+\beta_{k+1}(x_k-x_{k-1}) \\ x_{k+1}=p_{k+1}-\alpha\nabla f(p_{k+1})tk+1=21+1+4tk2βk+1=tk+1tk−1pk+1=xk+βk+1(xk−xk−1)xk+1=pk+1−α∇f(pk+1)
Accelerate Proximal Gradient (APG)
第二讲介绍了Proximal Gradient Descent,在分解F=f+gF=f+gF=f+g以及∇f\nabla f∇f是LLL-Lipschitz函数的条件下,Proximal Gradient Descent可以用两个公式表示出来:
wk=xk−∇f(xk)Lxk+1=proxg/L(wk)w_k=x_k-\frac{\nabla f(x_k)}{L} \\ x_{k+1}=prox_{g/L}(w_k)wk=xk−L∇f(xk)xk+1=proxg/L(wk)
其中proxgprox_gproxg是凸函数ggg的proximal operator为
proxg(w)=arg minxg(x)+12∥x−w∥22prox_g(w)=\argmin_x \ g(x)+\frac{1}{2}\left\| x-w\right\|^2_2proxg(w)=xargmin g(x)+21∥x−w∥22
既然Proximal Gradient Descent的第一步也是一阶方法,我们也就可以用Nesterov方法做加速:
t1=1,tk+1=1+1+4tk22βk+1=tk−1tk+1pk+1=xk+βk+1(xk−xk−1)wk+1=pk+1−1L∇f(pk+1)xk+1=proxg/L(wk)t_1= 1,t_{k+1}=\frac{1+\sqrt{1+4t_k^2}}{2} \\ \beta_{k+1}=\frac{t_k-1}{t_{k+1}} \\ p_{k+1}=x_k+\beta_{k+1}(x_k-x_{k-1}) \\ w_{k+1}=p_{k+1}-\frac{1}{L}\nabla f(p_{k+1}) \\ x_{k+1}=prox_{g/L}(w_k)t1=1,tk+1=21+1+4tk2βk+1=tk+1tk−1pk+1=xk+βk+1(xk−xk−1)wk+1=pk+1−L1∇f(pk+1)xk+1=proxg/L(wk)
这个算法被称为Accelerate Proximal Gradient (APG),这里附一个用APG做Basis Pursuit问题
minx∥x∥1s.t.y=Ax\min_x \ \left\| x\right\|_1 \\ s.t.\ \ y=Axxmin ∥x∥1s.t. y=Ax
的R代码示例(请读者自行调试)
soft.threshold <- function(x,tau){len0 = length(x)y = rep(0,len0)for(index0 in 1:len0){if(x[index0]>=tau){y[index0] = x[index0]-tau}if(x[index0]<=-tau){y[index0] = x[index0]+tau}}return(y)
}APG <- function(y,A,x0,lambda,mu,maxiter = 100,eps = 1e-3){x1 = x0t1 = 1L = abs(max(eigen(t(A)%*%A)$values))numiter = 0diff.x = 1while(numiter<maxiter & diff.x>=eps){t = 0.5*(1+sqrt(1+4*t1^2))beta = (t1 - 1)/tp = x1 + beta*(x1 - x0)w = p - (t(A)%*%lambda + mu*t(A)%*%(A%*%p-y))/Lx = soft.threshold(w,1/L)diff.x = sqrt(sum((x-x1)^2))numiter = numiter + 1x0 = x1x1 = x}return(x1)
}
UA MATH567 高维统计专题3 含L1-norm的凸优化4 Nesterov方法与Accelerate Proximal Gradient相关推荐
- UA MATH567 高维统计专题3 含L1-norm的凸优化2 Proximal Gradient Descent
UA MATH567 高维统计专题3 含L1-norm的凸优化2 Proximal Gradient Descent Proximal Gradient Descent的公式推导 Proximal O ...
- UA MATH567 高维统计专题3 含L1-norm的凸优化6 Stochastic Gradient Descent简介
UA MATH567 高维统计专题3 含L1-norm的凸优化6 Stochastic Gradient Descent简介 Stochastic Gradient Descent的思想 Varian ...
- UA MATH567 高维统计专题2 Low-rank矩阵及其估计3 Rank RIP
UA MATH567 高维统计专题2 Low-rank矩阵及其估计3 Rank RIP Low-rank matrix completion的模型是rank minimization,上一讲我们介绍了 ...
- UA MATH567 高维统计专题2 Low-rank矩阵及其估计2 Rank Minimization与Nuclear Norm
UA MATH567 高维统计专题2 Low-rank矩阵及其估计2 Rank Minimization与Nuclear Norm 上一讲我们已经提到了用rank-minimization对参数矩阵进 ...
- UA MATH567 高维统计专题1 稀疏信号及其恢复5 LASSO的估计误差
UA MATH567 高维统计专题1 稀疏信号及其恢复5 LASSO的估计误差 Signal Recovery Noisy Setting LASSO的估计误差 Signal Recovery Noi ...
- UA MATH567 高维统计专题2 Low-rank矩阵及其估计1 Matrix Completion简介
UA MATH567 高维统计专题2 Low-rank矩阵及其估计1 Low-rank Matrix简介 例 在推荐系统中,Netflix data是非常经典的数据集.考虑它的电影评分数据,用矩阵的每 ...
- UA MATH567 高维统计专题1 稀疏信号及其恢复7 LASSO的预测误差与变量选择一致性
UA MATH567 高维统计专题1 稀疏信号及其恢复7 LASSO的预测误差与变量选择一致性 Prediction Error Variable Selection Consistency Pred ...
- UA MATH567 高维统计专题1 稀疏信号及其恢复6 随机设计矩阵下LASSO的估计误差
UA MATH567 高维统计专题1 稀疏信号及其恢复6 随机设计矩阵下LASSO的估计误差 上一讲我们推导了noisy setting下LASSO估计误差的阶O(slogd/n)O(\sqrt{s ...
- UA MATH567 高维统计专题1 稀疏信号及其恢复4 Basis Pursuit的算法 Projected Gradient Descent
UA MATH567 高维统计专题1 稀疏信号及其恢复4 Basis Pursuit的算法 Projected Gradient Descent 前三讲完成了对sparse signal recove ...
最新文章
- 被低估的.net(上) - 微软MonkeyFest 2018广州分享会活动回顾
- 在Visual Studio上开发Node.js程序(2)——远程调试及发布到Azure
- 多字段回溯 mysql_回溯算法 | 追忆那些年曾难倒我们的八皇后问题
- oracle插入时间报错,Oracle 插入时间时 报错:ORA-01861: 文字与格式字符串不匹配 的解决办法...
- 20190909:(leetcode习题)第一个错误的版本
- git merge和git merge --no-ff有什么区别?
- 2008服务器文件共享,2008服务器文件共享
- 创建mysql表sql语句_mysql创建表的sql语句
- JAVA除数为0报错?
- Windows的hosts文件在哪里?
- [转载]OFDM基本原理及系统框图
- python发送QQ邮件
- 一个普通前端女孩的一年|2021总结
- 美容院如何提升员工敬业度?
- 常见多变量/多元统计分析方法分类图
- 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享
- c#纸张可以无限次对折,纸张厚度为0.07毫米。问多少次对折至少可以超过8848?
- 离线安装vs2019
- 【计算机考研择校】江苏大学
- 《强化学习周刊》第71期:ICAPS2023强化学习论文推荐、Meta:通过将语言模型与战略推理相结合,在外交游戏中发挥人的水平...