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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

ADMM优化框架

發布時間:2025/3/17 编程问答 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ADMM优化框架 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

交替方向乘子法(Alternating Direction Method of Multipliers,ADMM)是一種求解優化問題的計算框架, 適用于求解分布式凸優化問題,特別是統計學習問題。 ADMM 通過分解協調(Decomposition-Coordination)過程,將大的全局問題分解為多個較小、較容易求解的局部子問題,并通過協調子問題的解而得到大的全局問題的解。

ADMM 最早分別由 Glowinski & Marrocco 及 Gabay & Mercier 于 1975 年和 1976 年提出,并被 Boyd 等人于 2011 年重新綜述并證明其適用于大規模分布式優化問題。由于 ADMM 的提出早于大規模分布式計算系統和大規模優化問題的出現,所以在 2011 年以前,這種方法并不廣為人知。

ADMM 計算框架(也稱作Split Bregmen)

一般問題

若優化問題可表示為

minf(x)+g(z)s.t.Ax+Bz=c(1)minf(x)+g(z) s.t.Ax+Bz=c\qquad (1)minf(x)+g(z)s.t.Ax+Bz=c(1)

其中x∈Rs,z∈Rn,A∈Rp×s,B∈Rp×n,c∈Rp,f:Rs→Rx∈R^s,z∈R^n,A∈R^{p×s},B∈R^{p×n},c∈R^p,f:R^s→RxRs,zRn,ARp×s,BRp×n,cRp,f:RsR。x與 z 是優化變量;f(x)+g(z)f(x)+g(z)f(x)+g(z)是待最小化的目標函數(Objective Function),它由與變量 x 相關的
f(x)f(x)f(x)和與變量 x 相關的 g(z)這兩部分構成,這種結構可以很容易地處理統計學習問題優化目標中的正則化項;Ax+Bz=cAx+Bz=cAx+Bz=c 是 p 個等式約束條件(Equality Constraints)的合寫。其增廣拉格朗日函數(Augmented Lagrangian)為

Lρ(x,z,y)=f(x)+g(z)+yT(Ax+Bz?c)+(ρ/2)∥Ax+Bz?c∥22Lρ(x,z,y)=f(x)+g(z)+y^T(Ax+Bz?c)+(ρ/2)∥Ax+Bz?c∥^2_2Lρ(x,z,y)=f(x)+g(z)+yT(Ax+Bz?c)+(ρ/2)Ax+Bz?c22?

其中 y 是對偶變量(或稱為拉格朗日乘子), ρ>0ρ>0ρ>0 是懲罰參數。LρLρLρ 名稱中的“增廣”是指其中加入了二次懲罰項 (ρ/2)∥Ax+Bz?c∥22(ρ/2)∥Ax+Bz?c∥^2_2(ρ/2)Ax+Bz?c22?

則該優化問題的 ADMM 迭代求解方法為

xk+1:=argminxLρ(x,zk,yk)x^{k+1}:=argmin_xLρ(x,z^k,y^k)xk+1:=argminx?Lρ(x,zk,yk) zk+1:=argminzLρ(xk+1,z,yk)z^{k+1}:=argmin_zLρ(x^{k+1},z,y^k)zk+1:=argminz?Lρ(xk+1,z,yk) yk+1:=yk+ρ(Axk+1+Bzk+1?c)y^{k+1}:=y^k+ρ(Ax^{k+1}+Bz^{k+1}?c)yk+1:=yk+ρ(Axk+1+Bzk+1?c)
u=(1/ρ)yu=(1/ρ)yu=(1/ρ)y,并對 Ax+Bz?cAx+Bz?cAx+Bz?c配方,可得表示上更簡潔的縮放形式(Scaled Form)

xk+1:=argminx(f(x)+(ρ/2)∥Ax+Bzk?c+uk∥22)x^{k+1}:=argmin_x(f(x)+(ρ/2)∥Ax+Bz^k?c+u^k∥^2_2)xk+1:=argminx?(f(x)+(ρ/2)Ax+Bzk?c+uk22?) zk+1:=argminz(g(z)+(ρ/2)∥Axk+Bz?c+uk∥22)z^{k+1}:=argmin_z(g(z)+(ρ/2)∥Ax^k+Bz?c+u^k∥^2_2)zk+1:=argminz?(g(z)+(ρ/2)Axk+Bz?c+uk22?) uk+1:=uk+Axk+1+Bzk+1?cu^{k+1}:=uk+Ax^{k+1}+Bz^{k+1}?cuk+1:=uk+Axk+1+Bzk+1?c
可以看出,每次迭代分為三步:

求解與x相關的最小化問題,更新變量x求解與 x相關的最小化問題,更新變量 xxx 求解與z相關的最小化問題,更新變量z求解與 z 相關的最小化問題,更新變量 zzz 更新對偶變量u更新對偶變量 uu
ADMM名稱中的“乘子法”是指這是一種使用增廣拉格朗日函數(帶有二次懲罰項)的對偶上升(Dual Ascent)方法,而“交替方向”是指變量 x 和 z 是交替更新的。兩變量的交替更新是在f(x)f(x)f(x)g(z)g(z)g(z)可分時可以將優化問題分解的關鍵原因。

收斂性

可以證明,當滿足條件

