凸优化笔记
- 最优化问题和求解
- 梯度与海色阵
- 优化问题的类型
- 无约束最优化
- 约束最优化
- 局部极小值点
- 特殊的最优化问题
- 共轭函数和次微分
- 共轭函数
- 范数
- 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)=(∂x1∂f(x),∂x2∂f(x),...,∂xa∂f(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)=(∂xi∂xj∂2f(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)
argminx∈Rdf(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∗),x∈Rd,称这样的 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
- 例如,实数轴上的凸集和区间是等价的; 平面上边界为椭圆、三角形、 平行四边形的集合是凸集, 圆环则不是凸集; 球体、长方体是凸集
凸集性质
- 凸集的闭包是凸集。
- 任意多个凸集的交集是凸集
- 关于仿射变换 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 $上的凸函数, 那么:
- 当 f(x) 有一个局部极小值点 x ∗ 时,这个极小值点也是全局最 小值点,但不一定是唯一的全局最小值点,这时集合 {x ∈ S : f(x) = f(x ∗ )} 是一个凸集。
- 如果 x ∗ 是 f(x) 的一个稳定点( f ‘ ( x ) f^`(x) f‘(x)=0),则 x ∗ 是 f(x) 的一个全局最小 值点。
- 如果 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:Rn到R,定义
f
∗
:
R
n
到
R
f^*:R^n到R
f∗:Rn到R为:
f
∗
(
t
)
=
max
x
∈
d
o
m
f
(
x
t
−
f
(
x
)
)
f^*(t)=\max_{x∈domf}(xt-f(x))
f∗(t)=x∈domfmax(xt−f(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}} ║x║2=∑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)=ξ⇒f‘−1(ξ)=x
次微分
Legendre变换的问题在于要求函数梯度的逆处处存在. 凸函数不一定满足这个条件,因此需要将梯度做推广
梯度法要求目标函数f(x)在点x处存在梯度,因此梯度法只适用于平滑目标函数
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SnartotE-1633423929315)(C:\Users\28960\AppData\Roaming\Typora\typora-user-images\image-20211003160307500.png)]
共轭函数的性质
定理 2.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) 若对任意收敛于x的点列xk⊂Rn均有,f(x)≤limk→∞inff(xk),则称f在x处下半连续(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}) (∂x∂z,∂y∂z),多元时为 ( ∂ z ∂ x , ∂ z ∂ y , . . . . ) (\frac{∂z}{∂x},\frac{∂z}{∂y},....) (∂x∂z,∂y∂z,....)。
- 梯度的几何意义:
- 当前位置的梯度方向,为函数在该位置处方向导数最大的方向,也是函数值上升最快的方向,反方向为下降最快的方向;
- 当前位置的梯度长度(模),为最大方向导数的值。
- 梯度与等高线垂直,在等高线图中,梯度指向高度更高的等高线。
什么是梯度?
首先梯度是一个向量,其次梯度是多元函数对各个分量求偏导数得到的向量,但是这里很容易和切向量混淆。切向量是对各个分量对共同的自变量求偏导,这是不同之处。
负梯度方向函数下降最快
梯度垂直于切平面
凸优化的任一局部极值点也是全局极值点,局部最优也是全局最优
最优化
最优化问题分为无约束优化与约束优化,约束条件分为等式约束与不等式约束,对于==等式约束的优化问题,可以直接应用拉格朗日乘子法去求取最优值;对于含有不等式约束的优化问题,可以转化为在满足 KKT 约束条件下应用拉格朗日乘子法求解==。拉格朗日求得的并不一定是最优解,只有在凸优化的情况下,才能保证得到的是最优解,所以本文称拉格朗日乘子法得到的为**可行解,**其实就是局部极小值,接下来从无约束优化开始一一讲解。
无约束优化
首先考虑一个不带任何约束的优化问题,对于变量
x
∈
R
N
x∈R^N
x∈RN 的函数 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=1∑mα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=1∑mαihi(x)+j=1∑nβ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(初始的约束条件)βj≥0,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=1∑mαihi(x)+j=1∑nβigi(x)
根据以上 Lagrangian 便可以得到一个重要结论:
f
(
x
)
=
max
α
β
;
β
i
≥
0
L
(
x
,
α
,
β
)
>
L
(
x
,
α
,
β
)
f(x)=\max_{αβ;βi≥0} L(x,α,β)>L(x,α,β)
f(x)=αβ;βi≥0maxL(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α,β;βi≥0maxL(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,α,β)
α,β;βi≥0maxxminL(x,α,β)
然后定义对偶问题的最优解即关于 α ,β 的函数:
d
∗
=
max
α
,
β
;
β
i
≥
0
D
(
α
,
β
)
d^∗=\max_{α,β;βi≥0}D(α,β)
d∗=α,β;βi≥0maxD(α,β)
对偶问题和原始问题的最优解并不相等:
直观地,可以理解为最小的里最大的大于最大的中最小的。
d
∗
=
max
α
,
β
;
β
i
≥
0
D
(
α
,
β
)
≤
min
x
f
(
x
)
=
p
∗
d∗=\max_{α,β;βi≥0}D(α,β)≤\min_xf(x)=p∗
d∗=α,β;βi≥0maxD(α,β)≤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 条件。
总结
- 介绍了对偶的基本概念
- 对于一个约束优化问题,找到其对偶问题,当弱对偶成立时,可以得到原始问题的一个下界。
- 而如果强对偶成立,则可以直接求解对偶问题来解决原始问题。 SVM 就是这样的。对偶问题由于性质良好一般比原始问题更容易求解,在 SVM 中通过引入对偶问题可以将问题表示成数据的内积形式从而使得 kernel trick 的应用更加自然)。
- 此外,还有一些情况会同时求解对偶问题与原始问题 ,比如在迭代求解的过程中,通过判断对偶间隔的大小,可以得出一个有效的迭代停止条件。
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(Ax−b)
原来带约束求解
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+1−b)
对偶上升法实际上是将:
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(Ax−b)+ρ/2∗∣∣Ax−b∣∣2
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+Bz−c)+ρ/2∗∣∣Ax+Bz−c∣∣2
使用和增广拉格朗日类似的方法,固定其中两个变量,去更新第三个变量的值,于是便有:
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+Bz−c)
这篇笔记探讨了凸优化问题,包括无约束最优化、约束最优化、局部极小值点的概念。介绍了共轭函数、次微分、Legendre变换及其性质,并详细阐述了拉格朗日乘子法和KKT条件。此外,还讲解了ADMM算法,一种用于解决带有可分离结构的优化问题的方法,以及它与增广拉格朗日法的关系。

1万+

被折叠的 条评论
为什么被折叠?



