ADMM——交替方向乘子法
ADMM(Alternating Direction Method of Multipliers,交替方向乘子法)是一种优化算法,主要用于解决分布式、大规模和非光滑的凸优化问题。ADMM通过将原始问题分解为多个易于处理的子问题来实现优化。它结合了两种经典优化方法:梯度下降法(gradient descent)和拉格朗日乘子法(Lagrangian multiplier method)。
ADMM
算法
ADMM考虑如下形式的凸优化问题:
其中$x$和$z$是优化变量,$f(x)$和$g(z)$是凸函数,$A,B,c$是已知的系数矩阵与向量。为了解决这个问题,首先引入拉格朗日乘子$y\in R$,构造增广拉格朗日函数$L(x, z, y)$:
$\displaystyle L(x, z, y) = f(x) + g(z) + y^T(Ax + Bz - c) + \frac{\rho}{2} ||Ax + Bz - c||^2$
其中$\rho > 0$是一个超参数,定义算法迭代步伐。相较于普通拉格朗日函数,增广拉格朗日函数多了二范数约束,能更好地处理约束条件并加速算法的收敛。
ADMM算法通过以下迭代步骤进行优化直到收敛:
1、更新$x$:$x^{k+1} = \text{arg}\min\limits_x L(x, z^k, y^k)$
2、更新$z$:$z^{k+1} = \text{arg}\min\limits_z L(x^{k+1}, z, y^k)$
3、更新$y$:$y^{k+1} = y^k + \rho(Ax^{k+1} + Bz^{k+1} - c)$
收敛条件如:$\|x^{k+1}-x^{k}\|$与$\|z^{k+1}-z^{k}\|$小于一定阈值。
为什么可以优化到最小值
ADMM的收敛性可以从两个方面来理解:
可分离性:在ADMM的迭代过程中,$x$和$z$的优化问题是分开进行的。这意味着我们可以独立地解决$f(x)$和$g(z)$的优化问题。在每一步迭代中,我们都在尝试最小化原始问题的目标函数。
拉格朗日乘子法的收敛性:拉格朗日乘子法的目标是找到满足原始问题约束条件的最优解。在ADMM的迭代过程中,通过调整拉格朗日乘子$y$来强化原始问题的约束条件,从而保证算法在全局范围内收敛到满足约束条件的可行解。
综上所述,ADMM算法可以在全局范围内收敛到原始优化问题的最小值,因为它能够在每次迭代中分别优化目标函数,并逐渐强化约束条件。
直观理解:如果满足约束条件,迭代的前两步总是会使$f(x)$与$g(z)$变小,而第3步只是更新$y$,因此总体的迭代过程是单向让原始优化问题$f(x)+g(z)$变小的。而一旦约束不满足,第3步对$y$的更新就是约束对的前两步更新的反抗。如果前两步更新使约束不满足,那么在第3步$y$就会更新,使约束在下一次迭代的前两步产生相应的梯度。
参考: https://blog.csdn.net/weixin_44655342/article/details/121899501
ADMM——交替方向乘子法的更多相关文章
- 交替方向乘子法(ADMM)
交替方向乘子法(ADMM) 参考1 参考2 经典的ADMM算法适用于求解如下2-block的凸优化问题( 是最优值,令 表示一组最优解): Block指我们可以将决策域分块,分成两组变量, 这里面 都 ...
- 交替方向乘子法(ADMM)的原理和流程的白话总结
交替方向乘子法(ADMM)的原理和流程的白话总结 2018年08月27日 14:26:42 qauchangqingwei 阅读数 19925更多 分类专栏: 图像处理 作者:大大大的v链接:ht ...
- 交替方向乘子法(Alternating Direction Multiplier Method,ADMM)
交替方向乘子法(Alternating Direction Multiplier Method,ADMM)是一种求解具有可分结构的凸优化问题的重要方法,其最早由Gabay和Mercier于1967年提 ...
- 对偶上升法到增广拉格朗日乘子法到ADMM
对偶上升法 增广拉格朗日乘子法 ADMM 交替方向乘子法(Alternating Direction Method of Multipliers,ADMM)是一种解决可分解凸优化问题的简单方法,尤其在 ...
- 机器学习——支持向量机(SVM)之拉格朗日乘子法,KKT条件以及简化版SMO算法分析
SVM有很多实现,现在只关注其中最流行的一种实现,即序列最小优化(Sequential Minimal Optimization,SMO)算法,然后介绍如何使用一种核函数(kernel)的方式将SVM ...
- 【整理】深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有不等约束时使用 ...
- 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
[整理] 在求解最优化问题中,拉格朗日乘子法(Lagrange Multiplier)和KKT(Karush Kuhn Tucker)条件是两种最常用的方法.在有等式约束时使用拉格朗日乘子法,在有 ...
- 装载:关于拉格朗日乘子法与KKT条件
作者:@wzyer 拉格朗日乘子法无疑是最优化理论中最重要的一个方法.但是现在网上并没有很好的完整介绍整个方法的文章.我这里尝试详细介绍一下这方面的有关问题,插入自己的一些理解,希望能够对大家有帮助. ...
- 拉格朗日乘子法&KKT条件
朗日乘子法(Lagrange Multiplier)和KKT(Karush-Kuhn-Tucker)条件是求解约束优化问题的重要方法,在有等式约束时使用拉格朗日乘子法,在有不等约束时使用KKT条件.前 ...
- 关于拉格朗日乘子法与KKT条件
关于拉格朗日乘子法与KKT条件 关于拉格朗日乘子法与KKT条件 目录 拉格朗日乘子法的数学基础 共轭函数 拉格朗日函数 拉格朗日对偶函数 目标函数最优值的下界 拉格朗日对偶函数与共轭函数的联系 拉 ...
随机推荐
- 网络安全公开数据集Maple-IDS,恶意流量检测数据集开放使用!
Maple Dataset 枫叶数据集Maple Dataset枫叶数据集由东北林业大学网络安全实验室(https://maple.nefu.edu.cn/lab/)公开发布,是用于入侵检测评估的数据 ...
- SpringBoot定时任务实现数据同步
业务的需求是,通过中台调用api接口获得,设备数据,要求现实设备数据的同步. 方案一:通过轮询接口的方式执行 pullData() 方法实现数据同步 该方式的原理是先清空之前的所有数据,然后重新插入通 ...
- OData – Get Started 搭建单侧环境
前言 之前写过 EF Core – Get Started 搭建单侧环境, 这篇补上一个 WebApi + EF Core + OData 创建项目 dotnet new webapi -o EfCo ...
- 选择:Qt Creator、Qt Designer、Qt Design Studio,三种开发工具,您选择哪一种?
前言 本文介绍了三种QT开发工具的特点,以及各自的优点和缺点. QT三种工具对比 QT提供的工具 Qt Creator: 扮演的是QT Widgets和QT QML的IDE的角色. 优点: 可以编写C ...
- [Tkey] CodeForces 1267G Game Relics
太神了这题,膜拜出题人 orz. 思考一 首先是大家都提到的一点,先抽卡再买.这里来做个数学分析. 假设我们还剩 \(k\) 种没有买,其实我们是有式子来算出它的花费期望的.WIKI 上提到,假设一个 ...
- 三维医学图像数据扩充:flip and rotate
对于小数据量医学图像进行深度学习使,会由于数据量过小而过拟合.因此我们需要采用数据扩充方法,而flip和rotate又是经常用到的,这里做一个简单的实现. 输入为[batchsize,height, ...
- ORM的性能争议
1 二次封装---业务的执行,步骤多一些 2 映射的过程---必然从类到Sql语句变化---类---Sql语句---必然会有大量的反 射(损耗性能) 3 Sql语句僵化---数据库执行有性能损耗 部分 ...
- 什么是SPA页面,它的优缺点?
什么是SPA spa是单页面应用(single page web application),浏览器会一开始就加载所需要的html.css.javascript.一旦页面加载完毕,整个页面就不会因为用户 ...
- 06 Word2Vec模型(第一个专门做词向量的模型,CBOW和Skip-gram)
博客配套视频链接: https://space.bilibili.com/383551518?spm_id_from=333.1007.0.0 b 站直接看 配套 github 链接:https:// ...
- Android复习(三)清单文件中的元素——>supports-gl-texture、supports-screens
<supports-gl-texture> 注意:Google Play 会根据应用支持的纹理压缩格式对其进行过滤,以确保应用只能安装在可正确处理其纹理的设备上.您可以将纹理压缩过滤用作定 ...