凸函數二階條件的理解及常見函數解析

判定凸函數有一階和二階條件兩種方式,一階條件即,

假設ff可微,則函數ff是凸函數的充分必要條件是domfdom f是凸集且對於任意x,ydomfx,y\in dom f,下式成立
f(y)f(x)+f(x)T(yx)f(y)\geq f(x)+\nabla f(x)^T(y-x)
下圖是他在圖形上的描述,具體證明可以看下面這個blog

https://blog.csdn.net/JiZhG/article/details/52262746?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522158881838419725211937190%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.57644%2522%257D&request_id=158881838419725211937190&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v25-1

在這裏插入圖片描述


一階條件在工作中很少被使用,我們往往使用的是二階條件來判定函數的凸性,二階條件涉及到了Hessian matrix,他是這樣定義的。

Hessian matrix

在數學中,海森矩陣(Hessian matrix 或 Hessian)是一個多變量實值函數的二階偏導數組成的方塊矩陣,假設有一實數函數f(x1,x2,...,xn)f(x_1,x_2,...,x_n),如果ff所有的二階偏導數都存在,那麼ff的海森矩陣的第ijij-項即:H(f)ij(x)=DiDjf(x)H(f)_{ij}(x)=D_iD_jf(x),完整的矩陣長下面這樣----搜狗百科

在這裏插入圖片描述

二階條件

現假設ff二階可微, 即對於開集domfdom f內的任意一點, ff的二階導或者HessianHessian矩陣存在, 則函數ff是凸函數的充要條件是, 其Hessian矩陣半正定, 即xdomf∀x∈domf, 有
2f(x)0\nabla^2f(x)\succeq0
對於R上的函數, 上式退化爲f(x)0f′′(x)⩾0. 該條件表明函數ff的導數非減, 從幾何上解釋就是函數ff在點xx處具有向上(正)的曲率.


需要注意的一個性質是,對於2f(x)0\nabla^2f(x)\succ0,他去掉了等於的條件,可以證明函數f(x)f(x)是嚴格凸的,但是反過來無法得到,也就是說嚴格凸,不一定滿足2f(x)0\nabla^2f(x)\succ0

考慮f(x)=x4f(x)=x^4,這個函數顯然是凸的,但是他的二階導數12x212x^2是可以等於0的,不一定完全大於0。


最常用的凸函數:二次函數\textbf{最常用的凸函數:二次函數}
f:RnR,    domf=Rn,    PSn,    QRn,    rRf:R^n\rightarrow R,\;\;dom f=R^n,\;\; P\in S^n,\;\;Q\in R^n,\;\; r\in R
f(x)=12xTPx+QTx+rf(x)=\frac{1}{2}x^TPx+Q^Tx+r
這是一個二次函數,由於自變量是向量,所以二次項寫爲xTPxx^TPx。P一般要求是一個對稱的矩陣,Q是向量,R是標量。我們驗證一下該函數何時凸,何時凹。

他的海森矩陣就是P,我們只需要判斷P是正定,半正定還是半負定。而且該二次函數滿足一個性質,如果P是正定的那麼函數一定是嚴格凸的,反過來也可以證明,即嚴格凸能得到P是正定的,這是爲數不多能得到這個性質的函數。


定義域一定要是凸集\textbf{定義域一定要是凸集}
考慮f(x)=1x2f(x)=\frac{1}{x^2},他的二階導數f(x)=6x4>0f''(x)=6x^{-4}>0,但是他顯然不是一個凸函數,x=0x=0是他的一個奇異值點,它在左側凸函數,也在右側凸函數,但整體不是凸函數。也就是說,如果他的定義域都不是凸集,那麼他一定不是凸函數。
在這裏插入圖片描述

常見函數的辨析

能用二階條件判定的常見函數

仿射,指數函數,冪函數,絕對值的冪函數,對數函數,負熵


仿f(x)=Ax+b,2f(x)=0\color{blue}仿射函數:f(x)=Ax+b,\nabla^2 f(x)=0
顯然它既是半正定,也是半負定,因此既是凸函數也是凹函數。


f(x)=eax,xR,aR\color{blue}指數函數:f(x)=e^{ax},x\in R, a\in R
f(x)=aeax,f(x)=a2eax0f'(x)=ae^{ax}, f''(x)=a^2e^{ax}\geq0,因此該函數一定是凸函數。


f(x)=xa,xR++,aR\color{blue}冪函數:f(x)=x^a,x\in R_{++}, a\in R
x一定是一個正數,f(x)=axa1,f(x)=a(a1)xa2f'(x)=ax^{a-1}, f''(x)=a(a-1)x^{a-2},此時顯然他不是任何時候都滿足0\geq 0,因此需要分情況進行討論。
在這裏插入圖片描述
有兩點比較特殊,當a=1a=1或者a=0a=0的時候,它變成了仿射函數和常數,顯然既是凸的也是凹的。


f(x)=xp,xR,aR\color{blue}絕對值的冪函數:f(x)=|x|^p,x\in R, a\in R
這裏將x的限制去掉,但是我們不想結果是負的,所以加上絕對值,注意p不能等於1,|x|函數是一階不可導的。(但是需要注意p=1時,|x|是凸函數),然後考慮p!=1p!=1的場景。此時我們求其二階導數:
在這裏插入圖片描述
顯然p1p\geq 1時,這是一個凸函數,在p<1p<1的時候是沒有一個統一的結論的。


f(x)=logx,xR++\color{blue}對數函數:f(x)=\log{x},x\in R_{++}
對數函數一定是凹函數,他的二階導數f(x)=1x2<0f''(x)=-\frac{1}{x^2}<0,所以這是一個嚴格凹函數。


f(x)=xlogx,xR++\color{blue}負熵:f(x)=x\log{x},x\in R_{++}

f(x)=1xf''(x)=\frac{1}{x},是一個嚴格凸的函數。在信息論裏我們總是要極大化熵,也就是找到熵這個凹函數的最大值。

範數-零範數

Rnp(x)xRnR^n空間的範數 p(x) x\in R^n
範數是滿足以下三個性質的函數

  1. p(ax)=ap(x)p(ax)=|a|p(x)
  2. p(x+y)p(x)+p(y)p(x+y)\leq p(x)+p(y)
  3. p(x)=0x=0p(x)=0當且僅當x=0

此時我們不能求二階導數,因此需要使用一階條件來證明他確實是一個凸函數。


x0=零範數 ||x||_0=非零元素的個數
零範數不是範數,他也不是一個凸函數。爲什麼他不滿足範數的定義呢,其實是不滿足第一個條件。

極值函數與解析逼近

f(x)=max{x1,...,xn},xRn\mathbf{極大值函數 f(x)=\max\{x_1,...,x_n\},x\in R^n}
顯然我們無法求二階導數,因此我們使用他的定義,對x,yRn,0θ1\forall x,y\in R^n,\forall 0\leq\theta\leq 1

那麼我們有
f(θx+(1θ)y)=max{θxi+(1θ)yi,i=1,...,n}f(\theta x+(1-\theta )y)=\max\{\theta x_i+(1-\theta)y_i,i=1,...,n\}
也就是把x,y的每一個元素都單獨拿出來求其中的最大值,然後我們可以得到
f(θx+(1θ)y)θmax{xi,i=1...n}+(1θ)max{yi,i=1...n}=θf(x)+(1θ)f(y)f(\theta x+(1-\theta )y)\leq \theta\max\{x_i,i=1...n\}+(1-\theta)\max\{y_i,i=1...n\}=\theta f(x)+(1-\theta)f(y)
得證。

但是對於極大值函數他是不可導的,優化比較麻煩,我們通常給他做一個可導的近似優化,叫做解析逼近。
log-sum-up\textbf{log-sum-up}
首先我們對所有的元素進行一個操作
f(x)=log(ex1+...+exn);xRnf(x)=\log(e^{x1}+...+e^{xn});x\in R^n
這個函數滿足一個非常好的性質,
max{x1,...,xn}f(x)max{x1,...,xn}+logn\max\{x_1,...,x_n\}\leq f(x)\leq \max\{x_1,...,x_n\}+\log n
然後我們證明這個解析逼近是一個凸函數,直接求二階偏導。
在這裏插入圖片描述
之後的證明涉及了柯西斯瓦茲不等式以及一系列變換,詳細推導來這裏

幾何平均

f(x)=(x1+...+xn)1n;xR++f(x)=(x_1+...+x_n)^{\frac{1}{n}};x\in R_{++}
這是一個凹函數,不是一個凸函數。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章