常見凸集
凸集的定義:設集合\(D\in \mathbf{R}^n\),若對於任意兩點\(x,y\in D\),以及實數\(\alpha(0\leq\alpha\leq1)\),都有:
則稱集合\(D\)為凸集
仿射集合:如果集合\(C\in \mathbf{R}^n\)中任意兩個不同點之間直線上的點仍然在集合\(C\)中,那么稱集合\(C\)是仿射的。
凸錐:如果對於任意\(x\in C\)和\(\theta\geq 0\)都有\(\theta x\in C\),我們稱集合\(C\)是錐或者非負齊次。如果集合\(C\)是凸的,則稱\(C\)為凸錐,即對於任意\(x_1, x_2\in C\)和\(\theta_1, \theta_2\geq 0\),都有
超平面:超平面是具有下面形式的集合

其中\(a\in \mathbf{R}^n, a\neq 0\)且\(b\in \mathbf{R}\)。這里\(a^Tx_0=b\),進一步地\(a^T(x-x_0)=0\),所以\(a\)是\(x-x_0\)的法向量,超平面如上圖所示。解析地,超平面是關於\(x\)的非平凡線性方程的解空間(因此是一個仿射集合)。\(\{x|a^Tx\leq b\}\)稱為半平面,半平面是凸的,但不是仿射的。
Euclid球和橢球:\(\mathbf{R}^n\)空間中的Euclid球(或簡稱為球)具有下面的形式,
其中\(r>0\),\(\Vert \cdot \Vert_2\)表示Euclid范數,也即\(\Vert u\Vert_2=(u^Tu)^{1/2}\),向量\(x_c\)是球心,標量\(r\)為半徑。Euclid球的另一個常見的表達式為,$$B(x_c,r)={x_c+ru|~\Vert u\Vert_2\leq 1}$$Euclid球是凸集。
橢球具有如下形式,$$\epsilon={x~|~(x-x_c)^TP^{-1}(x-x_c)\leq 1}$$
其中\(P=P^T\succ 0\),也即\(P\)是對稱正定矩陣,\(x_c\)為橢球的中心。橢球的另外一種表示形式為\(\epsilon=\{x_c+Au~|~\Vert u\Vert_2\leq 1\}\),其中\(A\)是非奇異的方陣,且\(A=P^{1/2}\)。
單純形:設\(k+1\)個點\(v_0, ..., v_k\in \mathbf{R}^n\)仿射獨立,即\(v_1-v_0, ..., v_k-v_0\)線性獨立,那么這些點決定了一個單純形如下 $$C={\rm conv}{v_0, ..., v_k}={\theta_0v_0+\cdots+\theta_kv_k~|~\theta\succeq0,\bf{1}^T\theta=1}$$這個單純形的仿射維數為\(k\),因此也稱為\(\mathbf{R}^n\)空間的\(k\)維單純形。
單純形是代數拓撲中最基本的概念。單純形是三角形和四面體的一種泛化,一個k維單純形是指包含 k+1個節點的凸多面體。
用\(S^n\)表示對稱\(n\times n\)矩陣的集合,即
用\(S^n_+\)表示對稱半正定矩陣的集合,即
用\(S^n_{++}\)表示對稱正定矩陣的集合,即
集合\(S^n_+\)是一個凸錐:如果\(\theta_1, \theta_2\geq 0\)並且\(A, B\in S^n_+\),那么\(\theta_1A+\theta_2B\in S^n_+\)
常見集合的保凸運算
1、交集:任意有限個甚至無限個凸集的交集運算是保凸的。
2、仿射變換:函數\(f : \mathbf{R}^n\rightarrow \mathbf{R}^m\) 是仿射的,如果它是一個線性函數和一個常數的和,即具有\(f(x)=Ax+b\) 的形式,其中\(A\in \mathbf{R}^{m\times n}, b\in \mathbf{R}^m\)。特別地,如果\(S\subseteq \mathbf{R}^n\)是凸集,\(\alpha\in \mathbf{R}\)並且\(\alpha\in \mathbf{R}^n\),那么集合\(\alpha S\)(伸縮變換)和\(S+\alpha\)(平移變化)都是凸的。
3、求和運算:多個凸集求和仍然是凸集。
4、透視函數:\(P : \mathbf{R}^{n+1}\rightarrow \mathbf{R}^n, P(z,t)=z/t\)為透視函數,其定義域為\({\rm dom} P=\mathbf{R}^n\times \mathbf{R}_{++}\),透視函數對向量進行伸縮或稱為規范化,使得最后一維分量為1並舍棄之,也即降維。如果透視函數的定義域\(A\)為凸集,那么經過透視函數作用后 \(P(A)\) 也是凸集(保凸性)。
5、線性分式函數:由透視函數和仿射函數復合而成,設\(g : \mathbf{R}^n\rightarrow \mathbf{R}^{m+1}\)是仿射的,即
其中\(A\in \mathbf{R}^{m\times n}, b\in \mathbf{R}^m, c\in \mathbf{R}^n\),並且\(d\in \mathbf{R}\),給出復合函數\(f=P(g) : \mathbf{R}^n\rightarrow \mathbf{R}^m\)
可見線性分式函數將維度從\(n\)為降到\(m\)維。線性分式函數具有保凸性。
對偶錐與廣義不等式
對偶錐:令\(K\)為一個錐。集合
稱為\(K\)的對偶錐。\(K^\ast\)是一個錐,並且它總是凸的(即使\(K\)不是凸錐)。
對偶錐的性質:
- \(K^\ast\)是閉凸錐
- \(K_1\subseteq K_2\)可導出\(K_2^\ast\subseteq K_1^\ast\)。
- 如果\(K\)有非空內部,那么\(K^\ast\)是尖的。
- 如果\(K\)的閉包是尖的,那么\(K^\ast\)有非空內部
- \(K^{\ast\ast}\)是\(K\)的凸包的閉包。(因此,如果\(K\)是凸和閉的,則\(K^{\ast\ast}=K\))
廣義不等式:正常錐 \(K\) 可以用來定義廣義不等式,即 \(\mathbf{R}^n\) 上的偏序關系,定義如下,
當 \(K=\mathbf{R}_+\) 時,偏序關系 \(\succeq K\) 就是通常意義上 \(\mathbf{R}\) 中的序 \(\geq\)。
凸函數
凸函數的定義
凸函數定義:設\(f(x)\)為定義在凸集合\(D\)上的函數,對於\(D\)上任意兩點\(x_1,x_2\in D\)和任意實數\(\lambda\in[0,1]\),總有:

