凸优化笔记

这篇笔记探讨了凸优化问题,包括无约束最优化、约束最优化、局部极小值点的概念。介绍了共轭函数、次微分、Legendre变换及其性质,并详细阐述了拉格朗日乘子法和KKT条件。此外,还讲解了ADMM算法,一种用于解决带有可分离结构的优化问题的方法,以及它与增广拉格朗日法的关系。

凸优化笔记

  • 最优化问题和求解
    • 梯度与海色阵
    • 优化问题的类型
      • 无约束最优化
      • 约束最优化
        • 局部极小值点
      • 特殊的最优化问题
  • 共轭函数和次微分
    • 共轭函数
    • 范数
    • Legendre变换
    • 次微分
    • 共轭函数的性质
    • 示性函数与支撑函数
  • 拉格朗日乘子法和KKT条件
    • 直观理解梯度,以及偏导数、方向导数和法向量等
    • 最优化
      • 无约束优化
      • 等式约束优化
      • 不等式约束优化
  • 拉格朗日对偶
      • 原始问题
      • 对偶问题
      • 总结
  • ADMM(交替方向乘子法)算法
      • 简介
      • 解决的问题
      • 增广拉格朗日法
      • ADMM

最优化问题和求解

在统计计算中广泛用到求最小(最大)值点或求方程的根的算法

比如,参数最大似然估计、置信区间的统计量法、回归分析参数估计、 惩罚似然估计、惩罚最小二乘估计,等等。

求最小值点或最大值点的问题称为最优化问题(或称优化问题),最优 化问题和求方程的根经常具有类似的算法。

有些情况下,可以得到解的解析表达式;更多的情况只能通过数值迭 代算法求解

梯度与海色阵

设 f(x) 是 $R^d $上的多元函数,如果 f(x) 有一阶偏导数,则记 f(x) 的 梯度向量为
g ( x ) = ∇ f ( x ) = ( ∂ f ( x ) ∂ x 1 , ∂ f ( x ) ∂ x 2 , . . . , ∂ f ( x ) ∂ x a ) T ( 6.1 ) g(x)=∇f(x) = ( \frac{∂f(x)}{∂x1} , \frac{∂f(x)}{∂x2} , . . . , \frac{∂f(x)}{∂xa} )^T (6.1) g(x)=f(x)=(x1f(x),x2f(x),...,xaf(x))T(6.1)
如果 f(x) 的二阶偏导数都存在,则记它的海色阵为
H f ( x ) 或 H ( x ) = ∇ 2 f ( x ) = ( ∂ 2 f ( x ) ) ∂ x i ∂ x j ) i = 1 , . . . , d j = 1 , . . . , d , ( 6.2 ) Hf (x) 或 H(x)=∇^2 f(x) = ( \frac{∂^ 2f(x))}{∂xi∂xj} ) {i=1,...,d} {j=1,...,d} , (6.2) Hf(x)H(x)=2f(x)=(xixj2f(x)))i=1,...,dj=1,...,d,(6.2)

优化问题的类型

无约束最优化

设 f(x), x = ( x 1 x_1 x1, . . . , x d x_d xd) T ∈ $R^d $是实数值的 d 元函数,求
a r g m i n x ∈ R d f ( x ) ( 6.3 ) arg min _{x∈Rd} f(x) (6.3) argminxRdf(x)(6.3)
• 这里,符号 arg min 表示求最小值点的运算, 称 f(x) 为目标函数。

f ( x ) ≥ f ( x ∗ ) , x ∈ R d f(x)\geq f(x^*),x ∈ R^ d f(x)f(x),xRd,称这样的 x ∗ 为 f(x) 的一个全局最小值点

约束最优化

满足约束的 x ∈ R d 称为一个可行点, 所有可行点的集合 D 称为可行域

局部极小值点

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cLvWVD1r-1633423929306)(C:\Users\28960\AppData\Roaming\Typora\typora-user-images\image-20211001194412338.png)]

最优化问题经常使用数值迭代方法求解,数值迭代方法一般每一步都 得到比上一步更小的目标函数值,这样最后迭代结束时往往得到的不 是全局的最小值点,而是局部的极小值点。

最优化算法一般只能收敛到局部极小值点

例如:函数$ f(x) = 1 /{1+x^2}$, x ∈ R 没有极小值点,f(x) > 0, l i m x → ± ∞ f ( x ) = 0 lim_{x→±∞} f(x) = 0 limx±f(x)=0

