凸優化(Convex Optimization)淺析


本博客已經遷往http://www.kemaswill.com/, 博客園這邊也會繼續更新, 歡迎關注~

在機器學習中, 很多情況下我們都需要求得一個 問題的全局最優值(global optimum). 大多數的全局最優值很難求得, 但是對於凸問題, 我們可以比較高效的找到其全局最優值, 這是由凸問題的性質決定的.我們將逐步的介紹凸集, 凸函數, 凸問題等.

1. 凸集(convex set)

對於一個集合\(C\), 如果對於任意兩個元素\(x,y \in C\), 以及任意實數\(\theta \in \mathbb{R}\)且\(0 \leq \theta \leq 1\)都滿足

$$\theta x + (1-\theta)y\in C$$

那么集合\(C\)就是凸集.如下圖所示:
convex_optimization1

 

凸集的例子包括:

  • \(\mathbb{R}^n\)
  • 非負象限\(\mathbb{R}_+^n\)
  • 范式球(Norm Ball), 亦即\({x: \parallel x \parallel \leq 1}\), 其中\(\parallel \cdot \parallel\)是\(\mathbb{R}^n\)上的范式
  • 凸集的交集
  • 半正定矩陣

2. 凸函數(convex function)

如果一個函數\(f: \mathbb{R}^n \to \mathbb{R}\)的定義域\(\mathcal{D}(f)\)是凸集, 並且對於所有的\(x,y \in \mathcal{D}(f)\)和\(\theta \in \mathbb{R}, 0 \leq \theta \leq 1\)使得:

$$f(\theta x+(1-\theta)y)\leq \theta f(x)+(1-\theta)f(y)$$

則函數\(f(x)\)是凸函數.

如果把上述限制條件改為對於任意的\(x,y \in \mathcal{D}(f), x \neq y, 0 < \theta < 1\)

$$f(\theta x+(1-\theta)y) < \theta f(x)+(1-\theta)f(y)$$

函數\(f(x)\)是嚴格凸(strictly convex)的.

如果\(-f\)是凸的, 則\(f\)是凹(concave)的.

凸函數如下圖所示

617E33D1-F1C3-4DE8-82A7-651FE73A3319

 

2.1 凸函數的一階條件

如果一個函數\(f: \mathbb{R}^n \to \mathbb{R}\)是可微的, 那么\(f\)是凸函數當且僅當\(\mathcal{D}(f)\)是凸集, 並且對於任意的\(x,y \in \mathcal{D}(f)\):

$$f(y)>=f(x)+\nabla_x f(x)^T(y-x)$$

其中\(f(x)+\nabla_x f(x)^T(y-x)\)稱為\(f\)在點\(x\)處的一階近似. 上述性質如下圖所示:

4DD06703-50CE-4738-85D2-1ED7B9AF6DA2

 

2.2 凸函數的二階條件

函數\(f\)是凸的當且僅當\(\mathcal{D}(f)\)是凸集, 並且其Hessian矩陣是半正定的:

$$\nabla_x^2 f(x)\succeq 0$$

2.3 Jensen不等式

凸函數的定義中有

$$f(\theta x+(1-\theta)y)\leq \theta f(x)+(1-\theta)f(y), \hspace{2 pt} 0 \leq \theta \leq 1$$

上式可以擴展到多個點的情況:

$$f(\sum_{i=1}^k \theta_ix_i \leq \sum_{i=1}^k\theta_if(x_i)) , \sum_{i=1}^k\theta_i=1, \theta_i \geq 0$$

也可以擴展到無限多個點或者某個區間的情況:

$$f(\int p(x)xdx) \leq \int p(x)f(x)dx , \int p(x)dx=1, p(x \geq 0)$$

亦即

$$f(\mathbb{E}[x]) \leq \mathbb{E}[f(x)]$$

上式稱為Jensen不等式

2.4 Sublevel集合

\(\alpha-sublevel\)集合是凸集的一種, 對於一個函數\(f: \mathbb{R}^n \to \mathbb{R}\), 以及一個實數\(\alpha \in \mathbb{R}\), \(\alpha-sublevel\)集合的定義為

$${x \in \mathcal{D}(f) : f(x) \leq \alpha}$$

可以很容易的證明上述集合是凸集, 對於\(x,y \in \mathcal{D}(f)\)使得\(f(x) \leq \alpha, f(y) \leq \alpha\):

$$f(\theta x + (1-\theta)y) \leq \theta f(x)+(1-\theta)f(y) \leq \theta \alpha + (1-\theta)\alpha =\alpha$$

