1. 程式人生 > >CMU Convex Optimization(凸優化)筆記1--凸集和凸函數

CMU Convex Optimization(凸優化)筆記1--凸集和凸函數

lock element lane 向量 最大化 intersect sca 對數 adr

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--凸集和凸函數