全面理解ADMM算法

以下是长期研究ADMM( Alternating Direction Method of Multipliers )后对ADMM算法的一些总结,包括其他人观点:

一、解决约束问题:

ADMM( Alternating Direction Method of Multipliers) 算法是机器学习中比较广泛使用的约束问题最优化方法,它是ALM算法的一种延伸,只不过将无约束优化的部分用块坐标下降法(block coordinate descent,或叫做 alternating minimization)来分别优化。其中的原理可以参考大牛S.Boyd的文献 “Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers”。产生这种方法主要是为了弥补二次惩罚的缺点。在一些问题当中,用二次惩罚来近似约束问题在最优点附近需要惩罚项的系数趋近于无穷,而这种要求会使得海森矩阵很大,因此近似的目标函数很不稳定。为了解决这个问题,引入了线性逼近的部分,通过线性项系数不断的接近最优解(对偶上升),使得在二次惩罚项的系数很小的情况下,也能得到满足要求精度的解。ADMM目前是比较成熟,比较受欢迎的约束问题最优化通用框架。详细的讨论楼主可以参考大牛的文献,希望能帮到你。

出处:https://www.zhihu.com/question/36566112/answer/79535746

二、解决分布式问题:

ADMM 在分布式统计学习方面的应用。我也是最近看了 Boyd 2011 年的那篇文章,之后自己做了一些片面的总结(只针对分布式统计学习问题):交替方向乘子法(Alternating Direction Method of Multipliers,ADMM)是一种求解优化问题的计算框架, 适用于求解分布式凸优化问题,特别是统计学习问题。 ADMM 通过分解协调(Decomposition-Coordination)过程,将大的全局问题分解为多个较小、较容易求解的局部子问题,并通过协调子问题的解而得到大的全局问题的解。ADMM 最早分别由 Glowinski & Marrocco 及 Gabay & Mercier 于 1975 年和 1976 年提出,并被 Boyd 等人于 2011 年重新综述并证明其适用于大规模分布式优化问题。由于 ADMM 的提出早于大规模分布式计算系统和大规模优化问题的出现,所以在 2011 年以前,这种方法并不广为人知。完整的总结在我的博客上,此文可以作为 ADMM 的快速入门:用ADMM实现统计学习问题的分布式计算 · MullOver

出处:https://www.zhihu.com/question/36566112/answer/82474155

三、理解:

归根结底,就是解决 loss function + regulation.

当regulation为L1范数的时候没有 合适的算法解决这个凸优化问题。原来boyd的老师提出过 最小角方法 方法解决这个问题,但是因为方法不直观并且难以操作。所以,这些大牛们一直在寻找一种比较合适的算法解决这个问题。直至2011年左右提出比较通用和直观的ADMM算法。对于ADMM算法,其实是一种交替求解的方式。不断的将问题分解,进而逐个解决。其中在解决的过程中,发现将恼人的L1 Norm中的变量进行替换,从而形成 L1+L2 norm的形式比较容易求解(proximal algorithm),所以挺好的。而如果我们直接进行Loss function + regulation,求解的话,很难得到解。 所以从上面我们可以发现,变量替换成为解决问题的关键。而逐次求解,使问题得到解决。其实只要将最简单的L1 norm的形式理解。对于各种proximal直接查询相关解就可以了。~

出处:https://www.zhihu.com/question/36566112/answer/213686443

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值