2.5 凸函數例子

  • 指數函數: \(f: \mathbb{R} \to \mathbb{R}, f(x)=e^{\alpha x}\)
  • 負對數:\(f: \mathbb{R} \to \mathbb{R}, f(x)=-log x\)
  • 仿射函數: \(f: \mathbb{R} \to \mathbb{R}, f(x)=b^T x + c\)
  • 二次函數: \(f: \mathbb{R} \to \mathbb{R}, f(x)=\frac{1}{2}x^TAx + b^Tx + c\)
  • 范式: \(f: \mathbb{R} \to \mathbb{R}, f(x)=\parallel x \parallel\)
  • 凸函數的非負加權和:

$$f(x)=\sum_{i=1}^k w_if_i(x)$$其中\(f_1,f_2,...,f_k\)是凸函數

3. 凸優化問題

凸優化問題的形式如下:

$$minimize \hspace{2 pt} f(x)$$

$$subject \hspace{2 pt} to \hspace{2 pt} x \in C$$

其中\(f\)是凸函數,\(C\)凸集, \(x\)是待優化的變量, 我們通常可以把其寫成

$$minimize \hspace{2 pt} f(x)$$

$$subject \hspace{2 pt} to \hspace{2 pt} g_i(x) \leq 0, i=1,...,m$$

$$h_i(x) = 0, i=1,...,p$$

其中\(f\)和\(g_i\)是凸函數,\(h_i\)是仿射函數.

\(g_i\)必須小於等於0, 這樣得到的\(x\)的可行域(feasible region)才是凸的(因為\(g_i(x) \leq 0\)定義了一個\(\alpha-sublevel\)集)

3.1 凸問題中的全局最優

凸問題的一個很好地特性是其局部最優解也是全局最優解.推導如下

首先定義局部最優解: 當\(x\)是可行的(亦即位於可行域內), 而且存在\(R > 0\), 使得對於所有\(\parallel x-z \parallel_2 \leq R\)的位於可行點\(z\),使得\(f(x) \leq f(z)\).

然后定義全局最優解: 如果\(x\)是可行的, 且對於其他所有的可行點\(z\)都有\(f(x) \leq f(z)\)

凸問題中的全局最優解等同於局部最優解, 證明如下:

令\(x\)是一個局部最優解, 但不是全局最優解, 所以存在一個可行的點\(y\)使得\(f(x) > f(y)\).根據局部最優解的定義, 沒有一個可行點\(z\)滿足\(\parallel x-z \parallel_2 \leq R, f(z) < f(x)\). 但是, 我們可以選擇$$z=\theta y + (1-\theta)x, \theta=\frac{R}{2\parallel x-y \parallel_2}$$

那么

$$\parallel x-z \parallel_2=\parallel x=(\frac{R}{2\parallel x - y \parallel_2}y+(1-\frac{R}{2\parallel x - y \parallel_2})x)\parallel_2$$

$$=\parallel \frac{R}{2\parallel x - y\parallel_2}(x-y)\parallel_2$$

$$=R/2 \leq R$$

另外, 因為\(f\)是凸函數, 所以

$$f(z)=f(\theta y + (1-\theta)x) \leq \theta f(y) + (1-\theta)f(x) < f(x)$$

因為可行域是凸集,\(x\), \(y\)都是可行的, 所以\(z=\theta y + (1-\theta)x\)也是可行的, 且\(\parallel x-z \parallel_2 < R, f(z) < f(x)\), 假設不成立,所以\(x\) 是全局最優解.

3.2 凸問題的例子

  • 線性規划(LP, Linear Programming):

$$minimize \hspace{2 pt} c^Tx+d$$
$$subject \hspace{2 pt} to \hspace{2 pt} Gx \succeq h$$
$$Ax=b$$

  • 二次規划(QP, Quadratic Programming):

$$minimize \hspace{2 pt} \frac{1}{2}x^TPx+c^Tx+d$$
$$subject \hspace{2 pt} to \hspace{2 pt} Gx\succeq h$$
$$Ax=b$$

  • 二次限制的二次優化(QCQP, quadratically constrained QP):

$$minimize \hspace{2 pt} \frac{1}{2}x^TPx+c^Tx+d$$
$$subject \hspace{2 pt} to \hspace{2 pt} \frac{1}{2}x^TQ_ix+r_i^Tx+s_i \leq 0, i=1,...,m$$
$$Ax=b$$

  • 半定規划(Semidefinite Programming):

$$minimize \hspace{2 pt} tr(CX)$$
$$subject \hspace{2 pt} to \hspace{2 pt} tr(A_iX)=b_i, i=1,...,p$$
$$X \preceq 0$$

  參考文獻:

  [1]. Zico Kolter, Honglak Lee. Convex Optimization Overview.

  [2]. Stephen Boyd, Lieven Vandenberghe. Convex Optimization.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM