ADMM算法求解二次项目标函数+l1正则项问题
ADMM算法求解二次項目標函數+l1正則項問題
問題描述
min?xf(x)+λ∣∣x∣∣1??????(1)\min_x f(x)+\lambda||x||_1······(1) xmin?f(x)+λ∣∣x∣∣1???????(1)
其中,f(x)為二次項函數,λ>0,x是RnR^nRn上的列向量。
分析
由于(1)帶l1范數不可導,考慮將(1)轉化為以下問題(2):
min?f(x)+g(z)x?z=0\min f(x)+g(z)\\ x-z=0 minf(x)+g(z)x?z=0
其中,
g(z)=λ∣∣z∣∣1g(z)=\lambda||z||_1 g(z)=λ∣∣z∣∣1?
則增廣拉格朗日函數為
L(x,z,y)=f(x)+g(z)+yT(x?z)+n2∣∣x?z∣∣22L(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?min?xL(x,zk,yk)zk+1:=arg?min?zL(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:=xargmin?L(x,zk,yk)zk+1:=zargmin?L(xk+1,z,yk)yk+1:=yk+n(xk+1?zk+1)
簡化
令r=x?zr=x-zr=x?z,則
yT(x?z)+n2∣∣x?z∣∣22=yTr+n2∣∣r∣∣22=n2∣∣r+1ny∣∣22?n2∣∣1ny∣∣22=n2∣∣x?z+u∣∣22?n2∣∣u∣∣22(u=1ny)y^T(x-z)+\frac{n}{2}||x-z||_2^2=y^Tr+\frac{n}{2}||r||_2^2\\=\frac{n}{2}||r+\frac{1}{n}y||_2^2-\frac{n}{2}||\frac{1}{n}y||_2^2\\=\frac{n}{2}||x-z+u||_2^2-\frac{n}{2}||u||^2_2\\(u=\frac{1}{n}y) yT(x?z)+2n?∣∣x?z∣∣22?=yTr+2n?∣∣r∣∣22?=2n?∣∣r+n1?y∣∣22??2n?∣∣n1?y∣∣22?=2n?∣∣x?z+u∣∣22??2n?∣∣u∣∣22?(u=n1?y)
迭代算法可轉化為
xk+1:=arg?min?xf(x)+n2∣∣x?zk+uk∣∣22zk+1:=arg?min?zg(z)+n2∣∣xk+1?z+uk∣∣22uk+1:=uk+xk+1?zk+1x^{k+1}:=\argmin_xf(x)+\frac{n}{2}||x-z^k+u^k||^2_2\\z^{k+1}:=\argmin_zg(z)+\frac{n}{2}||x^{k+1}-z+u^k||^2_2\\u^{k+1}:=u^k+x^{k+1}-z^{k+1} xk+1:=xargmin?f(x)+2n?∣∣x?zk+uk∣∣22?zk+1:=zargmin?g(z)+2n?∣∣xk+1?z+uk∣∣22?uk+1:=uk+xk+1?zk+1
問題的求解
1.x-update的求取
對于x-update,由于f(x)是二次項目標函數,不妨假設
f(x)=n2∣∣Ax?b∣∣22f(x)=\frac{n}{2}||Ax-b||^2_2f(x)=2n?∣∣Ax?b∣∣22?A為n階方陣,b是與x同規模的矩陣。
那么x-update的求解即尋求超定線性方程組
Ax?b=0x?zk+uk=0Ax-b=0\\x-z^k+u^k=0 Ax?b=0x?zk+uk=0的最小二乘解。此外,還可以通過以下方法求取x-update
f(x)+n2∣∣x?zk+uk∣∣22=n2(∣∣Ax?b∣∣22+∣∣x?zk+uk∣∣22)f(x)+\frac{n}{2}||x-z^k+u^k||^2_2=\frac{n}{2}(||Ax-b||^2_2+||x-z^k+u^k||^2_2) f(x)+2n?∣∣x?zk+uk∣∣22?=2n?(∣∣Ax?b∣∣22?+∣∣x?zk+uk∣∣22?)
對x求導,并令導數為0,有
ATAx?ATb+x?zk+uk=(ATA+I)x?(ATb+zk?uk)=0A^TAx-A^Tb+x-z^k+u^k=(A^TA+I)x-(A^Tb+z^k-u^k)=0 ATAx?ATb+x?zk+uk=(ATA+I)x?(ATb+zk?uk)=0
即(ATA+I)x=ATb+zk?uk(A^TA+I)x=A^Tb+z^k-u^k(ATA+I)x=ATb+zk?uk
2.z-update的求取
對于z-update的求取,
g(z)+n2∣∣xk+1?z+uk∣∣22=Σi=1n(λ∣zi∣+n2(xk+1?z+uk)2)g(z)+\frac{n}{2}||x^{k+1}-z+u^k||_2^2=\Sigma_{i=1}^{n}(\lambda|z_i|+\frac{n}{2}(x^{k+1}-z+u^k)^2)g(z)+2n?∣∣xk+1?z+uk∣∣22?=Σi=1n?(λ∣zi?∣+2n?(xk+1?z+uk)2)
對于第i個分量
當xik+1+uik>λnx^{k+1}_i+u^k_i>\frac{\lambda}{n}xik+1?+uik?>nλ?時,zik+1=xik+1+uik?λnz^{k+1}_i=x^{k+1}_i+u^k_i-\frac{\lambda}{n}zik+1?=xik+1?+uik??nλ?;
當xik+1+uik<?λnx^{k+1}_i+u^k_i<-\frac{\lambda}{n}xik+1?+uik?<?nλ?時,zik+1=xik+1+uik+λnz^{k+1}_i=x^{k+1}_i+u^k_i+\frac{\lambda}{n}zik+1?=xik+1?+uik?+nλ?;
其他,zik+1=0.z^{k+1}_i=0.zik+1?=0.
3.u-update的求取
uk+1=uk+xk+1?zk+1u^{k+1}=u^k+x^{k+1}-z^{k+1}uk+1=uk+xk+1?zk+1
總結
以上是生活随笔為你收集整理的ADMM算法求解二次项目标函数+l1正则项问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机网络应用答题卡,2013-2014
- 下一篇: 使用HTML5、CSS3和jQuery增