函数 f(x) = max(|x|, 1) 最小值为 1, 且当 x ∈ [−1, 1] 时都取到最小值。

特殊的最优化问题

如果要求解 x 的所有或一部分分量取整数值,这样的问题称为整数规 划问题

如果要同时考虑具有相同自变量的多个目标函数的优化问题,则将其 称为多目标规划问题。

(6-4)f(x), c i ( x ) c_i(x) ci(x) 不都是线性函数,称这样的问题为非线性 规划问题。

对非线性规划问题,如果 f(x) 是二次多项式函数, c i ( x ) c_i(x) ci(x) 都是线性函数,称这样的问题为二次规划问题。

  • 如下的最优化问题是一个线性规划问题。

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mv2rNlJq-1633423929308)(C:\Users\28960\AppData\Roaming\Typora\typora-user-images\image-20211001194949236.png)]

一元函数的极值

  • 若 f ′ (x ∗ ) = 0 并且 f ′′(x ∗ ) 存在,则 f ′′(x ∗ ) > 0 保证了 x ∗ 是一个局部 极小值点,f ′′(x ∗ ) < 0 保证了 x ∗ 是一个局部极大值点,当 f ′′(x ∗ ) = 0 时则不能确定 x ∗ 是否极值点。

  • 满足 f ′ (x ∗ ) = 0 的 x ∗ 叫做 f(x) 的一个稳定点。

  • 存在不可微点时极值点也不一定出现在稳定点

**凸集 **:

  • 设 S 是 R d 的子集,如果 ∀x, y ∈ S, α ∈ [0, 1], 都有 αx+ (1−α)y ∈ S, 则称 S 为凸集。
  • S 是凸集当且仅当 S 中任意两个点的连线都属于 S
  • 例如,实数轴上的凸集和区间是等价的; 平面上边界为椭圆、三角形、 平行四边形的集合是凸集, 圆环则不是凸集; 球体、长方体是凸集

凸集性质

  1. 凸集的闭包是凸集。
  2. 任意多个凸集的交集是凸集
  3. 关于仿射变换 f(x) = Ax + b(A 为矩阵, b 为常数向量),凸集的像和 原像还是凸集

凸函数

定义在凸集 S 上的 d 元函数 f(x) 称为凸函数, 如果对任意 x, y ∈ S 和 α ∈ [0, 1] 都有

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-njniCfwC-1633423929312)(C:\Users\28960\AppData\Roaming\Typora\typora-user-images\image-20211001195829321.png)]

若 −f(x) 是定义在凸集 S 上的凸函数,则称 f(x) 为凹函数。

凸函数在最优化问题中的作用

若 f(x) 是凸集 S ⊂ $R^d $上的凸函数, 那么:

  1. 当 f(x) 有一个局部极小值点 x ∗ 时,这个极小值点也是全局最 小值点,但不一定是唯一的全局最小值点,这时集合 {x ∈ S : f(x) = f(x ∗ )} 是一个凸集。
  2. 如果 x ∗ 是 f(x) 的一个稳定点( f ‘ ( x ) f^`(x) f(x)=0),则 x ∗ 是 f(x) 的一个全局最小 值点。
  3. 如果 f(x) 是严格凸函数而且全局最小值点存在,这个全局最小 值点是唯一的。
  • 对于约束优化问题 (6.4), 如果等式约束 ci , i = 1, . . . , p 都是线性函数, 不等式约束 ci , i = p + 1, . . . , p + q 都是凹函数,目标函数 f(x) 是凸 函数,则称 (6.4) 为凸规划问题或凸优化问题。

  • 凸规划问题的可行域 D 是凸集,其局部极小值点一定是全局最小值点

共轭函数和次微分

共轭函数

设函数 f : R n 到 R f:R^n到R f:RnR,定义 f ∗ : R n 到 R f^*:R^n到R f:RnR为:
f ∗ ( t ) = max ⁡ x ∈ d o m f ( x t − f ( x ) ) f^*(t)=\max_{x∈domf}(xt-f(x)) f(t)=xdomfmax(xtf(x))
此函数称为函数f的共轭函数,使上述上确界有限,即差值xt-f(x) 在dom f有上界的所有** t ϵ R n t \epsilon R^n tϵRn**构成了共轭函数的定义域,下图描述了此定义(图中y即为公式中的t)。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kgSev4ra-1633423929314)(C:\Users\28960\AppData\Roaming\Typora\typora-user-images\image-20211003150124434.png)]

xy相当于是以t为斜率且过原点的一根直线,需要找到原函数f(x)和以y为斜率的直线的最大距离点对应的x

函数 f : R n — > R f:R^n—>R f:Rn>R以及某 y ϵ R y \epsilon R yϵR,共轭函数 f ∗ ( y ) f^*(y) f(y)是线性函数yx和f(x)之间的最大差值(上图中虚线),如果f可微,在满足 f ‘ ( x ) = y f`(x)=y f(x)=y的点x处差值最大(当对xy-f(x)对x的偏导等于0时,取得最大值)。

性质

函数的共轭一定为凸

范数

1-范数:║x║1=│x1│+│x2│+…+│xn│

2-范数: ║ x ║ 2 = ∑ i = 1 + ∞ x i 2 ║x║2=\sqrt{\sum_{i=1}^{+\infty}{x_i^2}} x2=i=1+xi2

∞-范数:║x║∞=max(│x1│,│x2│,…,│xn│)

Legendre变换

设f ∈$ C^2 (R^n , R)$,其导函数ξ = ∇f(x)有逆函数为ψ, 记作x = ψ(ξ). 称
f ∗ ( ξ ) = < ξ , x > − f ( x ) = < ξ , ψ ( ξ ) > − f ◦ ψ ( ξ ) ( 2.6 ) f^∗ (ξ) = <ξ, x> − f(x) = <ξ, ψ(ξ)> − f ◦ ψ(ξ) (2.6) f(ξ)=<ξ,x>f(x)=<ξ,ψ(ξ)>fψ(ξ)(2.6)
为f的Legendre变换.

f ‘ ( x ) = ξ ⇒ f ‘ − 1 ( ξ ) = x f ` (x) =ξ ⇒ f`^{-1}(ξ)=x f(x)=ξf1(ξ)=x

次微分

Legendre变换的问题在于要求函数梯度的逆处处存在. 凸函数不一定满足这个条件,因此需要将梯度做推广

梯度法要求目标函数f(x)在点x处存在梯度,因此梯度法只适用于平滑目标函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SnartotE-1633423929315)(C:\Users\28960\AppData\Roaming\Typora\typora-user-images\image-20211003160307500.png)]

共轭函数的性质

定理 2.1
$$

  1. (Young不等式). <ξ, x> ≤ f(x) + f^∗(ξ).
    \2)f(x) + f^∗(ξ) = <ξ, x>, ⇐⇒ ξ ∈ ∂f(x).
    $$
    定理2.2 若 对 任 意 收 敛 于 x 的 点 列 x k ⊂ R n 均 有 , f ( x ) ≤ l i m k → ∞ i n f f ( x k ) , 则 称 f 在 x 处 下 半 连 续 ( l o w e r s e m i c o n t i n u o u s ) 若对任意收敛于x的点列{x^k } ⊂ R^n均有,f(x) ≤ lim_{k→∞} inf f(x^k ),则称 f 在 x 处下半连续(lower semi continuous) xxkRn,f(x)limkinff(xk),fx(lowersemicontinuous)

定理2.3:若f是一个正常的,下半连续的凸函数,则 f ∗ ∗ = f . f^{∗∗} = f. f=f.

**定理2.4:**对于一个正常的,下半连续的凸函数,我们有$ξ ∈ ∂f(x) ⇐⇒ x ∈ ∂f ^∗ (ξ). $ (这个性质会用于后面原问题和对偶问题的相互转化.)

示性函数与支撑函数

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Lm5ArmxC-1633423929316)(C:\Users\28960\AppData\Roaming\Typora\typora-user-images\image-20211003163639437.png)]

示性函数$ δ_S$, 其共轭函数 δ S ∗ δ ^∗_ S δS称为集 合 S 的支撑函数 (support function)

当 $F ^∗ $,F是凸集 K上的示性函数时,我们有

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uHFE2t8r-1633423929317)(C:\Users\28960\AppData\Roaming\Typora\typora-user-images\image-20211003174323836.png)]

上述公式告诉我们,只要有一个逆已知,另一个逆就知道了. 我们通常去求其中更容易的一个.

拉格朗日乘子法和KKT条件

直观理解梯度,以及偏导数、方向导数和法向量等

  • 偏导数为函数在每个位置处沿着自变量坐标轴方向上的导数(切线斜率)
  • 方向导数为偏导数的线性组合,系数为该方向的单位向量
  • 则点(a,b)处u=(cosθ,sinθ)方向的方向导数为: f x ( a , b ) c o s θ + f y ( a , b ) s i n θ f_x(a,b)cosθ+f_y(a,b)sinθ fx(a,b)cosθ+fy(a,b)sinθ= ( f x ( a , b ) , f y ( a , b ) ) ⋅ ( c o s θ , s i n θ ) (f_x(a,b),f_y(a,b))⋅(cosθ,sinθ) (fx(a,b),fy(a,b))(cosθ,sinθ)
  • 偏导数构成的向量 ∇ f ( a , b ) = ( f x ( a , b ) , f y ( a , b ) ) ∇f(a,b)=(f_x(a,b),f_y(a,b)) f(a,b)=(fx(a,b),fy(a,b)),称之为梯度
  • 梯度,写作∇f,二元时为 ( ∂ z ∂ x , ∂ z ∂ y ) (\frac{∂z}{∂x},\frac{∂z}{∂y}) (xz,yz),多元时为 ( ∂ z ∂ x , ∂ z ∂ y , . . . . ) (\frac{∂z}{∂x},\frac{∂z}{∂y},....) (xz,yz,....)
  • 梯度的几何意义:
    1. 当前位置的梯度方向,为函数在该位置处方向导数最大的方向,也是函数值上升最快的方向,反方向为下降最快的方向;
    2. 当前位置的梯度长度(模),为最大方向导数的值。
    3. 梯度与等高线垂直,在等高线图中,梯度指向高度更高的等高线

什么是梯度?

首先梯度是一个向量,其次梯度是多元函数对各个分量求偏导数得到的向量,但是这里很容易和切向量混淆。切向量是对各个分量对共同的自变量求偏导,这是不同之处。

负梯度方向函数下降最快

梯度垂直于切平面

凸优化的任一局部极值点也是全局极值点,局部最优也是全局最优

最优化

最优化问题分为无约束优化与约束优化,约束条件分为等式约束与不等式约束,对于==等式约束的优化问题,可以直接应用拉格朗日乘子法去求取最优值;对于含有不等式约束的优化问题,可以转化为在满足 KKT 约束条件下应用拉格朗日乘子法求解==。拉格朗日求得的并不一定是最优解,只有在凸优化的情况下,才能保证得到的是最优解,所以本文称拉格朗日乘子法得到的为**可行解,**其实就是局部极小值,接下来从无约束优化开始一一讲解。

无约束优化

首先考虑一个不带任何约束的优化问题,对于变量 x ∈ R N x∈R^N xRN 的函数 f(x) ,无约束优化问题如下:
m i n x f ( x ) min _xf(x) minxf(x)
该问题很好解,根据 Fermat 定理,直接找到使目标函数得 0 的点即可 即 $∇_xf(x)=0 $,如果没有解析解的话,可以使用梯度下降或牛顿方法等迭代的手段来使 x沿负梯度方向逐步逼近极小值点。

等式约束优化

当目标函数加上约束条件之后,问题就变成如下形式:
m i n x f ( x ) s . t . h i ( x ) = 0 , i = 1 , 2 , . . . , m min_x f(x)\\ s.t. h_i(x)=0,i=1,2,...,m minxf(x)s.t.hi(x)=0,i=1,2,...,m
约束条件会将解的范围限定在一个可行域,此时不一定能找到使得 ∇ x f ( x ) ∇_xf(x) xf(x) 为 0 的点,只需找到在可行域内使得 f(x)最小的值即可,常用的方法即为拉格朗日乘子法,该方法首先引入 Lagrange Multiplier α ∈ R m α∈R^m αRm,构建 Lagrangian 如下:
L ( x , α ) = f ( x ) + ∑ i = 1 m α i h i ( x ) L(x,α)=f(x)+∑^m_{i=1}α_ih_i(x) L(x,α)=f(x)+i=1mαihi(x)
求解方法如下:首先对 Lagrangian 关于 α与 x 求 :
∇ x L ( x , α ) = 0 ∇ α L ( x , α ) = 0 ∇_xL(x,α)=0\\∇_αL(x,α)=0 xL(x,α)=0αL(x,α)=0
令导数为 0 ,求得 x 、α 的值后,将 x带入 f(x)即为在约束条件 h i ( x ) h_i(x) hi(x) 下的可行解。

图解:

拉格朗日乘子法取得极值的必要条件是目标函数与约束函数相切,这时两者的法向量是平行的,即
∇ x f ( x ) – α ∇ x h ( x ) = 0 ∇_xf(x)–α∇_xh(x)=0 xf(x)αxh(x)=0
只要满足上述等式,且满足之前的约束 $h_i(x)=0,i=1,2,…,m $,即可得到解,联立起来,正好得到就是拉格朗日乘子法。

不等式约束优化

可见对于不等式约束,只要满足一定的条件,依然可以使用拉格朗日乘子法解决,这里的条件便是 KKT 条件。接下来给出形式化的 KKT 条件 首先给出形式化的不等式约束优化问题:
min ⁡ x f ( x ) s . t . h i ( x ) = 0 , i = 1 , 2 , . . . , m g j ( x ) ≤ 0 , j = 1 , 2 , . . . , n \min_x f(x) \\s.t. h_i(x)=0, i=1,2,...,m \\g_j(x)≤0, j=1,2,...,n xminf(x)s.t.hi(x)=0,i=1,2,...,mgj(x)0,j=1,2,...,n
列出 Lagrangian 得到无约束优化问题:
L ( x , α , β ) = f ( x ) + ∑ i = 1 m α i h i ( x ) + ∑ j = 1 n β i g i ( x ) L(x,α,β)=f(x)+ ∑^m_{i=1} α_i h_i(x)+∑_{j=1}^nβ_ig_i(x) L(x,α,β)=f(x)+i=1mαihi(x)+j=1nβigi(x)
加上不等式约束后可行解 xx 需要满足的就是以下的 KKT 条件:
∇ x L ( x , α , β ) = 0 ( 拉 格 朗 日 取 得 可 行 解 的 必 要 条 件 ; ) β j g j ( x ) = 0 , j = 1 , 2 , . . . . , n ( 这 就 是 以 上 分 析 的 一 个 比 较 有 意 思 的 约 束 , 称 作 松 弛 互 补 条 件 ) h i ( x ) = 0 , i = 1 , 2 , 3 , . . . , m ( 初 始 的 约 束 条 件 ) g j ( x ) ≤ 0 , j = 1 , 2 , . . . , n ( 初 始 的 约 束 条 件 ) β j ≥ 0 , j = 1 , 2 , . . . , n ( 不 等 式 约 束 的 L a g r a n g e M u l t i p l i e r 需 满 足 的 条 件 ) ∇_xL(x,α,β)=0(拉格朗日取得可行解的必要条件;)\\ β_jg_j(x)=0,j=1,2,....,n(这就是以上分析的一个比较有意思的约束,称作松弛互补条件)\\ h_i(x)=0,i=1,2,3,...,m(初始的约束条件)\\ g_j(x)≤0, j=1,2,...,n(初始的约束条件)\\ β_j≥0, j=1,2,...,n(不等式约束的 Lagrange Multiplier 需满足的条件) xL(x,α,β)=0()βjgj(x)=0,j=1,2,....,n()hi(x)=0,i=1,2,3,...,m()gj(x)0,j=1,2,...,n()βj0,j=1,2,...,n(LagrangeMultiplier)

拉格朗日对偶

在优化理论中,目标函数 f(x) 会有多种形式:如果目标函数和约束条件都为变量 xx的线性函数, 称该问题为线性规划; 如果目标函数为二次函数, 约束条件为线性函数, 称该最优化问题为二次规划; 如果目标函数或者约束条件均为非线性函数, 称该最优化问题为非线性规划。每个线性规划问题都有一个与之对应的对偶问题,对偶问题有非常良好的性质,以下列举几个:

  • 对偶问题的对偶是原问题;
  • 无论原始问题是否是凸的,对偶问题都是凸优化问题;
  • 对偶问题可以给出原始问题一个下界;
  • 当满足一定条件时,原始问题与对偶问题的解是完全等价的;

原始问题

开始步入正题,首先给出不等式约束优化问题:
min ⁡ x f ( x ) s . t . h i ( x ) = 0 , i = 1 , 2 , . . . , m g j ( x ) ≤ 0 , j = 1 , 2 , . . . , n \min_x f(x) \\s.t. h_i(x)=0, i=1,2,...,m \\g_j(x)≤0, j=1,2,...,n xminf(x)s.t.hi(x)=0,i=1,2,...,mgj(x)0,j=1,2,...,n
定义 Lagrangian 如下:
L ( x , α , β ) = f ( x ) + ∑ i = 1 m α i h i ( x ) + ∑ j = 1 n β i g i ( x ) L(x,α,β)=f(x)+ ∑^m_{i=1} α_i h_i(x)+∑_{j=1}^nβ_ig_i(x) L(x,α,β)=f(x)+i=1mαihi(x)+j=1nβigi(x)
根据以上 Lagrangian 便可以得到一个重要结论:
f ( x ) = max ⁡ α β ; β i ≥ 0 L ( x , α , β ) > L ( x , α , β ) f(x)=\max_{αβ;βi≥0} L(x,α,β)>L(x,α,β) f(x)=αβ;βi0maxL(x,α,β)>L(x,α,β)

p ∗ = min ⁡ x f ( x ) = min ⁡ x max ⁡ α , β ; β i ≥ 0 L ( x , α , β ) p^*=\min_xf(x)=\min_x\max_{α,β;β_i≥0}L(x,α,β) p=xminf(x)=xminα,β;βi0maxL(x,α,β)

对偶问题

上式与原优化目标等价,将之称作原始问题 , 将原始问题的解记做 p∗,如此便把带约束问题转化为了无约束的原始问题,其实只是一个形式上的重写,方便找到其对应的对偶问题,首先为对偶问题定义一个对偶函数(dual function)
D ( α , β ) = min ⁡ x L ( x , α , β ) D(α,β)=\min_xL(x,α,β) D(α,β)=xminL(x,α,β)
有了对偶函数就可给出对偶问题了,与原始问题的形式非常类似,只是把 min 和 max 交换了一下:
max ⁡ α , β ; β i ≥ 0 min ⁡ x L ( x , α , β ) \max_{α,β;β_i≥0}\min_xL(x,α,β) α,β;βi0maxxminL(x,α,β)
然后定义对偶问题的最优解即关于 α ,β 的函数:
d ∗ = max ⁡ α , β ; β i ≥ 0 D ( α , β ) d^∗=\max_{α,β;βi≥0}D(α,β) d=α,β;βi0maxD(α,β)
对偶问题和原始问题的最优解并不相等:

直观地,可以理解为最小的里最大的大于最大的中最小的
d ∗ = max ⁡ α , β ; β i ≥ 0 D ( α , β ) ≤ min ⁡ x f ( x ) = p ∗ d∗=\max_{α,β;βi≥0}D(α,β)≤\min_xf(x)=p∗ d=α,β;βi0maxD(α,β)xminf(x)=p
即现在通过对偶性,为原始问题引入一个下界,$d∗≤p∗ $.

这个性质便叫做弱对偶性,对于所有优化问题都成立.$p∗–d∗ $叫做最优对偶间隔(optimal duality gap)。

强对偶即满足:$d∗=p∗ $(在强对偶成立的情况下,可以通过求解对偶问题来得到原始问题的解,在 SVM 中就是这样做的)

  • 强对偶( p ∗ = d ∗ = L ( x ∗ , α ∗ , β ∗ ) p^∗=d^∗=L(x^∗,α^∗,β^∗) p=d=L(x,α,β))是一个非常好的性质,因为在强对偶成立的情况下,可以通过求解对偶问题来得到原始问题的解,只要满足一些条件,强对偶性是成立的,比如说 Slater 条件与KKT条件。

  • *Slater 条件*:若原始问题为凸优化问题,且存在严格满足约束条件的点 x($g_i(x)<0 $)

    KKT条件*:任何满足强对偶性的优化问题,只要其目标函数与约束函数可微,任一对原始问题与对偶问题的解都是满足 KKT 条件的,即满足强对偶性的优化问题中*,若 x∗为原始问题的最优解,α∗,β∗为对偶问题的最优解,则可得 x∗,α∗,β∗ 满足 KKT 条件。

总结

  1. 介绍了对偶的基本概念
  2. 对于一个约束优化问题,找到其对偶问题,当弱对偶成立时,可以得到原始问题的一个下界
  3. 而如果强对偶成立,则可以直接求解对偶问题来解决原始问题。 SVM 就是这样的。对偶问题由于性质良好一般比原始问题更容易求解,在 SVM 中通过引入对偶问题可以将问题表示成数据的内积形式从而使得 kernel trick 的应用更加自然)。
  4. 此外,还有一些情况会同时求解对偶问题与原始问题 ,比如在迭代求解的过程中,通过判断对偶间隔的大小,可以得出一个有效的迭代停止条件。

ADMM(交替方向乘子法)算法

简介

交替方向乘子法(ADMM)是一种求解具有可分离的凸优化问题的重要方法,由于处理速度快,收敛性能好,ADMM算法在统计学习、机器学习等领域有着广泛应用。

解决的问题

ADMM算法解决的是两个变量下的优化问题,从原来问题的一个变量,变为两个变量,实际上任意个变量的问题都可以拆解为2变量问题?那么上面的优化公式就变为了:
$$
\min_{x,z}f(x)+g(z)

\sub.to Ax+Bz=b
$$

增广拉格朗日法

与ADMM最为相关的大概就是原始对偶方法中的增广拉格朗日法(ALM)。

拉格朗日函数实际上是解决多个约束条件下的优化问题的,这种方法可以将一个有n个变量与k个约束条件的最优化问题转换为一个解有n + k个变量的方程组的解的问题。而增广拉格朗日法是加了惩罚项的拉格朗日法,目的是使得算法收敛的速度更快。

对上述的简单的凸优化问题构造拉格朗日函数:
L ( x , λ ) = f ( x ) + λ T ( A x − b ) L(x,λ)=f(x)+λT(Ax−b) L(x,λ)=f(x)+λT(Axb)
原来带约束求解 m i n x f ( x ) min_xf(x) minxf(x),现在求解对偶问题 m a x λ m i n x L ( x , λ ) max_λmin_xL(x,λ) maxλminxL(x,λ),两个问题的最优解等价,并且没有了约束条件。
然后使用对偶上升法,得到:
s t e p 1 : x k + 1 = a r g m i n x L ( x ; λ k ) s t e p 2 : λ k + 1 = λ k + ρ ( A x k + 1 − b ) step1:x^{k+1}=argmin_xL(x;λ^k) \\step2:λ^{k+1}=λ^k+ρ(Ax^{k+1}−b) step1:xk+1=argminxL(x;λk)step2:λk+1=λk+ρ(Axk+1b)
对偶上升法实际上是将: max ⁡ λ min ⁡ x L ( x , λ ) \max_λ\min_xL(x,λ) maxλminxL(x,λ)

拆成了两步,第一步,先固定λ然后求解 min ⁡ x L ( x ; λ ) \min_xL(x;λ) minxL(x;λ)

将求解后的x代入到拉格朗日函数当中,用类似于梯度下降的方法,得到λ的更新公式。

有时候为了加快算法收敛速度,会再增加一些惩罚项来加快收敛,于是就有了增广拉格朗日:
L ( x ; λ ) = f ( x ) + λ T ( A x − b ) + ρ / 2 ∗ ∣ ∣ A x − b ∣ ∣ 2 L(x;λ)=f(x)+λ^T(Ax−b)+ρ/2∗||Ax−b||^2 L(x;λ)=f(x)+λT(Axb)+ρ/2Axb2

ADMM

ADMM其实也是一直增广拉格朗日函数,只不过由一个变量变为了两个变量,那么对应的ADMM就成为了 L ( x , z ; λ ) = f ( x ) + g ( z ) + λ T ( A x + B z − c ) + ρ / 2 ∗ ∣ ∣ A x + B z − c ∣ ∣ 2 L(x,z;λ)=f(x)+g(z)+λ^T(Ax+Bz−c)+ρ/2∗||Ax+Bz−c||^2 L(x,z;λ)=f(x)+g(z)+λT(Ax+Bzc)+ρ/2Ax+Bzc2

使用和增广拉格朗日类似的方法,固定其中两个变量,去更新第三个变量的值,于是便有:
s t e p 1 : x k + 1 = a r g m i n x L ( x , z k , λ k ) s t e p 2 : z k + 1 = a r g m i n z L ( x k + 1 , z , l a m b d a k ) s t e p 3 : λ k + 1 = λ k + ρ ( A x + B z − c ) step1:x^{k+1}=argminxL(x,zk,λk)\\ step2:z^{k+1}=argminzL(xk+1,z,lambdak)\\ step3:λ^{k+1}=λk+ρ(Ax+Bz−c) step1:xk+1=argminxL(x,zk,λk)step2:zk+1=argminzL(xk+1,z,lambdak)step3:λk+1=λk+ρ(Ax+Bzc)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值