好幾天沒有寫東西了,今天趕緊起來補救一下,假裝自己還在認真學習凸優化哈哈哈~話不多說,我們步入今天的正題——共軛函數與偽凸函數。共軛函數在後面的介紹對偶性以及牛頓法時會涉及到,偽凸函數則在後面的內容中用得較少,主要是為了介紹一種類似於凸函數的非凸函數,由於偽凸函數與凸函數高度相似,因此求解偽凸優化問題的方法亦類似於求解凸優化問題的方法。
共軛函數定義與示例
假設 ,函數 ,如果函數 與函數 之間滿足如下關係:
則稱 為函數 的共軛函數。共軛函數 的定義域是使得上式中 結果小於 的部分。從共軛函數的定義來看,共軛函數的幾何意義是對於給定的 ,共軛函數值 等於線性函數 與原函數 差的最大值。共軛函數的幾何意義可以使用下圖表示:
我們可以很容易地發現, 是凸函數。因為對於確定的 , 是定值,而 是關於 的線性函數,而 運算在之前的介紹中已經介紹了,是保凸的運算,因此 是凸函數。這一點與 是否是凸函數無關。下面我們推導一些常見函數的共軛函數表達式。
共軛函數示例
從共軛函數的幾何意義,很容易地可以驗證,如果 ,那麼 ,當 時, ;
對於固定的 ,令 對 的導數為0,可以求得 ,將 帶入上式,可得
對於固定的 ,令 對 的導數為0,可以求得 ,將 帶入上式,可得
2. 一些定義在 上的函數的共軛函數
對於固定的 ,令 對 的梯度為0,可得 ,將 帶入上式,可得:
上式當 時取最大值,因此 帶入上式可得:
於是我們得到,當 時,Log-sum-exp函數的共軛函數時負熵函數
其中, 表示函數 的對偶範數。
共軛函數的性質
定義與示例
函數 被稱為偽凸函數當且僅當它的定義域以及所有的子水平集:
都是凸集。一個函數是偽凹函數當且僅當它的反函數是偽凸函數,一個函數如果即是偽凸函數又是偽凹函數,那麼稱這個函數為偽線性的。凸函數的定義域與所有子水平集都是凸集,滿足偽凸函數的定義,因此所有凸函數都是偽凸的,但是反之則不然。考慮一個定義在 上的偽凸函數,其函數圖像如下:
從上圖中可以發現,該函數具有不止一個的全局最小值,但這些全局最小值都是相同的。因此,我們可以發現偽凸函數並不都是凸函數,或者說偽凸函數是凸函數的拓展。
下面我們展示一些定義在 上的偽凸函數例子。
向上取整函數: 是偽凸函數,同時也是偽凹函數(因此是偽線性的)
上面兩個例子說明了偽凸函數可能是凹函數,也可能是不連續函數。
下面我們來看幾個定義在 上的偽函數的例子。
該函數是偽凸的,因為它的所有子水平集:
是 空間的子空間,是凸集。
是偽凸函數,也是偽凹函數,因此是偽線性函數。首先,其定義域 是一個半空間,因此是一個凸集。其次,它的任意子水平集:
是一個凸集。類似的還可以證明它的任意超水平集(superlevel set)也是凸集,因此該函數既是偽凸的,又是偽凹的,因此是偽線性的。
當 滿足 時是偽凸函數。考慮該函數的 子水平集,因為 成立,因此必然有 ,因此 子水平集等價於找到不等式:
的解。將不等式兩邊同時平方,可得:
上式當 時表示了一個歐氏空間中的一個球,因此是凸集。因此證明了距離比函數是偽凸函數。
基本性質
從偽凸函數的定義,我們可以發現偽凸函數與凸函數之間有很多相似性,許多凸函數的性質都可以類比到偽凸函數中。
類比凸函數對應的詹森不等式,可以發現二者在不等式右邊有所區別。該不等式可以使用下圖作一個形象的闡釋。
下圖形象地說明了該性質:
可微的偽凸函數
一階條件
如果函數 是偽凸函數,那麼有下式成立:
回顧凸函數的一階條件:
可以發現,偽凸函數的一階條件可以直接從凸函數的一階條件得到:
值得注意的是,與凸函數不同,對於凸函數而言, 的位置就是global minimizer,但是對於偽凸函數而言 的位置不一定是global minimizer。這一點可以從偽凸函數的示例圖中看出。
二階條件
與凸函數的二階條件類似,偽凸函數成立的二階條件是:
對於標量函數,
即所有具有零梯度的位置都必然具有非零的曲率。
本文簡要介紹了共軛函數與偽凸函數,側重二者的基本定義。共軛函數在之後的文章會多次提到,在凸優化中具有重要作用。偽凸函數可以看作是廣義的凸函數,偽凸優化問題是一類比凸優化更難的問題,因為偽凸函數在零梯度的位置不一定是全局最優,這加大了求解偽凸優化的難度。在下一章凸優化問題中將會給出求解偽凸優化問題的最基本演算法——二分查找法。偽凸優化在Convex Optimization這本書中涉及不多,對於初學者而言只要大致了解即可,在紮實學完凸優化相關內容後,遇到偽凸優化問題也可以很快學會求解思路。下一章將會介紹凸函數這一章的最後一個部分——對數凸函數與對數凹函數。
推薦閱讀: