CMU Convex Optimization(凸優化)筆記1--凸集和凸函數
CMU凸優化筆記--凸集和凸函數
結束了一段時間的學習任務,於是打算做個總結。主要內容都是基於CMU的Ryan Tibshirani開設的Convex Optimization課程做的筆記。這裏只摘了部分內容做了筆記,很感謝Ryan Tibshirani在官網中所作的課程內容開源。也很感謝韓龍飛在CMU凸優化課程中的中文筆記,我在其基礎上做了大量的內容參考。才疏學淺,忘不吝賜教。
1、凸集合
1.1 基本概念
定義:給定一個集合$C \subseteq \mathbb{R}^n $,滿足下列條件則稱為凸集
$x,y \in C \Rightarrow tx+(1-t)y \in C $ 對於任意的 $ 0 \leq t \leq 1$
直觀上看,可以利用下圖幫助理解,假定我們的變量在二維空間中,$x,y$為二維空間變量,黑體線代表的向量為$tx+(1-t)y$,$t$取值範圍為$[0,1]$,那麽無論t怎麽變化,向量$tx+(1-t)y$總會落在$x$和$y$張成的集合空間中。
那麽從定義出發,我們也能知道非凸集的情況,下圖左側為凸集,右圖為非凸集
一句話來概括凸集就是集合內任意兩點間連線依舊在集合內。
1.2 凸集簡單例子
- 凸包(convex hull):給定集合內的任意$k$個元素$x_1,...,x_k \in \mathbb{R}^n$,任意的線性組合形式:
$\theta_1 x_1+...+\theta_k x_k,\theta_i \leq,i=1,...,k$ 並且$ \sum_{i=1}^{k}\theta_i=1$。稱之為集合的convex hull,表示為$conv(C)$。convex hull總是凸的。可以直觀認為凸包就是最外圍的元素所圍成的集合外殼,下圖是兩個凸包的例子:
- 空集、點、線都是凸集合
- 範數球(Norm ball): 半徑為$r$的範數球為:$\left \{x:||x|| \leq r \right \}$
- 超平面(Hyperplane): 給定任意$a,b$ ,$\left \{x:a^Tx=b \right \}$
- 半空間(Half space): $\left \{x:a^Tx \leq b \right \}$
- 仿射空間(Affine space):$\left \{x:Ax = b \right \}$
- 多面體(Polyhedron):$\left \{x:Ax \leq b \right \}$,下圖為多面體
Note:集合$\left \{x:Ax \leq b,Cx=d \right\}$也是一個Polyhedron嗎?
Answer:是的。因為對於任意的$Cx=d$,都可寫成$Cx \leq d$ 與$-Cx \leq -d$,這樣就和$Ax \leq b $形式一致。
1.3 錐(Cone):
定義:給定$C \in \mathbb{R}^n $,滿足$x \in C \Rightarrow tx\in C$ 對於任意$ t\geq 0$稱之為錐。
凸錐(convex cone):$x_1,x_2 \in C \Rightarrow t_1 x_1+t_2 x_2 \in C $,對於任意$ t_1,t_2 \geq 0$都成立,那麽稱集合$C$為凸錐。顯然凸錐是錐的一種。
例子:
範數錐(Norm cone):$\left \{(x,t):||x|| \leq t \right \}$,對於一範數和二範數成立。下圖取定不同的$t$做出了三維情況下的圖:
正規錐(Normal cone):給定任意集合$C$,集合內任意一點$x \in C$,定義:
$\mathbb{N}_c(x)=\left \{g:g^Tx \geq g^Ty ,for \quad any \quad y \in C \right \}$
其含義是指Normal cone中的點與集合$C$內的點的內積永遠大於集合內任意點與Normal cone內點的內積。如下圖所示:
1.4 凸集的一些特性
- 可分離超平面理論(Separating hyperplane theorem):兩個不相交的凸集總存在一個超平面能將兩者分離,如果$C \bigcap D = \varnothing $,那麽總存在著$a,b$使得有:
$C \subseteq \left \{x:a^Tx \leq b \right \}$ ,$D \subseteq \left \{x:x^T \geq b \right \}$。如下圖所示:
- 支撐超平面理論(Supporting hyperplane theorem):凸集邊界上的一點必然存在一個支撐超平面穿過該點,即如果$C$都是非空凸集,$ x_0 \in $ bd$(C) $,那麽必然存在一個超平面$a$,使得, $C \subseteq \left \{x:a^Tx \leq a^T x_0 \right \}$。如下圖:
1.5 保凸操作
- 集合交(Intersection):任何凸集之交產生的集合依舊是凸集。
- 縮放和平移(Scaling and translation):假設$C$為凸集,那麽$aC+b=\left \{ax+b:x \in C \right \}$對於任意$a,b$也是凸的。
- 仿射映射與預映射(Affine images and preimages):如果$f(x)=Ax+b$是凸集,那麽$f(C)=\left \{f(c):x \in C \right\}$也是凸集,如果$D$為凸集,那麽$f^(-1)(D)=\left \{x:f(x) \in D \right \}$也是凸的。
1.6 凸集與保凸操作相關例子
條件概率集合(conditional probability set):$U,V$分別為$\left \{1,...,n\right \}$與$\left \{1,...,m\right \}$上的兩個隨機變量集合。$ C \subseteq \mathbb{R}^{nm} $為$U,V$的聯合分布集合。對於每個$p \in C$,定義聯合概率分布 $p_{ij} = \mathbb{P}(U=i,V=j)$。D為對應的條件概率分布,對於每個$q \in D$定義 $q_{ij}=\mathbb{P}(U=i|V=j)$。假定$C$為凸集,那麽D一定為凸集。簡單證明可用保凸操作中的Affine images and preimages,$D=\{q\in\mathbb{R}^{nm}:q_{ij}={\textstyle\frac{p_{ij}}{\textstyle\overset n{\underset{k=1}{\sum p_{kj}}}}}\}$
2 、凸函數
2.1 基本概念
定義:給定映射$f:\mathbb{R}^n \rightarrow \mathbb{R}$ 並且 dom$(f) \subseteq \mathbb{R}^n$為凸集,那麽
$f(tx+(1-t)y) \leq tf(x)+(1-t)f(y)$ 對於任意 $0 \leq t \leq 1$,且 任意$x,y \in dom(f)$。如下圖:
從上圖可以看出,$f$的函數值總是位於連接$f(x)$和$f(y)$之間的直線下方。
Note:
- 嚴格凸(Strictly convex):對於任意$x \neq y$,且$0<t<1$,有$f(tx+(1-t)y)<tf(x)+(1-t)f(y)$。簡而言之,就是$f$比線性函數要更彎曲
- 強凸(Strongly convex):對於參數$m>0$:$f-\frac{m}{2}||x||^2_2$依舊是一個凸函數。簡而言之就是$f$要比一般的二次函數要彎曲。
- 強凸 $\Rightarrow$ 嚴格凸 $\Rightarrow$ 凸
2.2 凸函數例子
- 單變量函數:
例如指數函數$e^{ax} $對於任意a都是凸的,冪函數$x^a$在$a\geq 1 或 a \leq 0$的時候為凸,當$0 \leq a \leq 1$的時候非凸,對數函數$log x$是非凸函數
- 仿射函數(Affine function):
$a^Tx+b$既是凸函數又是非凸函數
- 二次函數(Quadratic function):
$\frac{1}{2}x^TQx+b^Tx+c$當$Q \succeq 0$(半正定)的時候為凸
- 最小平方損失函數(Least squares loss):
$||y-Ax||_2^2$總是凸的,因為展開後的$A^TA$總是半正定的
- 範數(Norm):
$||x||$的任何範數總是凸的,$\ell_p$範數定義為:$\parallel x\parallel_p=(\overset n{\underset{i=1}{\sum x_i^p}})^{1/p}$,對於任意$p\geq1$,$\parallel x\parallel _{\infty} =max|x_i|$。
譜(spectral)範數:$\parallel X \parallel _{op}=\sigma_1(X)$,
核範數(nuclear):$||X||_{tr}=\sum_{i=1}^{r}\sigma_r(X)$。其中$\sigma_1(X)\geq...\geq\sigma(X)\geq0$為矩陣$X$的從大到小排序的奇異值。
- 指示函數(Indicator function):
如果$C$為凸,那麽其指示函數為:$I_C(x)=\left\{\begin{array}{lc}0&x\in C\\\infty&x\not\in C\end{array}\right.$為凸函數。
- 最大值函數(Max function):
$f(x)=max\left\{x_1,...,x_n\right\}$為凸函數
2.3 凸函數的一些特性
- 上鏡特性(Epigraph characterization):函數$f$為凸函數當且僅當其上鏡圖$epi(f)=\left \{(x,t)\in dom(f)\times \mathbb{R}:f(x)\leq t\right\}$為凸集,如下圖:
- 一階特性(First-order characterization):假設$f$處處可微,那麽$f$為凸函數當且僅當$dom(f)$為凸,並且有:$f(y)\geq f(x)+\nabla f(x)^T(y-x)$對於所有$x,y\in dom(f)$。
Note:如何證明凸函數的一階特性?
Answer:從凸函數定義出發,$f(ty+(1-t)x) \leq tf(y)+(1-t)f(x) \quad \Rightarrow \quad \\ f(t(y-x)+x)+f(x))\leq t(f(y)-f(x))+f(x) \quad \Rightarrow \quad \\ \frac{f(t(y-x)+x)-f(x)}{t(y-x)}\leq frac{f(y)-f(x)}{y-x} \quad \Rightarrow \quad \\ \lim_{t\rightarrow0} \frac{f(t(y-x)+x)-f(x)}{t(y-x)}=\nabla f(x) \quad \Rightarrow \quad \\ \nabla f(x)(y-x) \leq f(y)-f(x) \quad \Rightarrow \quad \\ f(y) \geq f(x)+\nabla f(x)(y-x)$
- 二階特性:如果函數二階可微分,則$f$為凸函數當且僅當$dom(f)$為凸,且對於所有$x \in dom(f)$ 都有$\nabla^2f(x)\succeq0$
- Jensen不等式:假若$f$為凸,並且$X$由$dom(f)$所支持的隨機變量,則有$f(\mathbb{E}[x])\leq\mathbb{E}[f(x)]$
2.4保凸操作
- 非負線性組合
$f_1,...,f_m$均為凸函數,那麽對任意$a_1,...a_m\geq0$均有$a_1f_1+...+a_mf_m$為凸。
- 逐點最大化
如果$f_s$對於任意$s\in S$均為凸,那麽$f(x)=max_{s\in S}f_s(x)$是凸函數。
- 部分最小化
如果$g(x,y)$在任意$x,y$處為凸函數,並且$C$是凸的,那麽$f(x)=min_{y\in C}g(x,y)$為凸函數。
2.5 證明凸函數例子
對數求和函數(Log-sum-exp function):“soft max”函數:對於給定$a_i,b_i,i=1,...,k$,$g(x)=log(\sum_{i=1}^{k}e^{a_i^Tx+b_i})$。其光滑近似為$max_{i=1,...,k}(a_i^Tx+b_i)$。
那麽為了證明凸函數,首先我們知道仿射函數均是凸函數,並且對於求和函數可以看成是$f(x)=log(\sum_{i=1}^{n}e^{x_i})$與$h(x)=a_i^Tx+b_i$的復合函數。因此只需要證明$f(x)$為凸函數即可。
$\nabla _i f(x)=\frac{e^{x_i}}{\sum_{l=1}{n}e^{x_l}}\\$
$\nabla_{ij}^{2}f(x)=\frac{e^{x_i}}{\sum_{l=1}{n}}1\{i=j\}-\frac{e^{x_i}e^{x_j}}{(\sum_{l=1}^{n}e^{x_l})^2}\\$
將上式重寫為$\nabla^2f(x)=diag(z)-zz^T$,其中$z_i=e^{x_i}/(\sum_{l=1}^{n}e^{x_l})$。這是一個對角占優矩陣,因此是半正定矩陣,因此滿足二階性質。原式為凸函數得證。
CMU Convex Optimization(凸優化)筆記1--凸集和凸函數