ADMM

背景知识

对偶上升

等式约束优化问题:
在这里插入图片描述
f f f是凸函数,2.1的拉格朗日项为:
在这里插入图片描述
其对偶函数为:
在这里插入图片描述
inf代表下确界,之所以用下确界而不是用min,可能是因为有些函数没有极值(定义域取不到),但有一个下确界。
y是拉格朗日乘子项的对偶变量
则原问题的对偶问题变为:
在这里插入图片描述
在强凸性质下,原问题和对偶问题的最优解是一样的。
我们可以从对偶的最优点 y ∗ y^* y恢复出原优化问题的最优点 x ∗ x^* x
在这里插入图片描述
利用梯度上升法:
在这里插入图片描述
上述条件很严苛,

  • f ( x ) f(x) f(x)要求严格凸,并且 α \alpha α选择要比较合适,一般应用中都不会满足。因此对偶上升不会直接应用。

对偶分解:

尽管对偶上升的条件很严苛,但是它有时写成并行算法,当目标函数 f f f是可分离的时候:
在这里插入图片描述
x = ( x 1 , x 2 , . . . . , x N ) x=(x_1,x_2,....,x_N) x=(x1,x2,....,xN)并且矩阵A可以分解为 A = [ A 1 , . . . A N ] A=[A_1,...A_N] A=[A1,...AN]
A x = ∑ i = 1 N A i x i Ax=\sum_{i=1}^{N}A_ix_i Ax=i=1NAixi
故拉格朗日项可以写成:
在这里插入图片描述
因此迭代优化的时候, m i n x min_x minx可以拆成多个问题的并行优化,对偶变量更新不变这对于参数特别多的特别有用。
在这里插入图片描述

增广拉格朗日和乘子法

增广拉格朗日方法 是在罚函数的基础上增加了拉格朗日乘子项,故称为增广拉格朗日函数。
其放松了 f ( x ) f(x) f(x)严格凸的假设和一些其它条件,同时使得算法更加稳健。2.1的问题变为:
在这里插入图片描述
等价于
在这里插入图片描述
惩罚项的好处是使得对偶函数
在这里插入图片描述
在更一般的条件下可导:
增广拉格朗日相比于对偶上升多了一个平方项,但这个平方项无法分离,使得不能利用对偶上升的分块思想并行优化。所以针对此的改进,ADMM算法诞生了。

ADMM

为了整合对偶上升的可分解性和增广拉格朗日法(也叫乘子罚函数法)优秀的收敛性质,ADMM(Alternating Direction of Method of Multipliers)结合了两者的优点,
最开始(2.1)的优化问题可以写为:
在这里插入图片描述
于是:在这里插入图片描述
对偶分解的时候 x = ( x 1 , x 2 , . . . . , x N ) x=(x_1,x_2,....,x_N) x=(x1,x2,....,xN),在二次项里面不能被写成分块的形式,但在这里x被分成了x和z,天生分块,并且z作为一个独立变量不需要融合进x,保证了过程的可分解性。
于是:
在这里插入图片描述
ADMM算法包括了除x以外的 ( z k + 1 , y k + 1 ) (z^{k+1},y^{k+1}) (zk+1,yk+1),它是 ( z k , y k ) (z^{k},y^{k}) (zk,yk)的函数,x并不在其中。

scaled Form—简化ADMM

令残差 r = A x + B z − c , u = ( 1 / ρ ) ∗ y r=Ax+Bz-c,u=(1/\rho) *y r=Ax+Bzc,u=(1/ρ)y,增广拉格朗日项的线性项和二次项可以写成:
在这里插入图片描述
于是简化后的ADMM:常数项可以忽略
在这里插入图片描述
每次迭代时残差 r k = A x k + B z k − c r^{k}=Ax^{k}+Bz^{k}-c rk=Axk+Bzkc,故
在这里插入图片描述

ADMM的具体应用

约束凸优化问题

一般受约束的凸优化问题可以写成如下形式:
在这里插入图片描述
f f f为凸函数, C C C为凸集
增加分离变量,写成ADMM形式:
在这里插入图片描述
g g g是z的指示函数,即在 x ∈ C x\in C xC时有值;
其增广拉格朗日为:
在这里插入图片描述
ADMM的缩放形式:
在这里插入图片描述
这里的z的形式可以通过求导取极值点得到。

一般的l1损失函数

更为一般的优化模型:
在这里插入图片描述
l l l为凸损失函数
写成ADMM可以使用的形式:
在这里插入图片描述
其中, g ( z ) = λ ∣ ∣ z ∣ ∣ 1 g(z)=\lambda ||z||_1 g(z)=λz1
在这里插入图片描述
x − u p d a t e x-update xupdate是proximal operator evaluation,如果 l l l是平滑的,则可以用牛顿法、拟牛顿法(quasi Newton method)、共轭梯度法来解决,如果 l l l是二次项,x-min 能够直接解线性方程组。

Lasso

L1正则线性回归也叫Lasso, l ( x ) = ( 1 / 2 ) ∣ ∣ A x − b ∣ ∣ 2 2 l(x)=(1/2)||Ax-b||_2^2 l(x)=(1/2)Axb22
这里的l就是二次项,我们尝试着解解方程
在这里插入图片描述
ADMM形式:
在这里插入图片描述
f ( x ) = ( 1 / 2 ) ∣ ∣ A x − b ∣ ∣ 2 2 f(x)=(1/2)||Ax-b||_2^2 f(x)=(1/2)Axb22 g ( z ) = λ ∣ ∣ z ∣ ∣ 1 g(z)=\lambda ||z||_1 g(z)=λz1
根据上面的scaled-form形式,可以推出:
x k + 1 = a r g m i n x ( 1 / 2 ) ∣ ∣ A x − b ∣ ∣ 2 2 + ρ 2 ∣ ∣ x − z ( k ) + u ( k ) ∣ ∣ 2 2 z ( k + 1 ) = a r g m i n z λ ∣ ∣ z ∣ ∣ 1 + ρ 2 ∣ ∣ x k − z + u ( k ) ∣ ∣ 2 2 u ( k = 1 ) = u ( k ) + x k − z ( k ) x^{k+1}=argmin_x (1/2)||Ax-b||_2^2+\frac{\rho}{2}||x-z^{(k)}+u^{(k)}||_2^2 \\ z^{(k+1)}=argmin_z\lambda ||z||_1+\frac{\rho}{2}||x^{k}-z+u^{(k)}||_2^2\\ u^{(k=1)}=u^{(k)}+x^{k}-z^{(k)} xk+1=argminx(1/2)Axb22+2ρxz(k)+u(k)22z(k+1)=argminzλz1+2ρxkz+u(k)22u(k=1)=u(k)+xkz(k)
对x的更新求导取零:
A T ( A x − b ) + ρ ( x − z k + u k ) = 0 ( A T A + ρ I ) x − ( A T b + ρ ( z k − u k ) ) = 0 x k + 1 = ( A T A + ρ I ) − 1 ( A T b + ρ ( z k − u k ) ) A^T(Ax-b)+\rho (x-z^{k}+u^{k})=0 \\ (A^TA+\rho I)x-(A^Tb+\rho (z^{k}-u^{k}))=0\\ x^{k+1} =(A^TA+\rho I)^-1(A^Tb+\rho (z^{k}-u^{k})) AT(Axb)+ρ(xzk+uk)=0(ATA+ρI)x(ATb+ρ(zkuk))=0xk+1=(ATA+ρI)1(ATb+ρ(zkuk))
z z z的更新用上面的subgradient引入的soft thresholding:
在这里插入图片描述
注意 A T A + ρ I A^TA+\rho I ATA+ρI总是可逆的,since ρ > 0 \rho >0 ρ>0.
这里的矩阵可以可以作一些分解使得迭代收敛更快,详情见[4]。

x-update exploit

在x变量更新时,里面的 f , g , A , B f,g,A,B f,g,A,B涉及到矩阵的运算,涉及到大量的数据时,迭代的速度会变得缓慢,因此,对x-update的开发求解很重要。
简化x-update的分析:
在这里插入图片描述
尽管z是一个变量,但在x迭代中是一个常量,因此 v = − B z + c − u v= -Bz+c-u v=Bz+cu当作一个常量即可。

Proximity Operator 近端(临近)算子

再次简化 A = I A=I A=I
在这里插入图片描述
作为 v v v的函数,右边的项也被定义为 p r o x f , ρ ( v ) prox_{f,\rho}(v) proxf,ρ(v),被称为带惩罚项 ρ \rho ρ的f的近端算子。
在变分分析中,以f的Moreau envelope or Moreau-Yosida regularization的而出名。并且与the proximal point algorithm有关系
在这里插入图片描述
近端算子里的x-min也被称为近端优化。

尽管这不会对我们的ADMM加快效率,但是当f足够简单时,我们可以更方便的分析x-update,比如f是一个闭合非空凸集C的指示函数:
在这里插入图片描述
f的近端算子就退化为一个C上的欧几里得距离:
在这里插入图片描述
因此,近端运算符可以被视为广义投影。f的近端算子也可以被解释为f的一种梯度。
(就像上面的约束凸优化问题一样)
在这里插入图片描述

从这个式子可以理解,式在寻找一个距离v点不要太远的x点,然后使得 f ( x ) f(x) f(x)最小。
在这里插入图片描述

为什么要使用近端算子

如果目标函数式处处可微的,那么直接用梯度下降法即可,但更多的情况时f不可微的,通常这种情况下使用次梯度来优化,但是次梯度的缺点时求解慢和通常不会产生稀疏解。
近端算子则是在 f ( x ) f(x) f(x)分解为一个可微分的凸函数和不可微分的凸函数的条件下:
f ( x ) = g ( x ) + h ( x ) f(x) = g(x)+h(x) f(x)=g(x)+h(x)

Proximal Algorithm 自然肩负了要解决这两个问题的使命。
其中函数f可能是非光滑(即不可微)的。临近算子是对梯度的延伸,当函数f为光滑函数时,该临近算子就是梯度。

soft thresholding

soft thresholding就是1范数的近端算子;
在这里插入图片描述
在这里插入图片描述
S就是所谓的软阈值算子:就是上
在这里插入图片描述

特别感谢:

  1. 高涛—分布式计算、统计学习与ADMM算法
  2. Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers. Stephen Boyd. 2011
  3. 吴良超–最优化计算课程总结
  4. Fast Image Recovery Using Variable Splitting and Constrained Optimization. Manya V. Afonso. 2010
  5. Proximal Algorithm 入门 https://blog.csdn.net/luoleicn/article/details/52676378
  6. 近端梯度法(Proximal Gradient Method, PG) https://blog.csdn.net/qq547276542/article/details/78251779
  7. 近端梯度法(Proximal Gradient Descent https://blog.csdn.net/zbwgycm/article/details/83060251
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值