函數 f,gf,gf,g具有 closed, proper, convex 的性質
拉格朗日函數 L0L0L0 有鞍點
時,ADMM 的迭代收斂(當 k→∞k→∞krk→0,f(xk)+g(zk)→p?,yk→y?r^k→0,f(x^k)+g(z^k)→p^?,y^k→y^?rk0,f(xk)+g(zk)p?,yky?。這樣的收斂條件比沒有使用增廣拉格朗日函數的對偶上升法的收斂條件寬松了不少。

在高精度要求下,ADMM 的收斂很慢;但在中等精度要求下,ADMM 的收斂速度可以接受(幾十次迭代)。因此 ADMM 框架尤其適用于不要求高精度的優化問題,這恰好是大規模統計學習問題的特點。

一致性(Consensus)問題

一類可用 ADMM 框架解決的特殊優化問題是一致性(Consensus)問題,其形式為

min∑i=1Nfi(z)+g(z)min∑^N_{i=1}f_i(z)+g(z)mini=1N?fi?(z)+g(z)

將加性優化目標 ∑i=1Nfi(z)∑i=1Nfi(z)∑^N_{i=1}f_i(z)∑_{i=1}^Nf_i(z)i=1N?fi?(z)i=1N?fi?(z) 轉化為可分優化目標 ∑i=1Nfi(xi)∑i=1Nfi(xi)∑^N_{i=1}f_i(x_i)∑_{i=1}^Nf_i(x_i)i=1N?fi?(xi?)i=1N?fi?(xi?),并增加相應的等式約束條件,可得其等價問題
min∑i=1Nfi(xi)+g(z)s.t.xi?z=0,i=1,…,N(2)min∑^N_{i=1}f_i(x_i)+g(z) s.t.x_i?z=0, i=1,…,N\qquad (2)mini=1N?fi?(xi?)+g(z)s.t.xi??z=0,i=1,,N(2)

這里約束條件要求每個子目標中的局部變量 xix_ixi?與全局變量 zzz 一致,因此該問題被稱為一致性問題。

可以看出,令式(1)中的

即得到式(2)。因此 Consensus 問題可用 ADMM 框架求解,其迭代方法為

可以看出,變量x和對偶變量u的更新都是可以采用分布式計算的。只有在更新變量z時,需要收集x和u分布式計算的結果,進行集中式計算。可以看出,變量 x 和對偶變量 u 的更新都是可以采用分布式計算的。只有在更新變量 z 時,需要收集 x和 u分布式計算的結果,進行集中式計算。xuzxu

統計學習問題應用

統計學習問題也是模型擬合問題,可表示為

minl(D,d,z)+r(z)min l(D,d,z)+r(z)minl(D,d,z)+r(z)

其中 z∈Rnz∈R^nzRn 是待學習的參數, D∈Rm×nD∈R^{m×n}DRm×n 是模型的輸入數據集, d∈Rmd∈R^mdRm是模型的輸出數據集, l:Rm×n×Rm×Rn→Rl:R^{m×n}×R^m×R^n→Rl:Rm×n×Rm×RnR 是損失函數, r:Rn→Rr:R^n→Rr:RnR 是正則化項, m表示數據的個數, n表示特征的個數。

對于帶L1正則化項的線性回歸(Lasso),其平方損失函數為

l(D,d,z)=(1/2)‖Dz?d‖22l(D,d,z)=(1/2)‖Dz?d‖^2_2l(D,d,z)=(1/2)Dz?d22?

對于邏輯回歸(Logistic Regression),其極大似然損失函數為

l(D,d,z)=1T(log?(exp?(Dz)+1)?DzdT)l(D,d,z)=1^T(log?(exp?(Dz)+1)?Dzd^T)l(D,d,z)=1T(log?(exp?(Dz)+1)?DzdT)

對于線性支持向量機(Linear Support Vector Machine),其合頁(Hinge)損失函數為

l(D,d,z)=1T(1?DzdT)+l(D,d,z)=1^T(1?Dzd^T)_+l(D,d,z)=1T(1?DzdT)+?

將訓練數據集(輸入數據和輸出數據)在樣本的維度( mmm )劃分成 NNN


可以看出,令式(2)中的 fi(xi)=li(Di,di,xi),g(z)=r(z)f_i(x_i)=l_i(D_i,d_i,x_i),g(z)=r(z)fi?(xi?)=li?(Di?,di?,xi?),g(z)=r(z) ,即得到式(3),因此 統計學習問題可用 Consensus ADMM 實現分布式計算,其迭代方法為

分布式實現

MPI

MPI 是一個語言無關的并行算法消息傳遞規約。使用 MPI 范式的 Consensus ADMM 算法如下所示。

1.InitializeNprocesses,alongwithxi,ui,ri,z1. Initialize N processes, along with x_i,u_i,r_i,z1.InitializeNprocesses,alongwithxi?,ui?,ri?,z

Repeat

該算法中假設有 N 個處理器,每個處理器都運行同樣的程序,只是處理的數據不同。第6步中的 Allreduce 是 MPI 中定義的操作,表示對相應的局部變量進行全局操作(如這里的求和操作),并將結果更新到每一個處理器。

MapReduce

MapReduce 是一個在工業界和學術界都很流行的分布式批處理編程模型。使用 MapReduce 范式的 Consensus ADMM 算法(一次迭代)如下所示。

為了實現多次迭代,該算法需要由一個 wrapper 程序在每次迭代結束后判斷是否滿足迭代終止條件

若不滿足則啟動下一次迭代。

參考文獻

1.Boyd S, Parikh N, Chu E, et al. Distributed optimization and statistical learning via the alternating direction method of multipliers[J]. Foundations and Trends? in Machine Learning, 2011, 3(1): 1-122.

2.Eckstein J, Yao W. Understanding the convergence of the alternating direction method of multipliers: Theoretical and computational perspectives[J]. Pac. J. Optim., 2014.

3.Lusk E, Huss S, Saphir B, et al. MPI: A Message-Passing Interface Standard Version 3.1[J], 2015.

4.Dean J, Ghemawat S. MapReduce: simplified data processing on large clusters[J]. Communications of the ACM, 2008, 51(1): 107-113.

5.http://shijun.wang/2016/01/19/admm-for-distributed-statistical-learning/

新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的ADMM优化框架的全部內容,希望文章能夠幫你解決所遇到的問題。

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