Convex Optimization——保凸運算
在本篇文章中,我們討論一些保凸運算。討論保凸運算的目的在於以下兩個方面:(1)可以很方便地判斷一些函數是否是凸函數(2)利用一些簡單的凸函數中構造複雜的凸函數。
非負加權求和
如果函數 是凸函數,那麼對於任意 , 也是凸函數。如果 都是凸函數,那麼 也是凸函數。將二者結合,並推廣至高維可得:如果 是凸函數,對於 ,函數 也是凸函數。
與仿射函數複合
假設 , , ,定義函數 ,如果函數 是凸函數,那麼函數:
也是凸函數。
逐點取最大值與上確界
如果 都是凸函數,那麼它們的逐點最大值函數 也是凸函數。這一點可以從凸函數的定義很容易地驗證:
上式中第一個不等式使用的是凸函數的定義,第二個不等式使用的是max函數的性質。該性質可以進一步推廣至多個凸函數函數的逐點最大值函數:如果 是凸函數,那麼
也是凸函數。
由於逐點最大值函數可以保持凸性,因此很容易地可以將其推廣至逐點上確界函數。如果對 , 關於 是凸函數,那麼 關於 的逐點上確界函數:
是凸函數。 的凸性可以從 Epigraph角度進行驗證:
由於 對於給定的 是關於 的凸函數,因此 對給定的 是凸集,因此函數 的Epigraph是一系列凸集的交集,因此 也是凸集,故而函數 是凸函數。
複合函數保凸的必要條件
複合函數在實際應用中非常常見,如果複合函數的各個子函數滿足一定條件,可以保證複合之後的函數的凸性。這一點在工程應用與科學研究中非常重要,因為工程中面對的優化目標往往比較複雜,而比較複雜的函數往往可以看成是簡單函數的複合函數,對於複雜函數直接判斷其凸性比較困難,而利用本節中介紹的條件,可以從複雜函數的簡單子函數出發,通過檢查這些簡單子函數的凸性、單調性來判斷複合函數是否是凸函數。
首先我們給出複合函數的定義:假設兩個函數: 和 ,則函數 的複合函數定義為:
下面我們將會根據外層函數 是標量函數與矢量函數的兩種情況分別介紹複合函數 是凸函數的條件。
是標量函數
當 是標量函數,即 時,不是一般性,同時假設 也是標量函數,即 。
接下來我們使用凸函數判定的二階條件來給出函數 是凸函數的條件。假設 是二階可微函數,根據複合函數求導的鏈鎖法則,我們有:
若 是凸函數,那麼就必須有:
現在假設 是凸函數, 是凸函數同時滿足非遞減性,則此時 ,即函數 是凸函數。類似於這種方法,我們還可以得到以下結論:
- 若 是凸函數, 是凸函數同時滿足非遞減性,則函數 是凸函數;
- 若 是凹函數, 是凸函數同時滿足非遞增性,則函數 是凸函數;
- 若 是凸函數, 是凹函數同時滿足非遞增性,則函數 是凹函數;
- 若 是凹函數, 是凹函數同時滿足非遞減性,則函數 是凹函數;
利用上述複合函數的凸性判定條件,我們可以很容易地確定一些簡單複合函數的凸性:
- 如果 是凸函數,那麼 是凸函數,因為 是凸函數且非遞減(條件一);
- 如果 是凹函數且恆為正數,那麼 是凹函數,因為 是凹函數且非遞減(條件四);
- 如果 是凹函數且恆為正數,那麼 是凸函數,因為 是凸函數且非遞增(條件二);
- 如果 是凸函數且恆為非負數,同時 ,那麼 是凸函數。因為 在 時是凸函數且非遞減(條件一);
- 如果 是凸函數,那麼 是凸函數,因為 是凸函數且滿足非遞減性(條件一)
是矢量函數
在前一節中我們考慮了 的情況,現在來考慮更一般的 的情況。假設複合函數 可以表示為如下形式:
其中, , 。之所以假設 具有這種特殊形式是為了方便分析,更一般的複合形式非常複雜,無法分析出有用的規則,而且很多工程中遇到的實際問題中, 都滿足這種特殊的結構。
不是一般性,這裡我們依然假定 ,此時函數 是一個由實數到實數的映射。假設 的二階導數存在,其可以表示為:
類似於前一節中的討論,也可以得到一些關於判定 凹凸性的規則,例如:
- 如果 是凸函數( ),且 是凸函數()同時 的每一個維度都是非遞減的( ),那麼是凸函數;
- 如果 是凹函數( ),且 是凸函數()同時 的每一個維度都是非遞增的( ),那麼是凸函數;
- 如果 是凹函數( ),且 是凹函數()同時 的每一個維度都是非遞減的( ),那麼是凹函數;
下面給出一些當 是矢量函數時判斷複合函數 凹凸性的例子。
- 函數 是log-sum-exp函數,在前一篇文章中已經介紹過,它是一個凸函數,同時關於每一個維度它都是非遞減的,因此當 是凸函數時, 是凸函數(條件一)。
- 函數 當 時是凹函數,同時關於每一分量都是非遞減的,因此如果 是凹函數且取值飛度,那麼函數 是凹函數(條件三)
逐點取最小值與下確界
之前已經說明了逐點取最大值與上確界是一種保凸運算,與之對應的,逐點取最小值與下確界也是保凸運算。假設函數 是凸函數, 是一個非空凸集,那麼函數:
是一個凸函數。這個式子的含義是:對於給定的 ,在凸集 中找一個最優的 使得 最小。
我們可以使用下一篇中提到的詹森不等式來證明這個結論:
第一個不等式根據是 運算元的性質: ,第二個不等式是詹森不等式,因為 是凸函數,第三個不等式根據 的定義。由此,我們證明了下確界函數與最小化(Minimization)是保凸運算。
函數透視(Perspective of a Function)
函數 的透視(perspective)被定義為函數 :
其中, 。如果函數 是凸函數,那麼 也是凸函數。可以從Epigraph的角度證明該結論的正確性:
對於 ,
由此,我們發現 是 在透視變換 下的像(透視函數定義,詳情參見凸集部分有關透視函數的介紹),因為 是凸函數,因此是凸集,因此的原像也是凸集,因此函數 是凸函數。
總結
本文介紹了一些對於凸函數的保凸運算,包括線性運算、最大化、最小化、透視函數,討論了凸函數的複合函數的凹凸性判斷法並舉了若干實例輔助解釋。本文涉及到的內容對於後續求解凸優化問題非常重要,也是當我們在面對優化問題時幫助我們判斷問題性質的利器,應當仔細掌握並靈活應用。下一篇文章中將會介紹共軛函數和偽凸函數,其中共軛函數在後續的優化演算法分析中具有重要作用。
推薦閱讀: