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→Rx∈Rs,z∈Rn,A∈Rp×s,B∈Rp×n,c∈Rp,f:Rs→R。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?c∥22?
其中 y 是對偶變量(或稱為拉格朗日乘子), ρ>0ρ>0ρ>0 是懲罰參數。LρLρLρ 名稱中的“增廣”是指其中加入了二次懲罰項 (ρ/2)∥Ax+Bz?c∥22(ρ/2)∥Ax+Bz?c∥^2_2(ρ/2)∥Ax+Bz?c∥22?。
則該優化問題的 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+uk∥22?) 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+uk∥22?) 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相關的最小化問題,更新變量 x求解與x相關的最小化問題,更新變量x 求解與z相關的最小化問題,更新變量z求解與 z 相關的最小化問題,更新變量 z求解與z相關的最小化問題,更新變量z 更新對偶變量u更新對偶變量 u更新對偶變量u
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→∞k→∞,rk→0,f(xk)+g(zk)→p?,yk→y?r^k→0,f(x^k)+g(z^k)→p^?,y^k→y^?rk→0,f(xk)+g(zk)→p?,yk→y?。這樣的收斂條件比沒有使用增廣拉格朗日函數的對偶上升法的收斂條件寬松了不少。
在高精度要求下,ADMM 的收斂很慢;但在中等精度要求下,ADMM 的收斂速度可以接受(幾十次迭代)。因此 ADMM 框架尤其適用于不要求高精度的優化問題,這恰好是大規模統計學習問題的特點。
一致性(Consensus)問題
一類可用 ADMM 框架解決的特殊優化問題是一致性(Consensus)問題,其形式為
min∑i=1Nfi(z)+g(z)min∑^N_{i=1}f_i(z)+g(z)mini=1∑N?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=1∑N?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分布式計算的結果,進行集中式計算。可以看出,變量x和對偶變量u的更新都是可以采用分布式計算的。只有在更新變量z時,需要收集x和u分布式計算的結果,進行集中式計算。
統計學習問題應用
統計學習問題也是模型擬合問題,可表示為
minl(D,d,z)+r(z)min l(D,d,z)+r(z)minl(D,d,z)+r(z)
其中 z∈Rnz∈R^nz∈Rn 是待學習的參數, D∈Rm×nD∈R^{m×n}D∈Rm×n 是模型的輸入數據集, d∈Rmd∈R^md∈Rm是模型的輸出數據集, l:Rm×n×Rm×Rn→Rl:R^{m×n}×R^m×R^n→Rl:Rm×n×Rm×Rn→R 是損失函數, r:Rn→Rr:R^n→Rr:Rn→R 是正則化項, 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?d‖22?
對于邏輯回歸(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/
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
- 上一篇: 2013年全国首届CISA认证培训强化班
- 下一篇: AnyChat SDK支持哪些开发语言?