龙空技术网

优化 | 浅谈交替方向乘子法(ADMM)的经典使用

留德华叫兽 161

前言:

现在朋友们对“ad9画原理图”可能比较讲究,我们都需要了解一些“ad9画原理图”的相关资讯。那么小编同时在网上汇集了一些对于“ad9画原理图””的相关资讯,希望各位老铁们能喜欢,大家一起来了解一下吧!

『运筹OR帷幄』原创

作者:门泊东吴

编者按

接之前公众号推送的文章《【优化】交替方向乘子法(ADMM)的基本原理》,本文从所求解的优化问题的形式出发,分成三大类归纳整理ADMM算法的经典使用。

之前公众号推送了文章《【优化】交替方向乘子法(ADMM)的基本原理》,主要参考的是Stephen Boyd等人写的经典小册子[1],其中的第三章最为相关。我想接着前面讲的流程和原理,整理一下ADMM算法在求解各种优化问题上的经典使用,学艺不精,一知半(不)解,欢迎大家批评指正。

1. N-block ADMM的直接推广不trivial

在讲应用之前,我想先聊聊关于N-block ADMM的直接推广。大家都知道,(naive) ADMM works for 2 blocks,很多人也都提到了,从2-block到N-block的直接推广并不trivial,那什么是N-block的直接推广呢?我们不妨来写一下,假设有这样一个线性约束的N-block凸优化问题:

2. ADMM算法的经典使用

在实际应用中,有很多(大规模)凸优化问题可以写成上述N-block形式,而N-block ADMM的直接推广并不trivial,那为什么ADMM在求解(分布式)凸优化问题上还有那么广泛的应用呢?是如何被使用的呢?我觉得,关键在于问题的巧妙变形。下面,我想尝试从ADMM所求解的优化问题的形式出发,把它的经典使用分成三大类进行归纳整理,希望能帮助大家更好地理解这个算法,内容主要摘自[1]的4-8章还有平时读到的一些paper。

2.1

直接使用

2.2

原问题变形后使用

机器学习的标准范式:loss function + regularization([1]第6章)

Distributed Model Fitting([1]第8章)

网络优化问题:点 + 边

Youth ends when egotism does; maturity begins when one

Basis Pursuit([1]6.2)

Linear/Quadratic Programming([1]5.2)

Consensus Optimization([1]第7章)

其他:Graph Form, Conic Programming,Semidefinite Programming ...

还有一些进阶版的ADMM使用,实在写不动了,就简单提一下吧。基于ADMM的分布式优化算法解graph form of constrained convex optimization:

可以参考[8]。用ADMM求解conic optimization可以参考[9],开源代码地址:SCS()。用ADMM求解semidefinite programming可以参考[10]。

ADMM的直接使用和两类变形使用,都是按我个人的理解划分的,仅供参考,希望以上的归纳整理能帮助大家更好地理解ADMM的工作原理,以后再遇到新的应用,能一眼识破其中玄机。

3. ADMM算法的实际表现和收敛速率

文章《【优化】交替方向乘子(ADMM)的基本原理》提到了”实际当中你如果写代码跑ADMM会发现它不像那些梯度下降,牛顿法,很容易快速收敛到一个较高的误差精度,ADMM实际的收敛速度往往比那些算法慢得多“,亲手写过代码的人应该都会有同感吧,还有步长的选取,也很tricky,取太小,对约束的满足力度不够,取太大,对目标方程的优化力度又不够;所以实际中,才会考虑取变速率的。插播两个最常用的步长规则(step size rules):

其他步长规则,可以参考[11]的2.2节;这里也给读者留个问题,为什么这么强调 not summable?

为什么ADMM和其他一阶算法在追求高精度解上的收敛表现不佳呢,这就和算法的收敛速率有关了(在物理里面,速率是标量,速度是矢量,所以说速率更好吧),什么是收敛速率?

怎么理解这四张图所代表的三种收敛速率呢?一个形象的解释可以是:误差每减小一个数量级(小数点往前移一位,纵坐标往下降一个单位长度)所需要的迭代步数(横坐标往后移的长度),和减少上一个数量级所需要的迭代步数相比,线性、超线性、次线性收敛速率分别对应的是一样、更少、更多,或者类比成匀速运动、加速运动、减速运动。从这个角度理解,通俗地讲,当前迭代所得到的解越接近真实解(从误差数量级衡量),具有线性、超线性、次线性收敛速率的算法分别会趋近得一样快、越来越快、越来越慢。ADMM算法往往能很快收敛到一个低/中精度解,但想进一步提高精度,需要的时间就越来越长了,大家实际编程解大规模问题的时候,最好逐步提高精度。另一个很自然的想法是,在某些使用中,可以把ADMM和一些能从低精度解产生高精度解的算法结合起来使用,参考[12](其实我自己也没仔细看过)。

4. 写在最后

关于ADMM的研究还在继续,异步、非凸、深度学习...我都没有讲(没啃完),经典应用也一定还有很多我漏掉或者不知道的,欢迎大家讨论补充。写这篇文章的一个初衷,也是为了回答自己内心一直以来的一个疑问,(分布式)优化的算法明明有很多,为什么ADMM能被用得这么广泛?整理完,也很感慨,能对一个算法发掘出这么多花式使用,功劳大概也不输算法的发明者了,嗯,伯乐吧~

参考文献:

[1] S. Boyd, N. Parikh, E. Chu, B. Peleato, J. Eckstein and others, Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers, Foundations and Trends® in Machine Learning, 3(1):1-122, 2011.

[2] C. Chen, B. He, Y. Ye and X. Yuan, The Direct Extension of ADMM for Multi-block Convex Minimization Problems is Not Necessarily Convergent, Mathematical Programming, 155(1-2):57-79, 2016.

[3] H. Wang, A. Banerjee and Z.-Q. Luo, Parallel Direction Method of Multipliers, Advances in Neural Information Processing Systems, pp. 181-189, 2014.

[4] W. Deng, M.-J. Lai, Z. Peng and W. Yin, Parallel Multi-block ADMM with o(1/k) Convergence, Journal of Scientific Computing, 71(2):712-736, 2017.

[5] X. Wang, M. Hong, S. Ma and Z.-Q. Luo, Solving Multiple-block Separable Convex Minimization Problems using Two-block Alternating Direction Method of Multipliers, arXiv preprint arXiv:1308.5294, 2013.

[6] N. Parikh, S. Boyd and others, Proximal Algorithms, Foundations and Trends® in Optimization, 1(3):127-239, 2014.

[7] D. Hallac, J. Leskovec and S. Boyd, Network Lasso: Clustering and Optimization in Large Graphs, Proceedings of the 21th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pp. 387-396, 2015.

[8] N. Parikh, S. Boyd, Block Splitting for Distributed Optimization, Mathematical Programming Computation, 6(1):77-102, 2014.

[9] B. O’Donoghue, E. Chu, N. Parikh and S. Boyd, Conic Optimization via Operator Splitting and Homogeneous Self-dual Embedding, Journal of Optimization Theory and Applications, 169(3):1042-1068, 2016.

[10] Z. Wen, D. Goldfarb and W. Yin, Alternating Direction Augmented Lagrangian Methods for Semidefinite Programming, Mathematical Programming Computation, 2(3-4):203-230, 2010.

[11] S. Boyd and others, Subgradient Methods, Lecture Notes for EE364b(), Stanford University, Spring 2013-14.

[12] J. Eckstein and M. C. Ferris, Operator-splitting Methods for Monotone Affine Variational Inequalities, with A Parallel Application to Optimal Control, INFORMS Journal on Computing, 10(2):218-235, 1998.

标签: #ad9画原理图 #proximal算法