以下是长期研究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

全面理解ADMM算法相关推荐

  1. 对偶算法与ADMM算法

    学习笔记,仅供参考,有错必纠 转载自:机器学习与运筹优化(六)对偶算法与ADMM算法 文章目录 摘要 ADMM算法 参考文献 摘要 上文我们介绍了约束优化问题和拉格朗日对偶思想.对偶算法就像是男生女生 ...

  2. 一文详解从拉格朗日乘子法、KKT条件、对偶上升法到罚函数与增广Lagrangian乘子法再到ADMM算法(交替方向乘子法)

    最近看了ADMM算法,发现这个算法需要用到许多不少前备知识,在搜索补齐这些知识的过程中感觉网上的资料与总结在零散的同时又不够清晰,在此本文对这一块的内容进行汇总,同时表达自己的一些理解. 目录 拉格朗 ...

  3. 用人话理解hash算法、特性、唯一性等

    背景 博主在本科的时候曾经参加过数学建模,当初提交参赛论文的时候有两个提交时间点,第一个是提交MD5码的时间,第二个是提交具体参赛论文的时间,当初就很纳闷,直接提交论文不就ok吗?为什么多此一举呢 我 ...

  4. 通俗易懂理解GBDT算法原理-转

    GBDT算法深入解析 https://www.zybuluo.com/yxd/note/611571 通俗易懂理解GBDT算法原理 https://blog.csdn.net/qq_36696494/ ...

  5. admm算法_「优化」交替方向乘子法(ADMM)的基本原理

    编者按:本文介绍ADMM最基本情形的推导.通过这篇文章,你将了解ADMM算法的基本思路,收敛性分析的基本原理,和它理论上的一些局限性. 文章作者:覃含章 责任编辑:覃含章 本文的内容主要来自著名的讲义 ...

  6. xgboost 正则项_深入理解Boosting算法(4)-XGBoost

    导语:记得第一次使用XGBoost的时候还是2016年,那会的XGBoost工具还不完善,深度模型还没有怎么样火起来,大家用的最多的还是Sklearn里面的GBDT,或者R语言的GBM.后来在工作中也 ...

  7. 理解GBDT算法(三)——基于梯度的版本

     理解GBDT算法(三)--基于梯度的版本 标签: GBDT梯度残差代价函数回归树 2015-03-31 16:13 1395人阅读 评论(3) 收藏 举报 本文章已收录于: 分类: Machin ...

  8. 再理解RankNet算法

    再理解RankNet算法 前面的一篇博文介绍了学习排序算法(Learning to Rank)中的RankNet算法.如下:http://blog.csdn.net/puqutogether/arti ...

  9. 从零实现来理解机器学习算法:书籍推荐及障碍的克服

     从零实现来理解机器学习算法:书籍推荐及障碍的克服 发表于2015-09-10 16:16| 1261次阅读| 来源Machine Learning Mastery| 2 条评论| 作者Jason ...

  10. 通俗理解Paxos算法

    维基的简介:Paxos算法是莱斯利·兰伯特(Leslie Lamport,就是 LaTeX 中的"La",此人现在在微软研究院)于1990年提出的一种基于消息传递且具有高度容错特性 ...

最新文章

  1. 吃串串,数签签,这个 AI 神器一秒搞定
  2. 11.2.2 jQuery选择器
  3. BDOC generated after customer product id is changed in CRM - CUST_MAT_INF
  4. antd option宽度自适应_WordPress文章中添加自适应宽度的表格——墨涩网
  5. 雷云3灯光配置文件_雷蛇的哪种键盘最适合入手?3款最佳雷蛇键盘推荐。
  6. JConsole远程配置
  7. Silverlight 2 中简单的2.5D控件
  8. md5加解密工具 java_java中常用工具类之字符串操作类和MD5加密解密类
  9. MySql适配人大金仓数据库
  10. eeg地形图matlab,Matlab画地形图
  11. 如何成为一名优秀的技术 Leader?(转)
  12. SAP系统开发时查询库存的方…
  13. AWD系统加固,系统渗透笔记
  14. 全球疫情形势动态地图展示(超帅超好玩的python动图)
  15. Java中notify() 和 notifyAll()的区别
  16. 研究生带28岁腼腆导师一起相亲?被女生围追堵截要微信!
  17. linux 当前登录用户及历史登录用户信息查询
  18. Java生成文件hash值
  19. 亚马逊可以卖计算机软件吗,亚马逊卖什么产品不用认证
  20. SQLServer 计算两个日期间的工作日(排除周六和周日,不排除节假日)

热门文章

  1. [it-ebooks]电子书列表
  2. android系统签名一样不,解决Android应用签名和系统不一致的问题
  3. Veritas Backup Exec 21配置存储
  4. python自动登录灯塔党建_python 奇淫技巧之自动登录 哔哩哔哩
  5. sir模型matlab案例_下一代矩阵法amp;微分方程稳定性——以SIR系列为例
  6. python下载pps视频
  7. C++——fcntl
  8. php微博api发布微博代码,使用新浪微博API的OAuth认证发布微博实例
  9. 贪吃蛇c加加代码_贪吃蛇 C语言源代码
  10. 淘淘商城系列——VMware添加已配置好的虚拟机