凸函數的判斷方法:
(1)一階條件:dom \(f\) 是凸集且對於任意 \(x, y\in\) dom \(f\),滿足\(f(y)\geq f(x)+\nabla f(x)^T(y-x)\)(如果是嚴格凸則去掉“=”)
(2)二階條件:函數\(f\)是二階可微,也即它的 Hessian 矩陣或者二階導數 \(\nabla^2f\) 存在,則函數 \(f\) 是凸函數的充要條件是它的 Hessian 矩陣半正定(也即 \(\nabla^2f(x)\succeq 0\))
Hessian矩陣:若\(n\)元函數\(f(x)\)具有二階偏導數,也即\(\frac{\partial^2 f(x)}{\partial x_i\partial x_j}\)都存在,則稱矩陣
為\(f(x)\)在\(x\)處的 Hessian 矩陣
常見的凸函數:
- 指數函數.
- 對數函數 \(f(x)=\log_ax\),當 \(0<a<1\) 時 \(f(x)\) 是單調遞減凸函數,當 \(a>1\) 時 \(f(x)\) 是單調遞增凹函數。
- 冪函數,當\(a\geq1\)或者\(a\leq0\)時,\(x^a\)在凸集\(D\)是凸函數,當\(0\leq a\leq1\)時,\(x^a\)在凸集\(D\)是凹函數
- 絕對值冪函數,當\(p\geq1\)時,函數\(|x|^p\)在\(\mathbf{R}\)上是凸函數
- 有限個凸函數的非負加權求和:\(\sum_{i=1}^n\omega_if_i(x)\),其中\(\omega_i\geq0\),\(f_i(x)\)為凸函數
- 仿射變換:仿射變換(\(f(x)=Ax+b\))具有保凸性,也即只要\(f(x)\)是仿射變換,\(g(x)\)是凸函數,那么\(g(f(x))\)和\(f(g(x))\)都是凸函數
- 負對數函數(\(-\log{x}\))在凸集\(D\)上是凸函數
- 負熵,函數\(x\log{x}\)在凸集\(D\)上是凸函數
- 范數,\(\mathbf{R}^n\)上任意范數都是凸函數
- 最大值函數和上確界函數
- 二次-線性分式函數:例如函數\(f(x,y)=x^2/y\),其定義域為 dom \(f=\mathbf{R}\times \mathbf{R}_{++}=\{(x,y)\in \mathbf{R}^2~|~y>0\}\)
- 指數和的對數,函數\(f(x)=\log(e^{x_1}+\dots+e^{x_n})\)在\(\mathbf{R}^n\)上是凸函數
- 幾何平均函數,函數\(f(x)=(\prod_{i=1}^nx_i)^{1/n}\)
- 對數-行列式:函數 \(f(X)=\log\det X\) 在定義域 dom \(f=S^n_{++}\) 是凹函數
- 對稱矩陣的最大特征值,函數\(f(X)=\lambda_{\rm max}(X)\),因為:\(\lambda_{\rm max}(X)=\sup\big\{y^TXy~\big |~\Vert y\Vert_2=1\big\}\)
補充:一個函數的原函數和反函數的單調性相同,但是凹凸性之間沒有聯系。
下水平集
函數 \(f : \mathbf{R}^n\rightarrow \mathbf{R}\) 的 \(\alpha-\) 下水平集定義為 $$C_{\alpha}={x\in {\rm dom} f~|~f(x)\leq\alpha}$$
對於任意 \(\alpha\) 值,凸函數的下水平集仍然是凸集。 例如集合 \(\{x\in \mathbf{R}^n_+~|~G(x)\geq \alpha A(x)\}\),其中 \(0\leq\alpha\leq 1\), \(G(x)=\Big(\prod_{i=1}^nx_i\Big)^{1/n}\),\(A(x)=\frac{1}{n}\sum_{i=1}^nx_i\),該集合是凸集,因為它是凹函數 \(G(x)-\alpha A(x)\) 的0-上水平集。反過來不一定正確:某個函數的所有下水平集都是凸集,但是這個函數可能不是凸函數 (后面將給出這樣的函數定義為"擬凸函數")。
上鏡圖
函數 \(f : \mathbf{R}^n\rightarrow \mathbf{R}\) 的圖像定義為 $${(x, f(x))~|~x\in {\rm dom} f}$$ 它是 \(\mathbf{R}^{n+1}\) 空間的一個子集。函數 \(f : \mathbf{R}^n\rightarrow \mathbf{R}\) 的上鏡圖定義為 $${\rm epi} f ={(x, t)~|~x\in{\rm dom} f, f(x)\leq t}$$ 它也是 \(\mathbf{R}^{n+1}\) 空間的一個子集。與上鏡圖相對應的是亞圖:$${\rm hypo} f ={(x, t)~|~x\in{\rm dom} f, t\leq f(x)}$$
凸集和凸函數的聯系可以通過上鏡圖和亞圖來建立:一個函數是凸函數,當且僅當其上鏡圖是凸集;一個函數是凹函數,當且僅當其亞圖是凸集。這些關系可以用下圖所示

