UA MATH567 高维统计专题3 含L1-norm的凸优化4 一阶方法的加速

  • Nesterov方法
  • Accelerate Proximal Gradient (APG)

梯度下降与Proximal gradient descent都是一阶方法,也就是借助目标函数的某种一阶导进行迭代找最小值的方法,假设目标函数f(x)f(x)f(x)是一个平滑的凸函数,则对于min⁡xf(x)\min_x f(x)minx​f(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+1​tk​−1​pk+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 min⁡xg(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+1​tk​−1​pk+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问题
min⁡x∥x∥1s.t.y=Ax\min_x \ \left\| x\right\|_1 \\ s.t.\ \ y=Axxmin​ ∥x∥1​s.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相关推荐

  1. UA MATH567 高维统计专题3 含L1-norm的凸优化2 Proximal Gradient Descent

    UA MATH567 高维统计专题3 含L1-norm的凸优化2 Proximal Gradient Descent Proximal Gradient Descent的公式推导 Proximal O ...

  2. UA MATH567 高维统计专题3 含L1-norm的凸优化6 Stochastic Gradient Descent简介

    UA MATH567 高维统计专题3 含L1-norm的凸优化6 Stochastic Gradient Descent简介 Stochastic Gradient Descent的思想 Varian ...

  3. UA MATH567 高维统计专题2 Low-rank矩阵及其估计3 Rank RIP

    UA MATH567 高维统计专题2 Low-rank矩阵及其估计3 Rank RIP Low-rank matrix completion的模型是rank minimization,上一讲我们介绍了 ...

  4. UA MATH567 高维统计专题2 Low-rank矩阵及其估计2 Rank Minimization与Nuclear Norm

    UA MATH567 高维统计专题2 Low-rank矩阵及其估计2 Rank Minimization与Nuclear Norm 上一讲我们已经提到了用rank-minimization对参数矩阵进 ...

  5. UA MATH567 高维统计专题1 稀疏信号及其恢复5 LASSO的估计误差

    UA MATH567 高维统计专题1 稀疏信号及其恢复5 LASSO的估计误差 Signal Recovery Noisy Setting LASSO的估计误差 Signal Recovery Noi ...

  6. UA MATH567 高维统计专题2 Low-rank矩阵及其估计1 Matrix Completion简介

    UA MATH567 高维统计专题2 Low-rank矩阵及其估计1 Low-rank Matrix简介 例 在推荐系统中,Netflix data是非常经典的数据集.考虑它的电影评分数据,用矩阵的每 ...

  7. UA MATH567 高维统计专题1 稀疏信号及其恢复7 LASSO的预测误差与变量选择一致性

    UA MATH567 高维统计专题1 稀疏信号及其恢复7 LASSO的预测误差与变量选择一致性 Prediction Error Variable Selection Consistency Pred ...

  8. UA MATH567 高维统计专题1 稀疏信号及其恢复6 随机设计矩阵下LASSO的估计误差

    UA MATH567 高维统计专题1 稀疏信号及其恢复6 随机设计矩阵下LASSO的估计误差 上一讲我们推导了noisy setting下LASSO估计误差的阶O(slog⁡d/n)O(\sqrt{s ...

  9. UA MATH567 高维统计专题1 稀疏信号及其恢复4 Basis Pursuit的算法 Projected Gradient Descent

    UA MATH567 高维统计专题1 稀疏信号及其恢复4 Basis Pursuit的算法 Projected Gradient Descent 前三讲完成了对sparse signal recove ...

最新文章

  1. 被低估的.net(上) - 微软MonkeyFest 2018广州分享会活动回顾
  2. 在Visual Studio上开发Node.js程序(2)——远程调试及发布到Azure
  3. 多字段回溯 mysql_回溯算法 | 追忆那些年曾难倒我们的八皇后问题
  4. oracle插入时间报错,Oracle 插入时间时 报错:ORA-01861: 文字与格式字符串不匹配 的解决办法...
  5. 20190909:(leetcode习题)第一个错误的版本
  6. git merge和git merge --no-ff有什么区别?
  7. 2008服务器文件共享,2008服务器文件共享
  8. 创建mysql表sql语句_mysql创建表的sql语句
  9. JAVA除数为0报错?
  10. Windows的hosts文件在哪里?
  11. [转载]OFDM基本原理及系统框图
  12. python发送QQ邮件
  13. 一个普通前端女孩的一年|2021总结
  14. 美容院如何提升员工敬业度?
  15. 常见多变量/多元统计分析方法分类图
  16. 这是我们公司总结的一些关于中文乱码问题的一些解决方案和经验和大家分享
  17. c#纸张可以无限次对折,纸张厚度为0.07毫米。问多少次对折至少可以超过8848?
  18. 离线安装vs2019
  19. 【计算机考研择校】江苏大学
  20. 《强化学习周刊》第71期:ICAPS2023强化学习论文推荐、Meta:通过将语言模型与战略推理相结合,在外交游戏中发挥人的水平...

热门文章

  1. 机器学习笔记(二)模型评估与选择
  2. 离线轻量级大数据平台Spark之单机部署及Java开发
  3. 进程——Windows核心编程学习手札系列之四
  4. 只能在微信浏览器打开的链接,如何查看源码
  5. 实现Runnable接口的形式创建线程
  6. 初次使用MyEclipse || Servlet 的生命周期
  7. 详解js中typeof、instanceof与constructor
  8. python 技术篇-使用logging日志模块自定义时间格式
  9. Python 技术篇 - pip下载、安装慢解决方法,更改pip数据源实现秒速下载,配置阿里云国内镜像实例演示
  10. Python基础 基本数据类型