admm——交替方向乘子法

qizhou qizhou     2023-04-11     362

关键词:

  ADMM(Alternating Direction Method of Multipliers,交替方向乘子法)是一种优化算法,主要用于解决分布式、大规模和非光滑的凸优化问题。ADMM通过将原始问题分解为多个易于处理的子问题来实现优化。它结合了两种经典优化方法:梯度下降法(gradient descent)和拉格朗日乘子法(Lagrangian multiplier method)。

ADMM

算法

  ADMM考虑如下形式的凸优化问题:

$\\min\\limits_x,z f(x) + g(z)$
$ s.t.\\,\\, Ax + Bz = c $

  其中$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\\rho2 ||Ax + Bz - c||^2$

  其中$\\rho > 0$是一个超参数,定义算法迭代步伐。相较于普通拉格朗日函数,增广拉格朗日函数多了二范数约束,能更好地处理约束条件并加速算法的收敛。

  ADMM算法通过以下迭代步骤进行优化直到收敛:

  1、更新$x$:$x^k+1 = \\textarg\\min\\limits_x L(x, z^k, y^k)$
  2、更新$z$:$z^k+1 = \\textarg\\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

[algorithm]admm简明理解

问题来源在读论文的时候,遇到了ADMM(交替方向乘子法)算法,不明所以,于是查了一下,大概是一个凸优化算法,下面大概讲一下其原理和过程。简介交替方向乘子法(ADMM)是一种求解具有可分离的凸优化问题的重要方法,由... 查看详情

对偶上升法到增广拉格朗日乘子法到admm

对偶上升法增广拉格朗日乘子法 ADMM  交替方向乘子法(AlternatingDirectionMethodofMultipliers,ADMM)是一种解决可分解凸优化问题的简单方法,尤其在解决大规模问题上卓有成效,利用ADMM算法可以将原问题的目标函数等价的分解... 查看详情

⚡机器学习⚡交替方向乘数法(alternatingdirectionmethodofmultipliers,admm)

...;QuadraticDiscriminantAnalysis,QDA),发现运用到了交替方向乘数法(ADMM),就很迷。(关键是太菜)很多博主都是直接翻译或者搬运的,搜罗且了解了很多相关知识,那就来个大总结及其一些自... 查看详情

多微电网计及碳排放的基于交替方向乘子法(admm)的多微网电能交互分布式运行策略研究(matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。⛳️座右铭:行百里者,半于九十。📋... 查看详情

admm算法在神经网络模型剪枝方面的应用

文章目录前言1.交替方向乘子法2.论文中的表述3.对论文中的公式进行推导4.代码流程5.主要函数实现6.densevs.prune(finetune)结束语前言  本篇博客记录一下自己根据对论文GRIM:AGeneral,Real-TimeDeepLearningInferenceFrameworkforMobileDevicesbasedonFin... 查看详情

拉格朗日乘子法和kkt条件

...g相切的地方取到最大(小)值,所以两者在此处的梯度方向相同,仅相差一个比例因子(即公式中的λ)。注意g(x)=0是一条曲线,如果有多个限制条件则有多条曲线,此时将g(x)看做一个函数,则g(x)=0是g的一个等高线,函数与等... 查看详情

机器学习笔记——拉格朗日乘子法和kkt条件

...己的理解。一前置知识 1.梯度   梯度是一个与方向导数有关的概念,它是一个向量。在二元函数的情形,设函数f(x,y)在平面区域D内具有一 查看详情

拉格朗日乘子法

最近在学习SVM的过程中,遇到关于优化理论中拉格朗日乘子法的知识,本文是根据几篇文章总结得来的笔记。由于是刚刚接触,难免存在错误,还望指出??另外,本文不会聊到深层次的数学推导,仅仅是介绍拉格朗日乘子法的内... 查看详情

拉格朗日乘子法

参考   拉格朗日乘子法如何理解?      拉格朗日乘子法基本的拉格朗日乘子法就是求函数f(x1,x2,...)在约束条件 g(x1,x2,...)=0下的极值的方法。其主要思想是将约束条件函数与原函数联立,从而... 查看详情

增广拉格朗日乘子法(augmentedlagrangemethod)

转载自:增广拉格朗日乘子法(AugmentedLagrangeMethod)增广拉格朗日乘子法的作用是用来解决等式约束下的优化问题, 假定需要求解的问题如下:    minimize  f(X)    s.t.:     h(X)=0其中,f:Rn->R;h:Rn->Rm ... 查看详情

拉格朗日乘子

...仅考虑一个约束:考虑$g_1$上任意一条轨迹线t,它的行进方向必然与$g_1$的法向量(梯度向量)垂直。在$f$的最小值处,t也必定与$f$的法向量垂 查看详情

拉格朗日乘子法

拉格朗日乘子法拉格朗日乘子法(Lagrangemultipliers)是⼀种寻找多元函数在⼀组约束下的极值的方法.通过引入拉格朗日乘子,可将有d个变量与k个约束条件的最优化问题转化为具有d+k个变量的⽆约束优化问题求解。本文希望通... 查看详情

拉格朗日乘子法

拉格朗日乘子法(Lagrangemultipliers)是→种寻找多元函数在一组约束下的极值的方法.通过引入拉格朗日乘子,可将有d个变量与k个约束条件的最优化问题转化为具有d+k个变量的无约束优化问题求解。我们先以包含一个变量的简单优化... 查看详情

深入理解拉格朗日乘子法(lagrangemultiplier)和kkt条件

这篇将拉格朗日函数比较全面,其中明确给出了拉格朗日函数,拉格朗日乘子的定义深入理解拉格朗日乘子法(LagrangeMultiplier)和KKT条件 查看详情

拉格朗日乘子法

   基本的拉格朗日乘子法是求函数f(x1,x2,...)在g(x1,x2,...)=0的约束条件下的极值的方法。   主要思想:引入一个新的参数λ(即拉格朗日乘子),将约束条件函数与原函数联系到一起,使能配成与变量数量相等的... 查看详情

深入理解拉格朗日乘子法(lagrangemultiplier)和kkt条件

在求取有约束条件的优化问题时,拉格朗日乘子法(LagrangeMultiplier)和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值;如果含有不等式约束,可以应用KKT条件去求取。当然... 查看详情

拉格朗日乘子法及其对偶问题和kkt条件

参考技术A如何理解拉格朗日乘子法?https://blog.csdn.net/lijil168/article/details/69395023http://www.math.ubc.ca/~israel/m340/kkt2.pdfhttp://www2.imm.dtu.dk/courses/02711/lecture3.pdfhttp://www.onmyphd.com/?p=kkt.karush.kuhn.tucker在求解最优化问题中,拉格朗日乘子法(L... 查看详情

深入理解拉格朗日乘子法(lagrangemultiplier)和kkt条件

...le/details/7919597在求取有约束条件的优化问题时,拉格朗日乘子法(LagrangeMultiplier)和KKT条件是非常重要的两个求取方法,对于等式约束的优化问题,可以应用拉格朗日乘子法去求取最优值;如果含有不等式约束,可以应用KKT条件... 查看详情