日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

ADMM算法求解二次项目标函数+l1正则项问题

發布時間:2023/12/9 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ADMM算法求解二次项目标函数+l1正则项问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

ADMM算法求解二次項目標函數+l1正則項問題

問題描述

min?xf(x)+λ∣∣x∣∣1??????(1)\min_x f(x)+\lambda||x||_1······(1) xmin?f(x)+λx1???????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)=λz1?
則增廣拉格朗日函數為
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?z22?
迭代算法為
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?z22?=yTr+2n?r22?=2n?r+n1?y22??2n?n1?y22?=2n?x?z+u22??2n?u22?(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+uk22?zk+1:=zargmin?g(z)+2n?xk+1?z+uk22?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?b22?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+uk22?=2n?(Ax?b22?+x?zk+uk22?)
對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^kATA+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+uk22?=Σ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正则项问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。