凸优化:保凸函数运算
引言
- 非负加权和
- 复合仿射映射
- 逐点最大
- 复合运算(例如多分类中的softmax函数)
- 联合凸的部分极小化
- 透视函数(例如KL散度和相对熵)
非负加权和
定义(非负加权和)
凸函数fff的非负加权和也是凸函数,利用凸函数定义即可证明。
f=w1f1+⋯+wmfm,wi≥0f=w_1f_1+\cdots+w_mf_m,\quad w_i\ge0f=w1f1+⋯+wmfm,wi≥0
可拓展至无限项:若固定任意y∈Ay\in\mathcal{A}y∈A,f(x,y)f(x,y)f(x,y)是关于xxx的凸函数,且对任意y∈Ay\in\mathcal{A}y∈A,w(y)≥0w(y)\ge 0w(y)≥0,则:
g(x)=∫Aw(y)f(x,y)dyg(x)=\int_{\mathcal{A}}w(y)f(x,y)dyg(x)=∫Aw(y)f(x,y)dy
也是关于xxx的凸函数。
复合仿射映射
定义(复合仿射映射)
假设凸函数f:Rn→R,A∈Rn×m,b∈Rn,f:\mathbf{R}^{n}\to\mathbf{R},A\in\mathbf{R}^{n\times m},b\in R^n,f:Rn→R,A∈Rn×m,b∈Rn,
定义函数g:Rn→Rg:R^n\to Rg:Rn→R为:
g(x)=f(Ax+b)g(x)=f(Ax+b)g(x)=f(Ax+b)
则ggg也是凸函数,利用凸函数定义即可立即证明,也可借助复合函数的保凸性说明。
逐点最大
定义(逐点最大)
若f1,f2,...,fmf_1,f_2,...,f_mf1,f2,...,fm是凸函数,则f(x)=max{f1(x),f2(x),...,fm(x)}f(x)=\max\{f_1(x),f_2(x),...,f_m(x)\}f(x)=max{f1(x),f2(x),...,fm(x)}是凸函数。
可拓展至无限项:若对∀y∈A,f(x,y)\forall y\in\mathcal{A},f(x,y)∀y∈A,f(x,y)关于xxx是凸函数,则g(x)=supy∈Af(x,y)g(x)=\underset{y\in\mathcal{A}}{\sup}f(x,y)g(x)=y∈Asupf(x,y)也是凸函数。
证明(m=2情形)
∀x,y∈domf,0≤θ≤1,\forall x,y\in \text{dom}f,0\le \theta\le1,∀x,y∈domf,0≤θ≤1,有
f(θx+(1−θ)y)=max{f1(θx+(1−θ)y),f2(θx+(1−θ)y)}≤max{θf1(x)+(1−θ)f1(y),θf2(x)+(1−θ)f2(y)}≤θf(x)+(1−θ)f(y)\begin{aligned}
f(\theta x+(1-\theta)y)
&=\max\{f_1(\theta x+(1-\theta)y),f_2(\theta x+(1-\theta)y)\} \\
&\le\max\{\theta f_1(x)+(1-\theta)f_1(y),\theta f_2(x)+(1-\theta)f_2(y)\} \\
&\le \theta f(x)+(1-\theta)f(y)
\end{aligned}f(θx+(1−θ)y)=max{f1(θx+(1−θ)y),f2(θx+(1−θ)y)}≤max{θf1(x)+(1−θ)f1(y),θf2(x)+(1−θ)f2(y)}≤θf(x)+(1−θ)f(y)
注
可通过例子理解:f(x)=max{x2,x}f(x)=\max\{x^2,x\}f(x)=max{x2,x},下图红线部分即为函数f(x)f(x)f(x)

示例(集合中最远距离)
点xxx到集合C⊆RnC\subseteq R^nC⊆Rn的最远距离定义为:
f(x)=supy∈C∥x−y∥f(x)=\underset{y\in C}{\sup}\|x-y\|f(x)=y∈Csup∥x−y∥。
∥x−y∥\|x-y\|∥x−y∥关于xxx是凸函数,而supy∈C∥x−y∥\underset{y\in C}{\sup}\|x-y\|y∈Csup∥x−y∥是凸函数的逐点上确界,因此为凸函数。
示例(对称矩阵的最大特征值)
定义f(X)=λmax(X),domf=Sm,f(X)=\lambda_{\max}(X),\text{dom}f=S^m,f(X)=λmax(X),domf=Sm,其为凸函数。
证明
f(X)=sup∥y∥2=1yTXyf(X)=\underset{\|y\|_2=1}{\sup}y^TXyf(X)=∥y∥2=1supyTXy,是满足∥y∥2=1\|y\|_2=1∥y∥2=1的XXX一族线性函数的逐点上确界。
示例(矩阵谱范数)
矩阵的谱范数:f(X)=∥X∥2,domf=Rp×qf(X)=\|X\|_2,\text{dom}f=R^{p\times q}f(X)=∥X∥2,domf=Rp×q(最大奇异值)。
证明
f(X)=sup∥u∥2=1,∥v∥2=1uTXvf(X)=\underset{\|u\|_2=1,\|v\|_2=1}{\sup}u^TXvf(X)=∥u∥2=1,∥v∥2=1supuTXv,是XXX一族线性函数的逐点上确界。
示例(加权最小二乘)
令x1,...,xn∈Rmx_1,...,x_n\in R^mx1,...,xn∈Rm,定义:
g(w)=infβ∑i=1nwi(xiTβ−yi)2g(w)=\underset{\beta}{\inf}\sum_{i=1}^nw_i(x_i^T\beta-y_i)^2g(w)=βinfi=1∑nwi(xiTβ−yi)2
ggg是关于www的一族线性函数的逐点下确界,是www的凹函数。
令W=diag(w),X∈Rn×mW=\text{diag}(w),X\in R^{n\times m}W=diag(w),X∈Rn×m,有
g(w)=infβ(Xβ−y)TW(Xβ−y)=infβ(βTXTWXβ−2yTWXβ+yTWy)\begin{aligned}
g(w)
&=\underset{\beta}{\inf}(X\beta-y)^TW(X\beta-y) \\
&=\underset{\beta}{\inf}(\beta^TX^TWX\beta-2y^TWX\beta+y^TWy)
\end{aligned}g(w)=βinf(Xβ−y)TW(Xβ−y)=βinf(βTXTWXβ−2yTWXβ+yTWy)
当XTWX≻0X^TWX\succ 0XTWX≻0时,通过Schur补可得凸性。
复合运算
给定h:Rk→Rh:R^k\to Rh:Rk→R及g:Rn→Rkg:R^n\to R^kg:Rn→Rk,定义复合f=h∘gf=h\circ gf=h∘g,domf={x∈domg∣g(x)∈domh}\text{dom}f=\{x\in\text{dom}g|g(x)\in \text{dom}h\}domf={x∈domg∣g(x)∈domh}。
标量复合
假设h,gh,gh,g二次可微,通过二阶条件判定凸性:
f′′(x)=h′′(g(x))g′(x)2+h′(g(x))g′′(x)≥0f''(x)=h''(g(x))g'(x)^2+h'(g(x))g''(x)\ge0f′′(x)=h′′(g(x))g′(x)2+h′(g(x))g′′(x)≥0
fff为凸函数的条件:
- hhh凸且非减,ggg凸:h′′≥0,h′(g(x))≥0,g′′≥0h''\ge 0, h'(g(x))\ge 0, g''\ge 0h′′≥0,h′(g(x))≥0,g′′≥0
- hhh凸且非增,ggg凹:h′′≥0,h′(g(x))≤0,g′′≤0h''\ge 0, h'(g(x))\le 0, g''\le 0h′′≥0,h′(g(x))≤0,g′′≤0
fff为凹函数的条件:
- hhh凹且非减,ggg凹:h′′≤0,h′(g(x))≥0,g′′≤0h''\le 0, h'(g(x))\ge 0, g''\le 0h′′≤0,h′(g(x))≥0,g′′≤0
- hhh凹且非增,ggg凸:h′′≤0,h′(g(x))≤0,g′′≥0h''\le 0, h'(g(x))\le 0, g''\ge 0h′′≤0,h′(g(x))≤0,g′′≥0
注
当ggg是仿射函数时,若hhh凸则fff必凸。
矢量复合
f(x)=h(g1(x),…,gk(x))f(x)=h(g_1(x),\ldots,g_k(x))f(x)=h(g1(x),…,gk(x)),二阶条件:
f′′(x)=g′(x)T∇2h(g(x))g′(x)+∇h(g(x))Tg′′(x)f''(x)=g'(x)^T\nabla^2h(g(x))g'(x)+\nabla h(g(x))^Tg''(x)f′′(x)=g′(x)T∇2h(g(x))g′(x)+∇h(g(x))Tg′′(x)
fff为凸函数的条件:
- hhh凸且在每维非减,gig_igi凸:∇2h⪰0,∇h⪰0,g′′≥0\nabla^2 h\succeq 0,\nabla h\succeq 0,g''\ge 0∇2h⪰0,∇h⪰0,g′′≥0
- hhh凸且在每维非增,gig_igi凹:∇2h⪰0,∇h⪯0,g′′≤0\nabla^2 h\succeq 0,\nabla h\preceq 0,g''\le 0∇2h⪰0,∇h⪯0,g′′≤0
示例(指数对数和,softmax函数)
g(x)=log(∑i=1keaiTx+bi)g(x)=\log\left(\sum_{i=1}^ke^{a_i^Tx+b_i}\right)g(x)=log(i=1∑keaiTx+bi)
仅需说明f(x)=log(∑i=1nexi)f(x)=\log(\sum_{i=1}^ne^{x_i})f(x)=log(∑i=1nexi)是凸函数,即可根据外层与仿射函数复合运算说明g(x)g(x)g(x)是凸函数。
证明其凸性
梯度分量:∇if(x)=exi∑ℓ=1nexℓ\nabla_i f(x)=\frac{e^{x_i}}{\sum_{\ell=1}^n e^{x_\ell}}∇if(x)=∑ℓ=1nexℓexi
Hessian矩阵:∇2f(x)=diag(z)−zzT(zi=exi/∑exℓ)\nabla^2 f(x)=\text{diag}(z)-zz^T \quad (z_i=e^{x_i}/\sum e^{x_\ell})∇2f(x)=diag(z)−zzT(zi=exi/∑exℓ)
对任意v∈Rnv\in R^nv∈Rn:
vT∇2fv=∑zivi2−(∑vizi)2=Var(v)≥0\begin{aligned}
v^T\nabla^2 f v
&= \sum z_i v_i^2 - \left( \sum v_i z_i \right)^2 \\
&= \text{Var}(v) \ge 0
\end{aligned}vT∇2fv=∑zivi2−(∑vizi)2=Var(v)≥0
故∇2f(x)⪰0\nabla^2 f(x)\succeq 0∇2f(x)⪰0,fff为凸函数。
联合凸的部分最小化
若fff关于(x,y)(x,y)(x,y)是联合凸函数,CCC是非空凸集,定义:
g(x)=infy∈Cf(x,y)g(x)=\underset{y\in C}{\inf}f(x,y)g(x)=y∈Cinff(x,y)
若存在xxx使g(x)>−∞g(x)>-\inftyg(x)>−∞,则ggg关于xxx是凸函数。
示例(点到集合距离)
dist(x,S)=infy∈S∥x−y∥\text{dist}(x,S)=\underset{y\in S}{\inf}\|x-y\|dist(x,S)=y∈Sinf∥x−y∥
若SSS是非空凸集,则dist(x,S)\text{dist}(x,S)dist(x,S)是关于xxx的凸函数。
注
对比逐点最大:逐点最大不要求SSS是凸集。
示例(Schur补)
考虑二次函数:
f(x,y)=xTAx+2xTBy+yTCy,[ABBTC]⪰0f(x,y)=x^TAx+2x^TBy+y^TCy, \quad \begin{bmatrix}A&B\\B^T&C\end{bmatrix}\succeq0f(x,y)=xTAx+2xTBy+yTCy,[ABTBC]⪰0
则:
g(x)=infyf(x,y)=xT(A−BC−1BT)xg(x)=\inf_y f(x,y)=x^T(A-BC^{-1}B^T)xg(x)=yinff(x,y)=xT(A−BC−1BT)x
由部分最小化保凸性,得A−BC−1BT⪰0A-BC^{-1}B^T\succeq 0A−BC−1BT⪰0。
透视函数
给定f:Rn→Rf:\mathbf{R}^{n}\to\mathbf{R}f:Rn→R,其透视函数g:Rn+1→Rg:\mathbf{R}^{n+1}\to\mathbf{R}g:Rn+1→R定义为:
g(x,t)=tf(x/t),domg={(x,t)∣x/t∈domf,t>0}g(x,t)=tf(x/t), \quad \text{dom}g=\{(x,t)\mid x/t\in\text{dom}f,t>0\}g(x,t)=tf(x/t),domg={(x,t)∣x/t∈domf,t>0}
若fff是凸函数,则ggg也是凸函数。
证明
当fff是凸函数,x/tx/tx/t是凸集,在学习凸集的保凸性时已经知道,当CCC是凸集,PPP是透视运算,透视运算的原像P−1(C)P^{-1}(C)P−1(C)也是凸集,因此(x,t)(x,t)(x,t)是凸集。结合上镜图判定,
epi g={(x,t,s)∣g(x,t)≤s,t>0}={(x,t,s)∣tf(x/t)≤s,t>0}={(x,t,s)∣f(x/t)≤s/t,t>0}\text{epi}\ g=\{(x,t,s)|g(x,t)\le s,t>0\}=\{(x,t,s)|tf(x/t)\le s,t>0\}=\{(x,t,s)|f(x/t)\le s/t,t>0\}epi g={(x,t,s)∣g(x,t)≤s,t>0}={(x,t,s)∣tf(x/t)≤s,t>0}={(x,t,s)∣f(x/t)≤s/t,t>0}
⇔epi f={(x/t,s/t)∣f(x/t)≤s/t,t>0}\Leftrightarrow \text{epi}\ f=\{(x/t,s/t)|f(x/t)\le s/t,t>0\}⇔epi f={(x/t,s/t)∣f(x/t)≤s/t,t>0}
由于fff是凸函数,其epi f\text{epi}\ fepi f是凸集。显然epi g\text{epi}\ gepi g是透视映射下epi f\text{epi}\ fepi f的原像,因此epi g\text{epi}\ gepi g是凸集,ggg是凸函数。
示例(l2l_2l2范数平方的透视)
RnR^nRn上的凸函数f(x)=xTxf(x)=x^Txf(x)=xTx透视可得g(x,t)=t(x/t)T(x/t)=xTx/tg(x,t)=t(x/t)^T(x/t)=x^Tx/tg(x,t)=t(x/t)T(x/t)=xTx/t,当t>0t>0t>0时,其关于(x,t)(x,t)(x,t)是凸函数。也可表述成xT(tI)−1xx^T(tI)^{-1}xxT(tI)−1x,借助凸函数及定义处的矩阵分式函数判定其为凸函数。还可以把该透视函数表述成∑ixi2t\sum_i \frac{x^2_i}{t}∑itxi2,其中每一项xi2/tx_i^2/txi2/t都是凸函数,借用凸函数的非负加权和仍是凸函数,判定透视函数是凸函数。
示例(KL散度与相对熵)
考虑R++R_{++}R++上的凸函数f(x)=−logxf(x)=-\log xf(x)=−logx,其对应的透视函数为:
g(x,t)=−tlog(x/t)=tlog(t)−tlogxg(x,t)=-t\log(x/t)=t\log(t)-t\log xg(x,t)=−tlog(x/t)=tlog(t)−tlogx
该函数ggg称作关于x,tx,tx,t的相对熵。可见相对熵是凸函数,当x=1x=1x=1,ggg为负熵。
定义两个向量u,v∈R++nu,v\in R^n_{++}u,v∈R++n的相对熵:
∑i=1nuilog(ui/vi),\sum_{i=1}^{n}u_{i}\log(u_{i}/v_{i}),i=1∑nuilog(ui/vi),
其是一系列ui,viu_i,v_iui,vi相对熵的非负加权和(权为1),因此关于(u,v)(u,v)(u,v)是凸函数。
相对熵经过非负加权和的保运算可得到\textcolor{red}{KL散度:}
Dkl(u,v)=∑i=1n(uilog(ui/vi)−ui+vi)D_{\mathrm{kl}}(u,v)=\sum_{i=1}^{n}\left(u_{i}\log(u_{i}/v_{i})-u_{i}+v_{i}\right)Dkl(u,v)=i=1∑n(uilog(ui/vi)−ui+vi)其是相对熵和线性函数之和,因此也为凸函数。
当且仅当u=vu=vu=v,Dkl(u,v)=0D_{\mathrm{kl}}(u,v)=0Dkl(u,v)=0,并且Dkl(u,v)≥0D_{\mathrm{kl}}(u,v)\ge 0Dkl(u,v)≥0,常用于衡量两个正向量之间的偏差。
并且值得注意的是,当u,vu,vu,v都是概率向量,有∑iui=1,∑ivi=1\sum_iu_i=1,\sum_iv_i=1∑iui=1,∑ivi=1,此时KL散度=相对熵。
\begin{proof}[证明Dkl(u,v)≥0D_{\mathrm{kl}}(u,v)\ge 0Dkl(u,v)≥0]引入Bregman散度:
DB(u,v)=f(u)−f(v)−∇Tf(v)(u−v)D_B(u,v)=f(u)-f(v)-\nabla^Tf(v)(u-v)DB(u,v)=f(u)−f(v)−∇Tf(v)(u−v)
其中fff假设严格凸且可导,因此直观上来看,DB(u,v)D_B(u,v)DB(u,v)衡量了fff在点uuu处,与在点vvv处线性展开的差异。并且可见,DB(u,v)D_B(u,v)DB(u,v)对uuu一定是凸函数(通过仿射保凸性和非负加权和保凸性可判断),但对vvv不一定,因此联合不一定是凸函数。
根据凸函数fff的一阶判定条件可知,DB(u,v)≥0D_B(u,v)\ge 0DB(u,v)≥0。而KL散度是Bregman散度取f(x)=∑ixilogxif(x)=\sum_ix_i\log x_if(x)=∑ixilogxi的特例。具体∇Tf(x)=(1+logx1,1+logx2,...,1+logxd)\nabla^T f(x)=(1+\log x_1,1+\log x_2,...,1+\log x_d)∇Tf(x)=(1+logx1,1+logx2,...,1+logxd),
DB(p,q)=∑ipilogpi−∑iqilogqi−∑i(1+logqi)(pi−qi)=DKL(p,q)D_B(p,q)=\sum_ip_i\log p_i-\sum_iq_i\log q_i-\sum_i(1+\log q_i)(p_i-q_i)=D_{KL}(p,q)DB(p,q)=i∑pilogpi−i∑qilogqi−i∑(1+logqi)(pi−qi)=DKL(p,q)
还有一些常用的Bergman散度:
定义f(x)=12∥x∥2⇒Df(x,y)=12∥x−y∥2f(x)=\frac{1}{2}\|x\|^2\Rightarrow D_f(x,y)=\frac{1}{2}\|x-y\|^2f(x)=21∥x∥2⇒Df(x,y)=21∥x−y∥2,K-means距离的损失函数。
定义f(x)=−∑logxi⇒Df(x,y)=∑i(xi/yi−logxi/yi−1)f(x)=-\sum \log x_i\Rightarrow D_f(x,y)=\sum_i(x_i/y_i-\log x_i/y_i -1)f(x)=−∑logxi⇒Df(x,y)=∑i(xi/yi−logxi/yi−1),常用于信号处理。
更多推荐
所有评论(0)