ADMM算法求解二次项目标函数+l1正则项问题
问题描述
minxf(x)+λ∣∣x∣∣1⋅⋅⋅⋅⋅⋅(1) \min_x f(x)+\lambda||x||_1······(1) xminf(x)+λ∣∣x∣∣1⋅⋅⋅⋅⋅⋅(1)
其中,f(x)为二次项函数,λ>0,x是RnR^nRn上的列向量。
分析
由于(1)带l1范数不可导,考虑将(1)转化为以下问题(2):
minf(x)+g(z)x−z=0 \min f(x)+g(z)\\ x-z=0 minf(x)+g(z)x−z=0
其中,
g(z)=λ∣∣z∣∣1 g(z)=\lambda||z||_1 g(z)=λ∣∣z∣∣1
则增广拉格朗日函数为
L(x,z,y)=f(x)+g(z)+yT(x−z)+n2∣∣x−z∣∣22 L(x,z,y)=f(x)+g(z)+y^{T}(x-z)+\frac{n}{2}||x-z||_{2}^{2} L(x,z,y)=f(x)+g(z)+yT(x−z)+2n∣∣x−z∣∣22
迭代算法为
xk+1:=arg minxL(x,zk,yk)zk+1:=arg minzL(xk+1,z,yk)yk+1:=yk+n(xk+1−zk+1) x^{k+1}:=\argmin_xL(x,z^k,y^k)\\z^{k+1}:=\argmin_zL(x^{k+1},z,y^k)\\y^{k+1}:=y^k+n(x^{k+1}-z^{k+1}) xk+1:=xargminL(x,zk,yk)zk+1:=zargminL(xk+1,z,yk)yk+1:=yk+n(xk+1−zk+1