ADMM 算法原理简介

主要介绍 ADMM (Alternating Direction Method of Multipliers) 算法。

材料来源:

ADMM算法原理详解,Rookiee


1. ADMM 基本形式

ADMM 用于求解如下最优化问题:

minx,zf(x)+g(z)s.t. Ax+Bz=c

其中,xRp, zRq, ARm×p, BRm×q, cRk, f:RpR, g:RqR

简单来讲,这一优化问题的目标函数包含两组可分离自变量( xz ),且存在线性等式约束。对于这一优化问题,ADMM 算法首先对目标函数进行增广,将原始优化问题转化为:

minx,zQρ(x,z)=f(x)+g(z)+ρ2||Ax+Bzc||22s.t. Ax+Bz=c

其中,ρ 为某参数。

进一步,上述问题的拉格朗日函数式子为:

Lρ(x,z,λ)=Qρ(x,z)+λT(Ax+Bzc)=f(x)+g(z)+ρ2||Ax+Bzc||22+λT(Ax+Bzc)

其中,λRk 为拉格朗日乘子(向量)。

接下来,通过如下更新步骤进行迭代(第 k 步更新)直至收敛:

  1. 更新 xx(k)=argminxLρ(x,z(k1),λ(k1))

  2. 更新 zz(k)=argminzLρ(x(k),z,λ(k1))

  3. 更新 λλ(k)=λ(k1)+ρ(Ax(k)+Bz(k)c)

上述推导过程及更新步骤都非常清晰。但是,跟最初的优化问题什么关系、如何对应、以及思路,仍然不清楚。下面将继续展开介绍。

2.

posted @   wghou09  阅读(977)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
点击右上角即可分享
微信分享提示