zoukankan      html  css  js  c++  java
  • [ML]交替方向乘子法(ADMM)简明梳理

    交替方向乘子法(ADMM)简明梳理

    本文对ADMM所涉及的一些数学知识进行简单的讲解, 并在最后汇总, 写出ADMM的基本形式.

    本文对推导过程酌情省略.

    拉格朗日乘子法

    给定二元函数(z=f(x,y))和约束条件(psi(x,y)=0), 求二元函数(z=f(x,y))在约束条件下的极值点. 该问题可以用拉格朗日乘子法解:

    首先做拉格朗日函数

    [L(x,y,lambda)=f(x,y)+lambdapsi(x,y) ]

    其中(lambda)为参数.

    令上式对所有自变量的一阶偏导等于零, 即

    [egin{cases} frac{partial L(x,y,lambda)}{partial x}=0\ frac{partial L(x,y,lambda)}{partial y}=0\ frac{partial L(x,y,lambda)}{partiallambda}=0 end{cases} ]

    由上式解出(x), (y)(lambda), 如此求得的((x,y)), 就是函数(z=f(x,y))在约束条件(psi(x,y)=0)下的可能极值点. 若这样的点只有一个, 由实际问题可直接确定此点即所求的点.

    对偶上升法

    首先需要简单介绍一下凸函数的定义. 凸函数比较直观的含义即为函数上任意两点的连线都在函数值之上, 二维上的典型是(y=x^2), 形如下凸的曲线, 三维上的典型是(z=x^2+y^2), 形如山谷.

    接下来提出一个基础问题:

    设函数(f(x))是一个凸函数, 约束条件为(Ax=b), 求函数(f(x))的最小值.

    [ ext{min} f(x)\ ext{s.t.} Ax=b ]

    写出该问题的拉格朗日函数

    [L(x,y)=f(x)+y^T(Ax-b) ]

    其中(y)是拉格朗日乘子, 也称为对偶变量.

    对偶函数为

    [g(x)=mathop{ ext{inf}}limits_xL(x,y)=-f^*(-A^Ty)-b^Ty ]

    其中inf代表下确界, (f^*)代表(f)的共轭函数.

    在满足一定条件的情况下, 对偶问题和原问题的最优值相等. 设原问题最优值为(x^*), 对偶问题最优值为(y^*), 则

    [x^*=mathop{ ext{arg min}}limits_xL(x,y^*) ]

    则可以通过对偶上升法, 通过梯度上升法迭代求解, 即

    [x^{k+1}=mathop{ ext{arg min}}limits_xL(x,y^k)\ y^{k+1}=y^k+alpha_k(Ax^{k+1}-b) ]

    增广拉格朗日乘子法

    在原拉格朗日乘子法的基础上加入惩罚项, 即为增广拉格朗日乘子法, 形如

    [L_ ho(x,y)=f(x)+y^T(Ax-b)+frac{ ho}{2}Vert Ax-bVert_2^2 ]

    其中( ho>0), 称为惩罚参数.

    在增广拉格朗日乘子法下, 原问题变为

    [mathop{ ext{min}}limits_xf(x)+frac{ ho}{2}Vert Ax-bVert_2^2\ ext{s.t.} Ax=b ]

    对偶上升迭代更新为

    [x^{k+1}=mathop{ ext{arg min}}limits_xL_ ho(x,y^k)\ y^{k+1}=y^k+ ho(Ax^{k+1}-b) ]

    交替方向乘子法

    将原问题推广到多个参数的情形下

    [mathop{ ext{min}}limits_xf(x)+g(z)\ ext{s.t.} Ax+Bz=c ]

    其中(xinmathbb{R}^n,zinmathbb{R}^m,cinmathbb{R}^p,Ainmathbb{R}^{p imes n},Binmathbb{R}^{p imes m}).

    其拉格朗日函数可以写为

    [L_ ho(x,z,y)=f(x)+g(z)+y^T(Ax+Bz-c)+frac{ ho}{2}Vert Ax+Bz-cVert_2^2 ]

    其更新迭代形式为

    [x^{k+1}=mathop{ ext{arg min}}limits_xL_ ho(x,z^k,y^k)\ z^{k+1}=mathop{ ext{arg min}}limits_zL_ ho(x^{k+1},z,y^k)\ y^{k+1}=y^k+ ho(Ax^{k+1}+Bz^{k+1}-c) ]

    其中( ho>0).

  • 相关阅读:
    浙大数据结构课后习题 练习二 7-2 Reversing Linked List (25 分)
    浙大数据结构课后习题 练习二 7-2 一元多项式的乘法与加法运算 (20 分)
    浙大数据结构课后习题 练习一 7-1 Maximum Subsequence Sum (25 分)
    浙大数据结构课后习题 练习一 7-1 最大子列和问题 (20 分)
    PAT Basic 1019 数字黑洞 (20 分)
    PAT Basic 1017 A除以B (20 分)
    PAT Basic 1013 数素数 (20 分)
    PAT Basic 1007 素数对猜想 (20 分)
    PAT Basic 1003 我要通过! (20 分)
    自动化运维——HelloWorld(一)
  • 原文地址:https://www.cnblogs.com/Clouds42/p/13221722.html
Copyright © 2011-2022 走看看