ADMM:交替方向乘子算法
原文链接:http://blog.csdn.net/shanglianlm/article/details/45919679
ADMM(Alternating Direction Method of Multipliers)
如下文所述,ADMM是一个旨在将对偶上升法的可分解性和乘子法的上界收敛属性融合在一起的算法。
2.1 具体描述
设有如下优化问题:
如同乘子法中一样,我们获得它的增广拉格朗日形式为:
那么它的迭代方式为:
其中增广拉格朗日参数 ρ>0 。
2.2 优化条件和停止准则
原始残差:rk+1=Axk+1+Bzk+1−c<ϵprimal
对偶残差:sk+1=ρATB(zk+1−zk)<ϵdual
2.3 收敛速度
- 收敛到一个高的精度要求很多次迭代;
- 但几十次迭代就可以达到一个合理的精度(类似于共轭梯度法(conjugate gradient method));
- 可以和其他算法组合来产生一个高的精度。
对偶上升法(Dual Ascent) 和 对偶分解法(Dual Decomposition)
在介绍ADMM之前我们首先介绍两种优化算法:对偶上升法(Dual Ascent) 和 对偶分解法(Dual Decomposition)。
1.1 对偶上升法(Dual Ascent)
设有如下优化问题:minf(x) s.t. Ax=b (1)它的拉格朗日形式为:
L(x,λ)=f(x)+λT(Ax−b) (2)对偶形式为:
g(λ)=infxL(x,λ)=−f∗(−ATλ)−bTλ (3)其中 f^* 是 f 的共轭函数。
对偶问题为:max g(λ) (4)对偶上升法的迭代更新为:
xk+1=argminxL(x,λk) (5) x-最小化λk+1=λk+αk(Axk+1−b) (6) 对偶变量更新其中αk>0是步长。
1.2 对偶分解法(Dual Decomposition)
假设目标函数是可以分解的,即f(x)=∑i=1Nfi(xi) (7)因此,拉格朗日函数可以改写为:
L(x,λ)=∑i=1NLi(xi,λ)=∑i=1N(fi(xi)+λTAixi−(1/N)λTb) (8)所以它的迭代更新为:
xk+1i=argminxiLi(xi,λk) (9)λk+1=λk+αk(Axk+1−b) (10)增广拉格朗日(Augmented Lagrangians)和乘子法(Method of Multipliers)
接着我们引入增广拉格朗日(Augmented Lagrangians)和乘子法(Method of Multipliers)。
2.1 增广拉格朗日(Augmented Lagrangians)形式
为了增加对偶上升法的鲁棒性和放松函数f的强凸约束,我们引入增广拉格朗日(Augmented Lagrangians)形式:Lρ(x,λ)=f(x)+λT(Ax−b)+(ρ/2)||Ax−b||22 (11)其中惩罚因子ρ>0。
与 (2) 式相比,(11) 式只是增加了一个惩罚项,
2.2 乘子法(Method of Multipliers)
对应于的迭代公式为:xk+1=argminxLρ(x,λk) (12)λk+1=λk+ρ(Axk+1−b) (13)我们称之为乘子法(Method of Multipliers)。
将拉格朗日应用于对偶上升法可以极大地增加它的收敛属性,但是它要求一些代价。当f可以分解,而拉格朗日Lρ不能分解的,因此 (13) 式不能对每个xi并行最小化。这意味着乘子法不能被用来分解。
参考或延伸材料:
[1] Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers
[2] 凸优化讲义
[3] A Note on the Alternating Direction Method of Multipliers
ADMM:交替方向乘子算法相关推荐
- 凸优化:ADMM(Alternating Direction Method of Multipliers)交替方向乘子算法
[本文链接:http://blog.csdn.net/shanglianlm/article/details/45919679,转载请注明出处] 最近开始对凸优化(convex optimizatio ...
- ADMM——交替方向乘子法
ADMM(Alternating Direction Method of Multipliers,交替方向乘子法)是一种优化算法,主要用于解决分布式.大规模和非光滑的凸优化问题.ADMM通过将原始问题 ...
- 交替方向乘子算法(ADMM)
- 凸优化学习-(二十九)有约束优化算法——增广拉格朗日法、交替方向乘子法(ADMM)
凸优化学习 我们前面说过,拉格朗日法在实际中应用不大.为什么呢?因为 α \alpha α的取值很难取,这就导致拉格朗日法鲁棒性很低,收敛很慢,解很不稳定.于是就有了今天的增广拉格朗日法和ADMM. ...
- 一文详解从拉格朗日乘子法、KKT条件、对偶上升法到罚函数与增广Lagrangian乘子法再到ADMM算法(交替方向乘子法)
最近看了ADMM算法,发现这个算法需要用到许多不少前备知识,在搜索补齐这些知识的过程中感觉网上的资料与总结在零散的同时又不够清晰,在此本文对这一块的内容进行汇总,同时表达自己的一些理解. 目录 拉格朗 ...
- admm算法_「优化」交替方向乘子法(ADMM)的基本原理
编者按:本文介绍ADMM最基本情形的推导.通过这篇文章,你将了解ADMM算法的基本思路,收敛性分析的基本原理,和它理论上的一些局限性. 文章作者:覃含章 责任编辑:覃含章 本文的内容主要来自著名的讲义 ...
- DayDayUp:本博主预计2019下半年将会出两本书(关于人工智能算法及其实战案例应用方向、计算机算法竞赛集锦方向),如有合作意向,请留言告知
DayDayUp:本博主预计2019下半年将会出两本书(关于人工智能算法及其实战案例应用方向.计算机算法竞赛集锦方向),如有合作意向,请留言告知 PS:禁止任何形式的知识盗取!! 目录 关于人工智能算 ...
- 快速多级子算法(Fast Multipole Method)
FMM(Fast Multipole Method)快速多级子算法被美国工业与应用数学学会命名为20世纪十大算法之一(http://www.uta.edu/faculty/rcli/TopTen/to ...
- 开源一个不过百行代码而又强悍与效率的麻将赖子算法!! 开源与原创
如题: 博主17年开始从事棋牌游戏开发,开始接触赖子算法时,当时互联网找不到任何资料,于是自己琢磨了三天开始写出第一个算法,到目前为止已经自己写过三款不同的赖子算法,分别为: ...
最新文章
- 怎么判断膝关节错位_膝关节韧带损伤该如何处理——健康科普
- 皮一皮:所以说不管做什么,上风口都是很重要的位置...
- k8s包管理器helm_K8S 实战(十九)| K8S 包管理 Helm
- qt 子窗口写到线程就卡死_Qt多线程创建
- HDU1202 The calculation of GPA【水题】
- 正确使用StereoRectify
- Python SimpleHTTPServer – Python HTTP服务器
- C#反编译工具:ILSpy
- 差异表达基因变化倍数_【其他】差异基因筛选方法
- 2021李宏毅作业hw3 --食物分类。对比出来的80准确率。
- 基于ESP32与phyphox的DIS实验制作(4)-使用超声波位移传感器研究弹簧振子的运动
- win10安装过程修改esp分区吗_win7/win10无损修改UEFI启动模式让系统5秒开机支持ghost版...
- Neo4j学习笔记(三) 导入数据
- JSP作业提交管理系统(JSP作业管理系统)JSP学生作业管理JSP教师作业批改业提交管理系统
- 计算机图形学之光线跟踪算法的研究与实现2017年我的优秀毕业论文
- excel锁定后忘记密码的解决办法
- Linux不用root权限安装nvcc
- 非全日制计算机专业值得读吗,全日制、非全日制哪个更好?19计算机考研扫盲贴!...
- (转载)基于TDOA声源定位算法仿真–MATLAB仿真
- ECSHOP goods表字段分析