刚刚起步学习凸优化的过程实在伴随着种种CH3(CH2)6COOH。在笔记之余,也写写自己对一些小问题的证明思路和从教材上受到的启发。这些东西整理成笔记有些麻烦,又不想忘掉,就发在博客上吧。
ps:CH3(CH2)6COOH是啥,各位上过高中的同学自行理解应该没问题。有问题的百度一下:P
凸函数的定义
给定凸集C∈Rn,若函数f:C→R满足
(∀x∈C∀y∈C)(∀λ∈[0,1])(f(λx+(1−λ)y)≤λf(x)+(1−λ)f(y))
则称f是凸函数。
或者说,凸组合的函数值要不大于函数值的凸组合。低维的情况反应在图像上,就是y=f(x)对应图形必定在两点连线下方。
凸函数的一阶判定
一阶判定:若函数f是可微的,则f是凸函数当且仅当
f(y)≥f(x)+∇Tf(x)(y−x)
即函数值大于等于其一阶逼近。
这个问题的证明在高维(f:Rn→R)的情况下比较困难,但是在一维情况下相对简单。[1]
特殊情况:f:C⊆R→R
此时一阶判定退化为
f is convex⇔(∀x,y∈D(f))(f(y)≥f(x)+f′(x)(y−x))
(原书中用domf表示f的前域domain of f,我交的离散数学教材上用的是D(f),意思一致)
必要性证明: 假设f是凸函数,由凸函数定义可得
f(x+λ(y−x))≤(1−λ)f(x)+λf(y)
限制λ>0,就可以将上述不等式变形为
f(y)≥f(x)+λf(x+λ(y−x))−f(x)
再变形一下,
f(y)≥f(x)+λ(y−x)f(x+λ(y−x))−f(x)⋅(y−x)
两边取极限t→0+,得
f(y)≥f(x)+f′(x)(y−x)
充分性证明: 若一阶判定f(y)≥f(x)+f′(x)(y−x)成立,令z=λx+(1−λ)y(0≤λ≤1),则可以得到
f(x)≥f(z)+f′(z)(x−z)(1)
f(y)≥f(z)+f′(z)(y−z)(2)
(1)⋅λ+(2)⋅(1−λ),可得
λf(x)+(1−λ)f(y)≥f(z)=f(λx+(1−λ)y)
这就证明了一阶判定条件(一维情况)。
一般情况:f:C⊆Rn→R
证明高维情况时非常希望能够类比一维情况,但是一维的必要性证明中,使用了R上函数的导数定义——Rn上函数的导数要用ℓ2范数来定义,这是搬不过来的!
怎么解决呢?这里原书中用了一种非常精彩的证明思路:(也许是我见识短浅啦,至少我看起来是很漂亮的)
Consider f restricted to the line passing through them(x and y)
定义g(t)=f(x+t(y−x))作为辅助,这个函数的导数是
g′(t)=∇f(x+t(y−x))T(y−x)
然后利用这个函数来证明:
必要性证明: 假设f是凸函数,那么
==≥=g(λt+(1−λ)s)f(x+(λt+(1−λ)s)(y−x))f(λ(x+t(y−x))+(1−λ)(x+s(y−x)))λf(x+t(y−x))+(1−λ)f(x+s(y−x))λg(t)+(1−λ)g(s)
这意味着g也是凸函数(其实g is convex是f is convex的充要条件[2],下面会证明)
虽然我拿f没办法,但g是一元函数啊!根据上面已经证明的结论,g(1)≥g(0)+g′(0)⋅1,回带到f中,立即得到
f(y)≥f(x)+∇Tf(x)(y−x)
充分性证明: 若一阶判定条件成立,则有
f(x+t(y−x))≥f(x+s(y−x))+∇f(x+s(y−x))T(y−x)(t−s)
带入到g中,得到g是凸函数,这就回到了一元的情况.用两次结论可得
g(t)≥g(0)+g′(0)t(1)
g(t)≥g(1)+g′(1)(t−1)(2)
(1)⋅(1−t)+(2)⋅t,回代到f中可得
f(x+t(y−x))≥(1−t)f(x)+tf(y)
这就证明了f是凸函数.
上面的证明主要来自Convex Optimization,我作了一点改动。
最重要的思路是
- 构造g(t)=f(x+t(y−x))来表达f被限制在x,y之间的情况,下面证明二阶判定时同样用到。
- 若f可微,则f与g的凸性是等价的。
凸函数的二阶判定
二阶判定:若函数f是二阶可微的,则
f是凸函数⟺(∀x∈C)(∇2f(x)∈S+n)(对称半正定)
这个问题与对称性其实无关(二阶可微保证了偏导数与求导顺序无关,那么Hessian矩阵一定是对称的),问题在于证明它是半正定的。
必要性比较容易证明,主要是通过Taylor展开来引入Hessian矩阵对应的二次型:
若f是凸函数,则∀d∈Rn,f(x+td)≥f(x)+∇f(x)T(td).
对f在x处作二阶Taylor展开得到带Peano余项的近似为
f(x+td)=f(x)+∇f(x)T(td)+21(td)T∇2f(x)(td)+o(∥td∥2)
然后用展开式替换一阶判定左边的f(x+td),尝试证明对于任意的向量d,都有dT∇2f(x)d≥0
⇒⇒⇒⇒⇒f(x)+∇f(x)T(td)+21(td)T∇2f(x)(td)+o(∥td∥2)≥f(x)+∇f(x)T(td)21(td)T∇2f(x)(td)+o(∥td∥2)≥021dT∇2f(x)d+t2o(∥td∥2)≥0t→0lim(21dT∇2f(x)d+t2o(∥td∥2))≥0dT∇2f(x)d≥0∇2f(x)∈S+n
(大概也可以通过g(t)证明,但是直接用Taylor展开更简短)
充分性我是通过构造辅助函数证明的:
首先,对于一维情况f:C⊆R→R,Hessian矩阵退化为二阶导数.
若f′′(x)≥0恒成立,则对任意的x1<x2(x1,x2∈C)由Lagrange中值定理有
(∃ξ∈[x1,x2])(f′(ξ)=x1−x2f(x1)−f(x2))
由f′′(x)≥0,有f′(ξ)≤f′(x2),即
⇔f(x1)−f(x2)≥f′(x2)(x1−x2)f(x1)≥f(x2)+f′(x2)(x1−x2)
由一阶判定可证f是凸函数(x1>x2的情况同理).
之后,对于一般情况f:C⊆Rn→R,若∇2f(x)∈S+n恒成立,令g(t)=f(x+t(y−x)),则
g′(t)=∇f(x+t(y−x))T(y−x)g′′(t)=(y−x)T∇2f(x+t(y−x))(y−x)
由∇2f(x+t(y−x))∈S+n,有g′′(t)≥0恒成立,又由前述结论,可知g(t)是凸函数.而g的凸性与f的凸性是等价的,所以f是凸函数.
小记
好久没有再用过微积分和线性代数的内容,什么都生疏了。就像优化方法的老师说的一样,没开学还逃过了随机点名提问的一劫:P
这篇主要的技巧是凸函数判定的一个充要条件:若f可微,则
f is convex⟺g is convex
g(t)=f(x+t(y−x))org(t)=f(x+tv)
参考资料
[1]Stephen Boyd, Lieven Vandenberghe, Convex Optimization, Page 69, 2004. Avaliable from https://web.stanford.edu/~boyd/cvxbook/
[2]Stephen Boyd, Lieven Vandenberghe, Lecture slides, Convex functions 3-5. Avaliable from https://web.stanford.edu/~boyd/cvxbook/