運用上鏡圖可以判斷矩陣分式函數 \(f : \mathbf{R}^n\times S^n\rightarrow \mathbf{R}\),$$f(x, Y)=x^TY^{-1}x$$在定義域 dom \(f=\mathbf{R}^n\times S^n_{++}\) 上是凸的,這是因為 $${\rm epi} f={(x, Y, t)~|~Y\succ 0, x^TY^{-1}x\leq t}=\Big{(x, Y, t)~\Big |~\begin{bmatrix}Y & x\ x^T & t\ \end{bmatrix}\succeq 0, Y\succ 0\Big}$$ 利用 Schur 補條件容易判斷分塊矩陣 \(\begin{bmatrix}Y & x\\ x^T & t\\ \end{bmatrix}\)經過行初等變換得到\(\begin{bmatrix}Y & x\\ 0 & t-x^TY^{-1}x\\ \end{bmatrix}\),所以原矩陣分式函數是凸的等價於上鏡圖是凸集,並進一步等價於矩陣\(\begin{bmatrix}Y & x\\ x^T & t\\ \end{bmatrix}\)是半正定且\(Y\)是正定的。
常見函數保凸運算
- 有限個凸函數的非負加權求和運算:\(\sum_{i=1}^n\omega_if_i(x)\),其中\(\omega_i\geq0\),\(f_i(x)\)為凸函數
- 如果固定\(y\in A\),函數\(f(x,y)\)關於\(x\)是凸函數,且滿足\(\omega(y)\geq0\),則函數\(g(x)=\int_A\omega(y)f(x,y)\)是凸函數
- 多個凸函數的逐點最大值:\(f(x)=\max\{f_1(x), f_2(x)\}\),其中 \(f_1(x), f_2(x)\) 均為凸函數
- 分片線性函數:多個線性函數求最大值(可以推廣到上確界)。矩陣的最大特征值 \(f(x)=\sup\{y^TXy~|~\Vert x-y \Vert_2=1\}\).
- 復合仿射變換:\(f(x)\)是仿射變換(\(f(x)=Ax+b\)),\(g(x)\)是凸函數,那么\(g(f(x))\)和\(f(g(x))\)都是凸函數
- 復合函數:\(f(x)=h(g(x))\),
如果 \(h\) 是凸函數且非減, \(g\) 是凸函數,則 \(f\) 是凸函數;
如果 \(h\) 是凸函數且非增, \(g\) 是凹函數,則 \(f\) 是凸函數;
如果 \(h\) 是凹函數且非減, \(g\) 是凹函數,則 \(f\) 是凹函數;
如果 \(h\) 是凹函數且非增, \(g\) 是凸函數,則 \(f\) 是凹函數。 - Schur 補函數:設二次函數\(f(x,y)=x^TAx+2x^TBy+y^TCy\),其中\(A\)和\(C\)為對稱矩陣,則\(f(x,y)\)關於\((x,y)\)為凸函數
共軛函數
設函數 \(f : \mathbf{R}^n\rightarrow \mathbf{R}\),定義函數 \(f^\ast : \mathbf{R}^n\rightarrow \mathbf{R}\) 為
此函數稱為函數 \(f\) 的共軛函數。容易知道無論 \(f(x)\) 是否是凸函數,它的共軛函數 \(f^\ast(y)\) 一定是一個凸函數。
如何求解共軛函數? 假設有函數 \(f(x) = x^TQx/2\),其中 \(Q\) 是可逆的對稱陣,根據定義有:\(f^\ast(y)=\sup\{y^Tx- x^TQx/2\}\),現在用 \(f^\ast(y)\) 對 \(x\) 求導並令其為0得到 \(y-Qx=0\),所以 \(x=Q^{-1}y\) ,代入得共軛函數為 \(f^\ast(y)= y^TQ^{-1}y/2\).
Fenchel 不等式:根據共軛函數的定義可以得到,對任意 \(x\) 和 \(y\),如下不等式成立:
上述不等式稱為 Fenchel 不等式 (當 \(f\) 可微時也稱為 Young 不等式)。
上面例子中 \(f(x) = x^TQx/2\) 的共軛函數為 \(f^\ast(y)= y^TQ^{-1}y/2\),利用 Fenchel 不等式可以得到:\(f(x)+f^\ast(y)=x^TQx/2+y^TQ^{-1}y/2\geq x^Ty\)
共軛函數的性質:
- 凸函數的共軛函數的共軛函數是這個凸函數本身。
- 獨立凸函數的和的共輒函數是各個凸函數的共輒函數的和。("獨立"的含義是各個函數具有不同的變量)
擬凸函數
擬凸函數的定義
函數 \(f : \mathbf{R}^n\rightarrow \mathbf{R}\) 稱為擬凸函數 (或者單峰函數),如果其定義域及所有下水平集
都是凸集。函數 \(f\) 是擬凹函數,如果 \(-f\) 是擬凸函數,即每個上水平集 \(\{x~|~f(x)\geq\alpha\}\) 是凸集。若某函數既是擬凸函數又是擬凹函數,其為擬線性函數。函數是擬線性函數,如果其定義域和所有的水平集 \(\{x~|~f(x)=\alpha\}\) 都是凸集。如下圖所示單峰函數,函數 \(f(x)\) 是關於 \(\alpha\) 和 \(\beta\) 的擬凸函數。

根據擬凸函數的定義,函數值小於某個常數的定義域區間構成凸集,顯然對於多峰函數,存在多段不相連的定義域區間內函數值滿足小於某個常數值,而這些區間因為不連通自然不是凸集,所以多峰函數不是擬凸函數。
因為 \(\mathbf{R}\) 上的單峰函數在任意的有界閉區間內同樣也是單峰函數,此外單峰函數的最大值點一定在邊界處取得,所以我們容易得到:函數 \(f\) 是擬凸函數的充要條件是,\({\rm dom} f\) 是凸集,且對於任意 \(x, y\in {\rm dom} f\) 及 \(0\leq\theta\leq 1\) 有
即線段中任意一點的函數值不超過其端點函數值中最大的那個。
\(\mathbf{R}\) 上的擬凸函數:連續函數 \(f : \mathbf{R}\rightarrow \mathbf{R}\) 是擬凸的,當且僅當下述條件至少有一個成立,
- 函數 \(f\) 是非減的;
- 函數 \(f\) 是非增的;
- 存在一點 \(c\in{\rm dom} f\),使得對於 \(t\leq c\)(且 \(t\in{\rm dom} f\)),\(f\) 非增,對於\(t\geq c\)(且 \(t\in{\rm dom} f\)),\(f\) 非減。
以上三個條件本質上是對單峰函數的三種可能情況的描述。
可微的擬凸函數:
一階條件:設函數 \(f : \mathbf{R}^n\rightarrow \mathbf{R}\) 可微,則函數 \(f\) 是擬凸的充要條件是,\({\rm dom} f\) 是凸集,且對於任意 \(x, y\in {\rm dom} f\) 有
凸函數和擬凸函數都是單峰函數,但是凸函數還要求這個單峰函數上點的斜率是單調遞增的,而擬凸函數則不需要此條件,這就導致了凸函數導數為0的點最多只有一個且一定是全局最小點,而擬凸函數導數為0的點可能有多個且不是全局最小點。
二階條件:假設函數 \(f\) 二次可微。如果函數 \(f\) 是擬凸函數,則對於任意 \(x\in {\rm dom} f\) 以及任意 \(y\in \mathbf{R}^n\) 有
對於定義在 \(\mathbf{R}\) 上的擬凸函數,上述條件可以簡化為如下條件,
即在斜率為零的點,二階導數是非負的。
保擬凸運算
一些常見的保擬凸運算有:
- 非負加權求最大值函數:\(f=\max\{\omega_1f_1,..., \omega_mf_m\}\),其中 \(\omega_i\geq 0\),\(f_i\) 是擬凸函數。
- 復合函數:如果函數 \(g : \mathbf{R}^n\rightarrow \mathbf{R}\) 是擬凸函數,且函數 \(h : \mathbf{R}\rightarrow \mathbf{R}\) 是非減的,則復合函數 \(f = h \circ g\) 是擬凸函數。
- 最小化:如果函數 \(f(x,y)\) 是 \(x\) 和 \(y\) 的聯合擬凸函數,且 \(C\) 是凸集,則函數
是擬凸函數。
4. 凸凹函數之比:設 \(p\) 是凸函數,\(q\) 是凹函數,在凸集 \(C\) 上,\(p(x)\geq 0, q(x)>0\) 。在集合 \(C\) 上定義函數 \(f(x)= p(x)/q(x)\),則 \(f\) 是擬凸函數。
對數-凹函數和對數-凸函數
稱函數 \(f : \mathbf{R}^n\rightarrow \mathbf{R}\) 對數凹或對數-凹,如果對所有的 \(x\in{\rm dom} f\) 有 \(f(x)>0\) 且 \(\log f\) 是凹函數。稱函數對數凸或者對數-凸,如果 \(\log f\) 是凸函數。
對數-凹函數的性質:函數 \(f : \mathbf{R}^n\rightarrow \mathbf{R}\),其定義域是凸集,且對於任意 \(x\in {\rm dom} f\) 有 \(f(x)>0\),函數是對數-凹的,當且僅當對任意 \(x,y\in {\rm dom} f\),\(0\leq\theta\leq 1\) 有
特別地,取 \(\theta=1/2\) 有:對數-凹函數在兩點之間中點的函數值不小於這兩點的函數值的幾何平均值。
一些常見對數-凹函數和對數-凸函數
- 函數值大於0的仿射函數
- 冪函數:函數 \(f(x)=x^{\alpha}\) 在 \(\mathbf{R}_{++}\) 當 \(\alpha\leq 0\) 時是對數-凸函數,當 \(\alpha\geq 0\) 時是對數凹函數。
- 指數函數:\(f(x)=e^{\alpha x}\) 既是對數-凸函數也是對數-凹函數。
- Gauss概率密度函數的累積分布函數:\(\Phi(x)=\frac{1}{\sqrt{2\pi}}\int_{-\infty}^xe^{-u^2/2}du\)
- 行列式:\(\det X\) 在 \(S^n_{++}\) 上是對數-凹函數
- 行列式與跡之比。\(\det X/\mathbf{tr} X\) 在 \(S^n_{++}\) 上是對數-凹函數
二次可微的對數-凸函數/凹函數
函數 \(f\) 二次可微,則它是對數-凸函數的充要條件是 \(f(x)\nabla^2f(x)\succeq\nabla f(x)\nabla f(x)^T\),\(f\) 是對數-凹函數的充要條件是 \(f(x)\nabla^2f(x)\preceq\nabla f(x)\nabla f(x)^T\)。
對數-凹函數和對數-凸函數的性質
- 對數-凸性以及對數-凹性對乘積以及正的伸縮運算是封閉的。例如,函數 \(f\) 和 \(g\) 都是對數-凹函數,那么 \(h=f\cdot g\) 仍然是對數-凹函數,這是因為 \(\log h=\log f+\log g\),利用凹函數對加法的封閉性可以得出此結論。
- 對數-凹函數的和一般不是對數-凹函數。然而,對數-凸函數的和仍然是對數-凸函數。例如,函數 \(F=\log f\) 和 \(G=\log g\),其中 \(f, g\) 都是對數-凸函數,所以 \(F, G\) 都是凸函數,而 \(h=\log(f+g)=\log(e^F+e^G)\),根據凸函數復合函數的性質知 \(h\) 仍然是凸函數,因此 \(f+g\) 是對數-凸函數。更一般地,如果對任意 \(y\in C, f(x,y)\) 是 \(x\) 的對數-凸函數,則函數 \(g(x)=\int_Cf(x,y)dy\) 是對數-凸函數,例如非負函數的Laplace變換:\(P(z)=\int p(x)e^{-z^Tx}dx\) 是 \(\mathbf{R}^n\) 上的對數-凸函數。
- 如果函數 \(f(x,y) : \mathbf{R}^N\times \mathbf{R}^m\rightarrow \mathbf{R}\) 是對數-凹函數,則 \(g(x)=\int f(x,y)dy\) 在 \(\mathbf{R}^n\) 是 \(x\) 對數-凹函數。該結論具有重要意義,根據此結論可知對數-凹的概率密度分布函數的邊際分布仍然是對數-凹的。此外,對數-凹的性質對卷積運算是封閉的,即如果函數 \(f\) 和 \(g\) 在 \(\mathbf{R}^n\) 上是對數-凹的,則它們的卷積:\((f\ast g)(x)=\int f(x-y)g(y)dy\) 仍然是對數-凹函數。例如概率密度函數的累積分布函數:\(f : \mathbf{R}^n\rightarrow \mathbf{R}\) 定義為 \(F(x)=\mathbf{prob}(w\leq x)=\int_{-\infty}^{x_n}\cdots \int_{-\infty}^{x_1}f(z)dz_1\cdots dz_n\),其中 \(w\) 是隨機變量,具有概率密度函數 \(f\)。如果函數 \(f\) 是對數-凹函數,那么 \(F\) 是對數-凹的。
廣義不等式的凸性
廣義不等式的單調性:設 \(K\subseteq \mathbf{R}^n\) 是一個正常錐,其相應的廣義不等式為 \(\succeq K\),函數 \(f : \mathbf{R}^n\rightarrow \mathbf{R}\) 稱為 \(K\)-非減,如果下式成立
稱為 \(K\)-增,如果下式成立
例如,單調向量函數 \(f(x)\):對於任意的 \(x, y\),滿足 \(x_1 \leq y_1, \cdots, x_n \leq y_n \Longrightarrow f(x) \leq f(y)\)。
一階條件:對於可微函數 \(f\),其定義域為凸集,它是 \(K\)-非減的,當且僅當對於任意的 \(x\in {\rm dom} f\) 有
廣義不等式的凸性:設 \(K\subseteq \mathbf{R}^m\) 是一正常錐,相應的廣義不等式為 \(\succeq K\) 。函數 \(f : \mathbf{R}^n\rightarrow \mathbf{R}^m\) 是 \(K\)-凸的,如果對於任意 \(x, y\),以及 \(0\leq \theta \leq 1\) 有
函數被稱為嚴格 \(K\)-凸的,如果對任意 \(x\neq y\) 和 \(0<\theta<1\) 有
函數復合保留凸性的很多結論都可以推廣到 \(K\)-凸的情形。
凸優化問題
凸規划的標准形式:設\(f(x)\)及\(g_i(x),i=1,\dots,m\)均為\(\mathbf{R}^n\)上的凸函數,滿足以下條件的規划問題稱為凸規划:
或者\(f(x)\)為凹函數,\(g_i(x),i=1,\dots,m\)為\(\mathbf{R}^n\)上的凸函數:
凸優化問題有三個附加的要求:
- 目標函數必須是凸的,
- 不等式約束函數必須是凸的,
- 等式約束函數 \(h_i(x)=a_i^Tx-b_i\) 必須是仿射的。
一個規划問題如果不能等價於以上兩種形式的規划問題,那么這個規划問題是非凸規划問題。
凸優化問題的等價問題
常用等價變換的方法:
- 變量變換:利用變量變換 \(z=\phi(x)\) 將原始關於 \(x\) 的優化問題化為關於 \(z\) 的優化問題,求解出 \(z\),再利用 \(x=\phi^{-1}(x)\) 反解出 \(x\)
- 松弛變量:引入松弛變量,將不等式約束化為等式約束
- 消除等式約束:利用原優化問題的等式條件 \(h_i(x)=0, i=1, \dots, p\) 化簡為 \(x=\phi(z)\),再將 \(\phi(z)\) 代替 \(x\) 帶入原優化問題中 (等式條件恆滿足,因此可以去掉)
- 優化部分變量:利用一些變量的獨立性 (通過約束條件判斷),例如原問題中變量為 \(x_1, \dots, x_10\),其中 \(x_1, \dots, x_5\) 和 \(x_6, \dots, x_{10}\) 之間獨立,那么可以將原優化問題化為兩個子優化問題,其中一組變量為 \(x_1, \dots, x_5\),另一組為 \(x_6, \dots, x_{10}\)
- 上鏡圖問題形式:
理解:原問題約束變量為 \(x\),上鏡圖形式問題的約束變量為 \(x, t\)。在對 \(x\) 的約束下,我們在 \(f(x)\) 的上境圖中極小化 \(t\) (如下圖所示)

凸優化的性質
凸優化問題的一個基礎性質是其任意局部最優解也是(全局)最優解。對於擬凸優化問題,局部最優解不一定是全局最優解。
可微函數 \(f_0\) 的最優性准則:設凸優化問題的目標函數 \(f_0\) 是可微的,對於所有的 \(x,y\in {\rm dom~}f_0\) 有
令 \(X\) 表示其可行集,\(x\) 是最優解,當且僅當 \(x\in X\) 且
如果可行域為 \(\mathbf{R}\),顯然最優解的條件為 \(\nabla f_0(x)=0\),對於可行域有界情況,此時最優解滿足條件 (最優解的充要條件) \(\nabla f_0(x)^T(y-x)\geq 0\)
只含等式約束的問題:考慮優化問題:
利用最優解的條件 \(f_0(x)^T(y-x)\geq 0\) 可以得到以上等式約束的優化問題最優解的條件:\(\nabla f_0(x)+A^Tv=0\),其中 \(v\in \mathbf{R}^p\) 且 \(v\in \mathcal{N}(A)\) (\(\mathcal{N}(A)\) 表示算子 \(A\) 的零空間),這是經典的 Lagrange 乘子最優性條件。(推導過程見 P135)
只含不等式約束的問題:考慮優化問題:
利用最優解的條件 \(f_0(x)^T(y-x)\geq 0\) 可以得到以上不等式約束的優化問題最優解的條件:\(x\succeq 0, \nabla f_0(x)\succeq 0, x_i(\nabla f_0(x))_i=0, i=1, \dots, n\)。
擬凸優化問題:可以通過一族凸不等式來表示擬凸函數的下水平集,這是解決擬凸優化問題的一般方法。令 \(\phi_t : \mathbf{R}^n\rightarrow \mathbf{R}, t\in \mathbf{R}\) 為滿足
線性規划問題
線性規划問題的一般形式:
分片線性極小化:
考慮極小化(無約束)分片線性凸函數的問題:
該問題可以利用上鏡圖化為線性規划
進一步地,
線性分式規划問題:
其中目標函數為
如何將以上非凸規划問題轉化為線性規划問題呢?
通過觀察我們發現目標函數是由線性函數經過變換得到的,不妨引入新變量將目標函數轉化為線性函數,令
其中,\(x=y/z\)。將以上變換帶入原優化問題中可以得到如下等價的線性優化問題
其中 \(y, z\) 為優化變量。
廣義線性分式規划
線性分式規划的一個推廣是廣義線性分式規划,其中
該問題是分片線性極小化問題和線性分式規划問題的組合形式,可以轉化為相應的線性規划問題。
二次優化問題
二次優化問題:
當凸優化問題的目標函數是凸二次型並且約束函數為仿射時,該問題稱為二次規划(QP),二次規划可以表述為
其中 \(P\in S_+^n, G\in \mathbf{R}^{m\times n}\) 並且 \(A\in \mathbf{R}^{p\times n}\)
例如,最小二乘以及回歸都是二次規划問題。
二階錐規划:
一個與二次規划緊密相關的問題是二階錐規划(SOCP):
其中,\(x\in \mathbf{R}^n\) 為優化變量,\(A_i\in \mathbf{R}^{n_i\times n}\) 且 \(F\in \mathbf{R}^{p\times n}\)。二階錐規划問題是很多優化問題的一般形式(如魯棒線性規划,隨機約束線性規划,極小曲面問題)。
幾何規划
幾何規划自然的形式不是凸的,但是可以通過一些變換將其轉化為凸優化問題。
單項式與正項式的定義:函數 \(f : \mathbf{R}^n\rightarrow \mathbf{R}, {\rm dom}~f=\mathbf{R}^n_{++}\) 定義為
其中 \(c>0, a_i\in \mathbf{R}\)。它被稱為單項式函數或者簡稱單項式。單項式的和被稱為正項式函數或者簡稱正項式,它具有以下形式
其中 \(c_k>0\)。
幾何規划:具有下列形式的優化問題
被稱為幾何規划(GP),其中 \(f_0,\dots,f_m\) 為正項式,\(h_1,\cdots, h_p\) 為單項式,定義域為 \(\mathcal{D}=\mathbf{R}_{++}^n\)
一個優化問題如果具有以下一些特征:
- 優化問題的目標函數和約束都是多項式
- 約束具有正多項式形式
- 等式約束必須是單項式,不等式約束可以是單項式也可以是正項式。
那么就有可能轉化為幾何規划。
幾何規划與凸優化
幾何規划一般不是凸優化問題,但是可以通過轉換將幾何規划問題轉化為凸優化問題。
對於包含 \(x\) 的單項式函數,即
利用變換 \(y_i=\log x_i\) 有 \(x_i=e^{y_i}\),將此式帶入到 \(f(x)\) 中得
其中 \(b=\log c\)。
類似地,可以將以下正項式
轉化為
所以原始的幾何規划問題可以轉化為以下問題
對比一下以上問題和凸優化問題的差別,雖然以上問題的目標函數和不等式約束都是凸函數,但是凸優化還要求不等式約束的右端項為0以及等式部分是仿射的,為了將以上問題化為等價的凸優化形式,不妨對以上優化問題的目標函數和約束函數取對數進行轉換(由於目標函數是單調遞增的凸函數,目標函數部分其實可以不用取對數),從而得到如下凸形式的優化問題
以上凸優化問題的解 \(y\) 即是幾何規划問題的解,再利用 \(x_i=e^{y_i}\) 即可求出原問題的解 \(x\)。
常見幾何規划問題:
- 矩陣譜半徑優化問題。設矩陣 \(A\in \mathbf{R}^{n\times n}\) 的元素非負且不可約。Perron-Frobenius 定理表明矩陣 \(A\) 的最大正實數特征根 \(\lambda\) 決定了當 \(k\rightarrow \infty\) 時 \(A^k\) 的增長或消退的漸進速率。其中 \(\lambda>1\) 表示增長,\(\lambda<1\) 表示衰退。
Perron-Frobenius 定理指出 \(\lambda\) 滿足
其中不等式 \(Av\preceq\lambda v\) 可以表示為
矩陣特征值優化問題:
矩陣 \(A(x)\) 的元素為某些基本變量 \(x\) 的正項式函數,如何選擇 \(x\) 才能使得 \(A(x)\) 的譜半徑最小?針對該問題,我們可以寫成以下形式
其中第一個約束條件為 Perron-Frobenius 定理導出的條件,第二個關於 \(f_i(x)\) 的約束條件由實際問題給出,且 \(f_i(x)\) 是正項式。以上優化問題的優化變量是 \(x, v, \lambda\)。顯然該問題為幾何規划問題,可以化為凸優化問題。
對偶
Lagrange 對偶函數
考慮標准形式的優化問題
定義該問題的 Lagrange 函數 \(L : \mathbf{R}^n\times \mathbf{R}^m\times \mathbf{R}^p\rightarrow \mathbf{R}\) 為
其中定義域為 \({\rm dom}~L=\mathcal{D}\times \mathbf{R}^m\times \mathbf{R}^p\)。\(\lambda_i\) 稱為第 \(i\) 個不等式約束 \(f_i(x)\leq 0\) 對應的 Lagrange 乘子,\(v_i\) 稱為第 \(i\) 個不等式約束 \(h_i(x)=0\) 對應的 Lagrange 乘子。\(\lambda\) 和 \(v\) 稱為對偶變量或者 Lagrange 乘子向量。
Lagrange 對偶函數 \(g : \mathbf{R}^m\times \mathbf{R}^p\rightarrow \mathbf{R}\) 為 Lagrange 函數關於 \(x\) 取得最小值:即對 \(\lambda\in \mathbf{R}^m, v\in \mathbf{R}^p\),有
如果 Lagrange 函數關於 \(x\) 無下界,則對偶函數取值為 \(-\infty\)。
最優值的下界:對偶函數構成了(BP)問題最優值 \(p^\ast={\rm minimize}~f_0(x)\) 的下界,即對任意 \(\lambda\succeq 0\) 和 \(v\) 下式成立
雖然以上不等式給出來原優化問題的下界,但是當 \(g(\lambda,v)=-\infty\) 時其意義不大。只有當 \(g(\lambda,v)>-\infty\) 時,對偶函數才能給出 \(p^\ast\) 的一個非平凡下界。稱滿足 \(\lambda\succeq 0\) 以及 \((\lambda,v)\in {\rm dom}~g\) 的 \((\lambda, v)\) 是對偶可行的。
Lagrange 對偶函數和共軛函數
共軛函數:函數 \(f : \mathbf{R}^n\rightarrow \mathbf{R}\) 的共軛函數 \(f^\ast\) 為
\[f^\ast(y)=\sup\limits_{x\in {\rm dom}~f}(y^Tx-f(x)) \]
考慮如下優化問題,其具有線性不等式以及等式約束,
則以上優化問題的對偶函數表述為
Lagrange 對偶問題定義
對於任意一組 \((\lambda, v)\),其中 \(\lambda\succeq 0\),Lagrange 對偶函數給出了優化問題 (BP) 的最優值 \(p^\ast\) 的一個下界。因此,我們可以得到和參數 \(\lambda, v\) 相關的一個下界,其中 Lagrange 函數得到的最好的下界表述為以下優化問題
問題 (BP) 稱為原問題,問題 (DP) 稱為原問題的對偶問題。滿足 \(\lambda\succeq 0\) 和 \(g(\lambda, v)>-\infty\) 的一組解 \((\lambda, v)\) 稱為對偶問題 (DP) 的可行解,其中稱 \((\lambda^\ast, v^\ast)\) 是對偶最優解或者最優 Lagrange 乘子,如果它是對偶問題 (DP) 的最優解。
對偶約束:
對偶問題要求對偶函數的上界,顯然對偶函數取 \(-\infty\) 的情況是不可取的,因此對偶問題中對偶函數的定義域為
由於對偶函數 \(g\) 是關於 \(\lambda\) 和 \(v\) 的仿射函數,當 \(\lambda\) 和 \(v\) 滿足一定的約束條件時對偶函數存在一個下界,這個約束條件就是對偶約束。例如考慮以下的標准線性規划問題
的對偶函數為
可以得到
因為對偶問題要求對偶函數取最大值,而 \(-b^Tv>-\infty\),所以可以排除 \(g(\lambda, v)=-\infty\) 的情況,當 \(g(\lambda, v)=-b^Tv\) 時,約束條件 \(c+A^Tv-\lambda=0\) 就是對偶約束。利用對偶約束,原標准線性規划問題的對偶問題可以表述為
也即
弱對偶性
Lagrange 對偶問題的最優值,我們用 \(d^\ast\) 表示,原問題最優值用 \(p^\ast\) 表示,特別地我們有以下非常重要的不等式
即使原問題不是凸問題,上述不等式仍然成立,這個性質稱為弱對偶性。定義差值 \(p^\ast-d^\ast\) 是原問題的最優對偶間隙,它給出了原問題最優值以及通過 Lagrange 對偶函數所能得到的最好(最大)下界之間的差值,最優對偶間隙總是非負的。
對偶問題總是凸問題,當原問題很難求解時,弱對偶性給出了原問題最優值的一個下界。
強對偶性和Slater約束准則
如果等式
成立,即最優對偶間隙為零,那么強對偶性成立。這說明從 Lagrange 對偶函數得到的最好下界是緊的。
對於一般情況,強對偶性不成立。但是如果原問題是凸問題,強對偶性通常(但不總是)成立,很多研究給出了強對偶性成立的條件(除了凸性條件以外),這些條件稱為約束准則。
對於滿足凸優化條件的(BP)問題,Slater條件描述如下。
Slater條件:存在一點 \(x\in\mathbf{relint}~\mathcal{D}\) 使得下式成立
\[f_i(x)<0, \quad i=1,\cdots,m, \quad Ax=b \]滿足上述條件的點稱為嚴格可行,此時強對偶性成立。
注:\(\mathbf{relint}~\mathcal{D}\) 表示區域 \(\mathcal{D}\) 的內部。
Slater定理說明,如果凸優化問題的可行域 \(\mathcal{D}\) 內部(不包括邊界)存在一點 \(x\) 滿足 \(f_i(x)<0, \quad i=1,\cdots,m, \quad Ax=b\),那么強對偶性成立。特別地,當凸優化問題中不等式約束有些是仿射時,例如約束 \(f_1,\dots, f_k\) 是仿射的,則Slater條件可以進一步改進為:存在一點 \(x\in\mathbf{relint}~\mathcal{D}\) 使得
換言之,仿射不等式部分不需要嚴格取“小於”符號。
線性規划問題強對偶性都成立。
最優性條件
利用算法求解次最優解
由前面內容我們知道原問題最優目標函數值 \(p^\ast\) 和對偶問題最優目標函數值 \(d^\ast\) 滿足:\(d^\ast\leq p^\ast\)。定義原問題和對偶問題目標函數的差值
為原問題可行解 \(x\) 和對偶可行解 \((\lambda, v)\) 之間的對偶間隙,其中原問題和對偶問題的最優解滿足:
區間長度即為定義的對偶間隙。
如果對偶間隙為0時,此時 \(x\) 是原問題的最優解,\((\lambda, v)\) 是對偶問題的最優解。利用這一特點,可以在優化算法中給出非啟發式停止准則。原問題給定初值 \(x^0\),對偶問題初值為 \((\lambda^0, v^0)\),第 \(k\) 步迭代的可行解為 \(x^k\) 和 \((\lambda^k, v^k)\),如果給定要求的絕對精讀 \(\epsilon_{\rm abs}>0\),那么停止迭代,這種方法可以保證算法終止時,\(x^k\) 是 \(\epsilon_{\rm abs}\)-次優。除了利用差值來定義精度外,也可以利用 \(\frac{f_0(x^k)-g(\lambda^k, v^k)}{g(\lambda^k, v^k)}\leq\epsilon\) 來定義算法終止條件。
互補松弛條件
假設 \(x^\ast\) 和 \((\lambda^\ast, v^\ast)\) 分別是原問題和對偶問題的最優解,那么一定滿足以下關系
第一行等式說明最優對偶間隙為零,第二行等式是對偶函數的定義,第三行等式顯然成立,最后一行等式成立是因為 \(\lambda^\ast_i\geq 0, f_i(x^\ast)\leq 0, i=1,\dots, m\) 以及 \(h_i(x^\ast)=0, i=1,\dots, p\)。因此,當原問題和對偶問題的最優值都可以達到且相等(強對偶性成立),此時以上不等式左邊和右邊項相等,可以得到以下結論:最優解可達且強對偶性成立時,滿足
由於 \(\lambda^\ast_if_i(x^\ast)\) 每一項都是非正數,所以可以得到
以上等式條件稱為互補松弛條件。
KKT 最優性條件 (非常重要)
假設函數 \(f_0, \cdots, f_m, h_1, \cdots, h_p\) 可微 (不一定是凸函數)。
非凸問題的 KKT 條件:
令 \(x^\ast\) 和 \((\lambda^\ast, v^\ast)\) 分別是原問題和對偶問題的某對最優解,對偶間隙為零。因為 \(L(x, \lambda^\ast, v^\ast)\) 關於 \(x\) 求極小在 \(x^\ast\) 處取得最小值,因此函數在 \(x^\ast\) 處的導數必須為零,即,
因此我們有
其中
以上條件稱為 Karush-Kuhn-Tucker (KKT) 條件
對於目標函數和約束函數可微的任意優化問題,如果強對偶性成立,那么任何一對原問題最優解和對偶問題最優解必須滿足 KKT 條件,也即滿足 KKT 條件是解是原問題和對偶問題最優解的必要條件。
凸問題的 KKT 條件:
當原問題是凸問題時,滿足 KKT 條件的解也是原問題和對偶問題的最優解,且對偶間隙為零。
對於凸優化問題,設 \(x^\ast, \lambda^\ast, v^\ast\) 是任意滿足 KKT 條件的點,也即
則 \(x^\ast, \lambda^\ast, v^\ast\) 是原問題和對偶問題的最優解。
無論對於凸優化問題還是非凸優化問題,滿足 KKT 條件表明原問題和對偶問題的對偶間隙為零,也即強對偶性成立。
若某個凸優化問題具有可微的目標函數和約束函數,且滿足 Slater 條件 (即強對偶性成立),那么 KKT 條件是最優性的充要條件。
KKT 條件在優化領域非常重要,在一些特殊的情形下,是可以解析求解 KKT 條件的 (也因此可以求解優化問題)。
例題:注水問題。考慮以下凸優化問題
其中 \(\alpha_i>0\)。以上問題來源於信息論,將功率分配給 \(n\) 個信道,變量 \(x_i\) 表示分配給第 \(i\) 個信道的發射功率,\(\log(\alpha_i+x_i)\) 是信道的通信能力或者通信速率,上述問題表述為將總功率分配給不同的信道,使得總的通信速率最大。對不等式約束 \(x^\ast\succeq 0\) 引入 Lagrange 乘子 \(\lambda^\ast\in \mathbf{R}^n\),對等式約束 \(\mathbf{1}^Tx=1\) 引入一個乘子 \(v^\ast\in \mathbf{R}\),我們得到如下 KKT 條件
以上條件可以化簡為
根據等式條件(松弛條件)進行分類:
- \(x^\ast=0\)。此時有 \(v^\ast\geq 1/(\alpha_i+x_i^\ast)=1/\alpha_i\)
- \(x^\ast>0\)。此時有 \(v^\ast=1/(\alpha_i+x_i^\ast)\),也即 \(x^\ast=1/v^\ast-\alpha_i>0\)。
綜上我們有
更簡潔地,\(x_i^\ast=\max\{0, 1/v^\ast-\alpha_i\}\),將 \(x^\ast\) 帶入條件 \(\mathbf{1}^Tx^\ast=1\) 中得到以下關於 \(v^\ast\) 的方程
容易知道以上方程存在唯一確定解,求解該解的方法稱為“注水法”。求解出 \(v^\ast\) 后反帶入以上方程中可以得到最優解 \(x^\ast\)。
如果強對偶性成立且存在一個對偶最優解,這時如果當對偶問題比原問題更容易求解時,比如說對偶問題可以解析求解或者有某些特殊的結構更容易分析,通過求解對偶問題具有重要意義。
擾動及靈敏度分析
擾動的問題:
考慮對優化問題 (BP) 進行擾動后的新優化問題
考慮以下(擾動)優化問題
其中,變量 \(x\in \mathbf{R}^n\)。如果 \(u_i=0, v_i=0\),則以上優化問題就是 (BP) 問題,如果 \(u_i\) 和 \(w_i\) 都大於零,則新問題是在 (BP) 問題上進行了放松,如果\(u_i\) 和 \(w_i\) 都小於零,則新問題是在 (BP) 問題上進行了收緊。
定義 \(p^\ast(u, w)\) 為以上擾動優化問題的最優值:
一個重要不等式
設 \((\lambda^\ast, v^\ast)\) 是未擾動的 (BP) 問題的最優解,則對所有的 \(u\) 和 \(w\) 我們有
證明:設 \(x\) 是任意的可行解,則根據強對偶性有
以上第一個不等式由 \(g(\lambda^\ast, v^\ast)\) 的定義得到;第二個不等式由 \(\lambda^\ast\succeq 0\) 以及擾動優化問題的約束得到。利用以上不等式可以直接得到:
靈敏度的簡單分析:
- 如果 \(\lambda^\ast_i\) 較大,加強第 \(i\) 個約束(即 \(u_i<0\)),則最優值 \(p^\ast(u, v)\) 必然會大福增加。\(v^\ast\) 的情況和此類似。
- 如果 \(\lambda^\ast_i\) 較小,放松第 \(i\) 個約束(即 \(u_i>0\)),則最優值 \(p^\ast(u, v)\) 不會減小太多。\(v^\ast\) 的情況和此類似。
局部靈敏度分析:
如果 \(p^\ast(u, v)\) 在 \(u=0\) 和 \(v=0\) 處可微且強對偶性成立,最優對偶變量 \(\lambda^\ast\) 和 \(v^\ast\) 可以和 \(p^\ast\) 在 \(u=0, w=0\) 處的梯度聯系起來:
證明:假設 \(p^\ast(u,w)\) 可微且強對偶性成立,對於擾動 \(u=te_i\),其中 \(e_i\) 是單位向量,它的第 \(i\) 個分量為1,我們有
根據以上重要的不等式(*),當 \(t>0\) 時,下式成立
同樣利用(*)不等式,\(t>0\) 時,下式成立
兩邊同時取 \(t\rightarrow 0\) 可以得到
利用同樣的方法可以得到