凸优化
0. 前置知识
0.1 范数
- 非负性: f(x)⩾0
- 正定性: 当且仅当 x=0 时有 f(x)=0
- 齐次性: f(tx)=∣t∣f(x)
- 三角不等式: f(x+y)⩽f(x)+f(y)
对偶范数 ∥z∥∗=sup{zTx∣∥x∥⩽1}, 因此有不等式 zTx⩽∥x∥∥z∥∗
常见对偶范数存在关系 p1+q1=1
比如 l2 范数和 l2 范数自身是对偶范数.再比如l1范数和l∞范数是对偶范数
还可以对矩阵定义算子范数:
∥X∥a,b=sup{∥Xu∥a∣∥u∥b⩽1}
当均为 Euclid 范数时, X 的算子范数就是它的最大奇异值, 用 ∥X∥2 表示, 称作谱范数
∥X∥2=σmax(X)=(λmax(XTX))21
其对偶范数为奇异值之和, 称作核范数
∥Z∥2∗=σ1(Z)+⋯+σr(Z)=tr(ZTZ)21
∥A∥F=(i=1∑nσi2)21
矩阵的 Frobenius 范数:
∥X∥F=(tr(XTX))21=(i=1∑mj=1∑nXij2)21
0.2 矩阵
A 是对称矩阵记作 A∈Sn
A 是半正定矩阵记作 A∈S+n
A 是正定矩阵记作 A∈S++n
定义矩阵内积等于迹 ⟨A,B⟩=tr(ATB)
迹为对角线元素之和 tr(A)=i=1∑naii
特征值之和等于迹 tr(A)=i=1∑nλi
迹的交换律 tr(AB)=tr(BA)
0.3 导数和梯度
导数, 记为 Df(x), 定义为 f(z) 近似为 f(x)+Df(x)(z−x)
梯度, 记为 ∇f(x), 定义为 f(z) 近似为 f(x)+∇f(x)T(z−x)
即 ∇f(x)=Df(x)T
- 对于 f(x)=21xTPx+qTx+r, 其中 P∈Sn, 有 ∇f(x)=Px+q
- 对于 f(X)=logdetX, 其中 X∈S++n, 有 ∇f(X)=X−1
- 对于f(X)=logdetX−1,有∇f(X)=−X
0.4 链式法则
Dh(x)=Dg(f(x))Df(x) 也即有 ∇h(x)=∇f(x)∇g(f(x))
0.5 二阶导数
∇2f(x)ij=∂xi∂xj∂2f(x)
supposeg(x)=f(Ax+b),we have ∇2g(x)=AT∇2f(Ax+b)A
0.6 线性代数
A 的值域记作 R(A)={Ax∣x∈Rn}
R(A) 的维度称作 A 的秩.
A 的零空间记作 N(A)={x∣Ax=0}
A 的正交补为 A⊥={x∣zTx=0 for all z∈A}
一个基本结果为 N(A)=R(AT)⊥
实对称矩阵 A∈Sn 可因式分解为 A=QΛQT, 其中 Q 为正交矩阵, Λ 为对角线为特征值 λi 的矩阵.
A 的特征值分解为 UΣVT, 定义其伪逆为 VΣ−1UT
对于 X=[ABTBC] 的 Schur 补为 S=C−BTA−1B
1. 数学优化
1.1 优化问题
mins.t.f0(x)fi(x)⩽bi
1.2 线性规划问题
目标函数和约束函数均为线性函数.
对于任意 α,β, 有
fi(αx+βy)=αfi(x)+βfi(y)
1.3 凸优化问题
目标函数和约束函数均为线性函数.
对于 α+β=1,α⩾0,β⩾0, 有
fi(αx+βy)⩽αfi(x)+βfi(y)
1.4 最小二乘问题
min∥Ax−b∥22=i=1∑k(aiTx−bi)2
令梯度等于零
2AT(Ax−b)=0⇒ATAx=ATb⇒x=(ATA)−1ATb
A∈Rk×n, 则计算时间为 n2k
2. 凸集
2.1 仿射集
任意 x1,x2∈C, 有 θx1+(1−θ)x2∈C, 其中 θ∈R
我们称 θ1x1+⋯+θkxk 为 x1,⋯,xk 的一个仿射组合, 其中 θ1+⋯+θk=1 C 的仿射组合依然在 C 中.
对于任意 x0∈C, 我们有 V=C−x0 是一个子空间, 即对加法和数乘封闭.
线性方程组的解集是一个仿射集合, 反之亦然.
仿射包是包含 C 最小的仿射集合, 记作 aff C
2.2 凸集
任意 x1,x2∈C, 有 θx1+(1−θ)x2∈C, 其中 0⩽θ⩽1
我们称 θ1x1+⋯+θkxk 为 x1,⋯,xk 的一个凸组合, 其中 θ1+⋯+θk=1 且 θi⩾0
C 的凸组合依然在 C 中.
我们称集合 C 中所有点的凸组合的集合为凸包, 它是包含了 C 的最小凸集, 记作 conv C
可以拓展到概率分布形式, 即 E[x]=∫Cp(x)dx∈C
2.3 锥
任意 x∈C,θ⩾0, 有 θx∈C
即一堆从原点出发的射线的集合.
凸锥定义为任意 x1,x2∈C,θ1,θ2⩾0, 有 θ1x1+θ2x2∈C
我们称 θ1x1+⋯+θkxk 为 x1,⋯,xk 的一个凸组合, 其中 θi⩾0
锥包是包含 C 的最小凸锥.
2.4 超平面
{x∣aTx=b} 被称为超平面, 也可以写成 {x∣aT(x−x0)=0} 或 x0+a⊥
即与向量 a 垂直的, 过 x0 的所有向量组成的超平面.
2.5 半空间
{x∣aTx⩽b} 被称为半空间.
2.6 椭球
{x∣(x−xc)TP−1(x−xc)⩽1}, 其中 P∈S++n
2.7 范数锥
{(x,t)∣∥x∥⩽t}⊆Rn+1
2.8 多面体
多面体被定义为有限个等式和不等式的解集, 即有限个半空间和超平面的交集.
P={x∣Ax⪯b,Cx=d}
2.9 单纯形
基于 k+1 个仿射独立的向量构造的凸包, 是一个多面体, 被称为单纯形.
比如一维的线段, 二维的三角形.
单位单纯形: x⪰0,1Tx=1
2.10 保凸运算
- 交集, 可以扩展到无穷个凸集的交集
- 仿射函数, 即线性函数和一个常数的和
- 伸缩 kS
- 平移 S+x0
- 投影 {(x)∣(x,y)∈S}
- 集合的和 S1+S2={x+y∣x∈S1,y∈S2}
- 集合的乘积 S1×S2
- 集合的部分和 {(x,y1+y2)∣(x,y1)∈S1,(x,y2)∈S2}
- 线性分式
- 透视 P(z,t)=z/t, 其中 t∈R++
- 透视函数复合仿射函数得到线性分式函数
2.11 广义不等式
如果 K 是闭的, 实的, 尖的凸锥, 则称为正常锥.
定义广义不等式为
x⪯Ky⇔y−x∈K
x≺Ky⇔y−x∈int K
常见的有非负象限和半正定锥. 前者常用于向量之间, 被称为分量不等式; 后者常用于矩阵之间, 称为矩阵不等式.
2.12 最小与极小元
对任意 y∈S, 均有 x⪯Ky, 则称 x 为 S 的最小元, 最小元存在时是唯一的, 也可以定义为 S⊆x+K,必须是集合中所有元素都与x可比,当不可比时不存在最小元.
如果 y∈S 且 y⪯Kx 可推出 y=x, 则称 x 为 S 的极小元, 极小元可以有很多个, 也可以定义为 (x−K)∩S={x}.
2.13 超平面分离定理
两个不相交的凸集可以找到一个超平面将它们分离.
分离为 aTx⩾b 对于 x∈C 且 aTx⩽b 对于 x∈D
严格分离为 aTx>b 对于 x∈C 且 aTx<b 对于 x∈D
其中至少一个为开集时, 逆定理成立.
2.14 支撑超平面定理
x0 是边界上一点 x0∈bd C=cl C\int C
若 a=0 且对任意 x∈C 满足 aTx⩽aTx0, 则称 {x∣aT(x−x0)=0} 为在点 x0 处的支撑超平面.
任何凸集的边界上任意一点均存在支撑超平面.
当 C 具有非空内部且是闭的, 边界上每一点存在支撑超平面, 则是一个凸集.
2.15 对偶锥
K∗={y∣xTy⩾0,∀x∈K}
y∈K∗ 当且仅当 −y 是 K 在原点的一个支撑超平面的法线.
与锥中任何一个向量均形成锐角或直角的向量组成的锥.
子空间的对偶锥是它的正交补.
非负象限的对偶锥是它自身.
半正定锥的对偶锥是它自身.
- K∗ 是闭凸锥
- K1⊆K2 可得 K2∗⊆K1∗
- K∗∗ 是 K 的凸包的闭包
- 正常锥的对偶锥也是正常锥
3. 凸函数
3.1 凸函数
f(θx+(1−θ)y)⩽θf(x)+(1−θ)f(y)
3.2 一阶条件
一阶可微, 定义域是凸集且 f(y)⩾f(x)+∇f(x)T(y−x)
必要性:
对任意 0<t⩽1 有 x+t(y−x)∈dom f
有 f(x+t(y−x))⩽(1−t)f(x)+tf(y)
两边同时除 t 得 f(y)⩾f(x)+tf(x+t(y−x))−f(x)
令 t→0 即可.
充分性:
令 z=θx+(1−θ)y
则有 f(x)⩾f(z)+f′(z)(x−z) 和 f(y)⩾f(z)+f′(z)(y−z)
两式相加即可.
一般情况, 令 g(t)=f(ty+(1−t)x), 则 g′(t)=∇f(ty+(1−t)x)T(y−x)
由 g(1)⩾g(0)+g′(0) 可得 f(y)⩾f(x)+∇f(x)T(y−x)
反之则用 g(t)⩾g(t~)+g′(t~)(t−t~)
即将高维 f 转化为一维 g.
3.3 二阶条件
二阶可微, 定义域是凸集且 ∇2f(x)⪰0
3.4 例子
- 指数函数 eax
- 幂函数 xa 对于 a⩾1 或 a⩽0 在 R++
- 绝对值幂函数 ∣x∣p 对于 p⩾1
- 对数函数 logx 在 R++
- 负熵 xlogx 在 R+
- 范数 ∥x∥
- 最大值函数 max{x1,⋯,xn} 在 Rn
- 二次线性分式函数 x2/y 在 R×R++
- 指数和的对数 log(ex1+⋯+exn) 在 Rn
- 几何平均 −(∏i=1nxi)1/n 在 R++n
- 对数行列式 logdetX 在 S++n
- g(t)=f(Z+tV)
3.5 下水平集
Cα={x∈dom f∣f(x)⩽α}
凸函数的下水平集是凸集. 反之则不然.
3.6 上境图
epi f={(x,t)∣x∈dom f,f(x)⩽t}
函数是凸函数当且仅当其上境图是凸集.
例如 xTY−1x⩽t 可以化作 Schur 补 [YxTxt]⪰0
3.7 保凸运算
- 非负加权求和 f=w1f1+⋯+wmfm
- g(x)=∫Aw(y)f(x,y)dy
- 复合仿射映射 g(x)=f(Ax+b)
- 逐点最大 f(x)=max{f1(x),f2(x)}
- 分片线性函数, 一系列仿射函数的逐点最大函数
- 最大 r 个分量之和
- 逐点上确界 g(x)=y∈Asupf(x,y), f(x,y) 关于 x 是凸函数
- 集合的支撑函数 SC(x)=y∈CsupxTy
- 到集合中最远点的距离 f(x)=y∈Csup∥x−y∥
- 对称矩阵最大特征值 f(X)=sup{yTXy∣∥y∥2=1}
- 矩阵范数, 即矩阵最大奇异值 f(X)=∥X∥2=sup{uTXv∣∥u∥2=1,∥v∥2=1}
- 复合 f(x)=h(g(x))
- 标量复合 h:R→R,g:Rn→R
- f′′(x)=h′′(g(x))g′(x)2+h′(g(x))g′′(x)
- 先看 h 是凸是凹, 定基调, 再看是否满足 h′ 与 g′′ 同号
- 矢量复合
- f′′(x)=g′(x)T∇2h(g(x))g′(x)+∇h(g(x))Tg′′(x)
- h 是凸函数, 且每维分量 h 非减, gi 是凸函数
- h 是凸函数, 且每维分量 h 非增, gi 是凹函数
- 最小化 g(x)=y∈Cinff(x,y), f(x,y) 关于 (x,y) 是凸函数
- 到凸集的距离 dist(x,S)=infy∈S∥x−y∥
- 透视函数 g(x,t)=tf(x/t)
3.8 共轭函数
f∗(y)=x∈dom fsup(yTx−f(x))
共轭函数是一系列仿射函数的逐点上确界, 因此也是凸函数.
如果可微, 则求解 f′(x)=y 得 x 代入即可.
- 仿射函数 f(x)=ax+b 则 f∗(a)=−b
- 负对数函数 f(x)=−logx 则 x=−1/y 且 f∗(y)=−log(−y)−1
- 指数函数 f(x)=ex 则 x=logy 且 f∗(y)=ylogy−y
- 负熵函数 f(x)=xlogx 则 x=ey−1 且 f∗(y)=ey−1
- 严格凸二次函数 f(x)=21xTQx,Q∈S++n 则 x=Q−1y 且 f∗(y)=21yQ−1y
- 范数 f∗(y)=0,∥y∥∗⩽1
- 范数平方 f(x)=21∥x∥2 则 f∗(y)=21∥y∥∗2
Fenchel 不等式 (可微时即为 Young 不等式):
f(x)+f∗(y)⩾xTy
例如 xTy⩽21xTQx+21yTQ−1y
闭凸函数的两次共轭函数是自身, 即 f∗∗=f
3.9 拟凸函数
定义域和所有下水平集 Sα={x∈dom f∣f(x)⩽α} 均为凸集的函数.
基本性质:
f(θx+(1−θ)y)⩽max{f(x),f(y)}
一阶条件:
f(y)⩽f(x)⇒∇f(x)T(y−x)⩽0
二阶条件:
yT∇f(x)=0⇒yT∇2f(x)y⩾0
f′(x)=0⇒f′′(x)⩾0
4. 优化问题
4.1 等价问题
如果从一个问题的解,容易得到另一个问题的解,反之亦然,我们称这两个问题是等价的.有时引入等价的转换能够使问题更容易解决.
4.2 凸优化问题
mins.t.f0(x)fi(x)⩽0,Ax=bi=1,2,⋯,m
设 f0 为凸优化问题的目标函数, X 为其可行集.
最优性准则:
x∈X 是最优解, 当且仅当 ∇f0(x)T(y−x)⩾0,∀y∈X
凸优化问题的基本性质为任意局部最优解也是全局最优解,通过反证法证明。
Suppose x is local optima and y is global optima.We have
⇒ f0(x)=inf{f0(z)∣z feasible,∥z−x∥2≤R}∥y−x∥2>Rdefine z=(1−θ)x+θy,θ=2∥y−x∥2R∥z−x∥2=2Rf0(z)≤(1−θ)f0(x)+θf0(y)<f0(x)推出矛盾
5. 对偶
5.1 Lagrange 对偶函数
标准形式优化问题:
mins.t.f0(x)fi(x)⩽0,hi(x)=0i=1,2,⋯,mi=1,2,⋯,p
Lagrange 函数:
L(x,λ,v)=f0(x)+i=1∑mλifi(x)+i=1∑pvihi(x)
Lagrange 对偶函数:
g(λ,v)=x∈DinfL(x,λ,v)=x∈Dinf(f0(x)+i=1∑mλifi(x)+i=1∑pvihi(x))
对偶函数总是凹函数, 因为是一系列仿射函数的逐点下确界.
对任何 λ⪰0 和 v 均有 g(λ,v)⩽p∗ 成立.
5.2 Lagrange 对偶问题
对偶问题:
maxs.t.g(λ,v)λ⪰0
对偶问题是一个凸优化问题. 其对偶最优解 (λ∗,v∗) 也叫最优 Lagrange 乘子.
但是实际上 g(λ,v) 存在隐式约束, 即它的非 −∞ 定义域.
我们用 d∗ 表示 Lagrange 对偶问题的最优值, p∗ 表示原问题的最优值.
p∗−d∗ 为原问题的最优对偶间隙.
5.3 强对偶性
如果 d∗=p∗ 成立, 那么强对偶性成立.
Slater 条件:
如果原问题是凸优化问题, 并且满足 Slater 条件, 即
存在一点 x∈relint D 使得 fi(x)<0 与 Ax=b 成立, 也称为严格成立, 则强对偶性成立.
如果部分 fi(x) 是仿射函数, 则只需仿射函数 fi(x)⩽0 即可.
5.4 KKT 最优性条件
如果强对偶性成立, 最优解必须满足 KKT 条件.
因为我们知道 L(x,λ∗,v∗) 在 x∗ 处的导数必须为零, 即
∇f0(x∗)+i=1∑mλi∗∇fi(x∗)+i=1∑pvi∗∇hi(x∗)=0
因此, 我们有 KKT 条件:
fi(x∗)⩽0,hi(x∗)=0,λi∗⩾0,λi∗fi(x∗)=0,∇f0(x∗)+i=1∑mλi∗∇fi(x∗)+i=1∑pvi∗∇hi(x∗)=0,i=1,2,⋯,mi=1,2,⋯,pi=1,2,⋯,mi=1,2,⋯,m
对于非凸问题, 最优解和 KKT 条件只是单向的.
对于凸问题, 满足 KKT 条件的点也是原问题和对偶问题的最优解, 是双向的.
6. 应用
6.1 范数逼近
min∥Ax−b∥
6.2 强凸性
存在 m>0 使得 ∇2f(x)⪰mI, 则有
- 二次下界不等式 f(y)⩾f(x)+∇f(x)T(y−x)+2m∥y−x∥22
- 次优性条件 f(x)−p∗⩽2m1∥∇f(x)∥22, 即梯度足够小, 则解接近最优
- 上界 ∥x∗−x∥2⩽m2∥∇f(x)∥2
6.3 平滑性
存在 M>0 使得 ∇2f(x)⪯MI, 则有
- 二次上界不等式 f(y)⩽f(x)+∇f(x)T(y−x)+2M∥y−x∥22
- 梯度上界 2M1∥∇f(x)∥22⩽f(x)−p∗
6.4 下降方法
一个优化点列 x(k+1)=x(k)+t(k)Δx(k)
此处 Δx 是一个向量, 被称为步径或搜索方向; t(k) 被称为第 k 次迭代的步进或步长.
只要不是最优点就成立 f(x(k+1))<f(x(k))
因此一个下降方法中的搜索方向必须满足 ∇f(x(k))TΔx(k)<0
即它和负梯度方向的夹角必须是锐角.
选取 Δx=−∇f(x) 是一种很自然的选择, 相应的方法被称为梯度下降法.
选取 t(k) 的方法有精准直线搜索和回溯直线搜索.
精确直线搜索: t=s⩾0argminf(x+sΔx)
回溯直线搜索:
给定参数 α∈(0,0,5),β∈(0,1), 初始值 t:=1
如果 f(x+tΔx)>f(x)+αt∇f(x)TΔx, 则令 t:=βt