凸優化-凸集和凸函數 | CMU經典課程 | 附課件 |機器學習基礎

2021-03-02 灰質

點擊藍色字體,關注:九三智能控


0. CMU:Convex Optimization課程

Convex Optimization課程,該課程介紹了凸優化問題的基礎知識、一階方法、最優化和對偶、 二階方法、一些特別問題的探討等內容。本文是該課程基礎知識中凸集和凸函數部分的課程筆記。

課程網址(包括所有課件、視頻和作業):http://www.stat.cmu.edu/~ryantibs/convexopt/介紹PPT和預備知識介紹材料下載,請在公眾號回覆:20180402

        對於優化理論的定義,Ryan教授給出了一副很好理解優化理論是做什麼的圖,優化理論就是用於求解某個函數的極值,至於極值體現的含義就跟你要解決的問題相關了,與機器學習的「沒有天生優越的分類器」的理論類似,優化算法也沒有好壞之分,只有適合還是不適合解決某一問題。

a. 凸集

        仿射集和凸集的概念在凸優化-凸集一文中做了詳細介紹。凸集為 C⊆Rn,使得x,y∈C→tx+(1−t)y∈C,其中0≤t≤1。具體表現為下圖,左邊第一個為凸集,第二個則不是凸集。

        任何凸集的線性組合仍為凸集,所有凸集的集合為Convex hull。空集、點、線、球體(Norm ball:{x:∥x∥≤r})、超平面(Hyperplane:{x:aTx=b})、半空間(Halfspace:{x:aTx≤b})、仿射空間(Affine space:{x:Ax=b})和多面體(Polyhedron{x:Ax≤b})均為凸集。

下面證明為什麼Norm ball是凸集:

對於Norm ball中的任意兩點x和y,可以根據三角不等式獲得:

∥tx+(1−t)y∥leqt∥x∥+(1−t)∥y∥≤tr+(1−t)r≤r

所以,Norm ball中的任意兩點x和y的線性組合仍在集合內,證明Norm ball為凸集。

其中,Ryan還提到一個問題就是關於多面體,集合{x:Ax≤b,Cx=d}是否仍是Polyhedron?

結果是顯然的,仍然是多面體,因為平面Cx=d可以寫成Cx≤d和−Cx≤−d,滿足Polyhedron的定義,即{x:Ax≤b}。

b. 凸錐

錐(cone)是指x∈C→tx∈C,其中t≥0,而凸錐(convex cone)的定義則是x1,x2∈C→t1x1+t2x2∈C,其中t1,t2≥0,凸錐的實例如下圖:

        但是,是否可以舉一個例子,使得集合C為錐,但不是凸錐呢?如下圖,如果兩條直線組成的錐,分別從直線上選兩點,則亮點的線性組合不一定在這兩條直線上。

對於凸錐,其中兩個重要的實例為Norm cone和Normal cone,接下來著重介紹這兩個凸錐的概念。

Norm cone是指{(x,t):∥x∥≤t},而second-order cone則是使用2階範數norm∥⋅∥2,如果只看定義的話不太好理解Norm cone是什麼,下面給出了matlab仿真得到的三維下的Norm Cone實例:

Normal cone是指給定任意集合C和點x∈C,NC(x)={g:gTx≥gTy},其中y∈C。無論集合C是否是凸集,滿足該定義的點的集合都是Normal cone,其含義是指Normal cone中的點與集合C內的點x的內積永遠大於集合C內任意點與其點x的內積。具體實例如下圖,x′normal cone是集合C邊緣切線向量之間的點的集合:

        normal cone的定義將會在subgradient descent算法中應用到。

c. 凸集的性質

凸集有兩個重要的性質,這對機器學習的分類問題,或者更進一步說,對SVM等算法理論有著重要的支撐作用。

(1)Separating hyperplane理論:兩個不相交的凸集之間必然存在一個分割超平面,使得兩個凸集可以分開。即如果C和D都是非空凸集,且C∩D=∅,則必然存在a,b使得C⊆{x:aT≤b} 和 D⊆{x:aTx≥b}。如下圖:

(2)Supporting hyperplane理論:凸集邊界上的一點必然存在一個支撐超平面穿過該點,即如果C都是非空凸集,x0∈bd(C),那麼必然存在一個超平面a,使得C⊆{x:aTx≤aTx0},如下圖:

d. Operations preserving convexity

        凸集經過以下幾個操作,仍會是凸集:

(1)Intersection: 凸集交集仍然是凸集。

(2)Scaling and translation:如果C都是凸集,那麼對於∀a,b,aC+b={ax+b:x∈C}仍是凸集。

(3)Affine images and preimages:如果f(x)=Ax+b,C和D是凸集,那麼f(C)={f(x):x∈C}和f−1(D)={x:f(x)∈D}仍是凸集。

這裡需要注意的是,第二點和第三點的區別在於,第二點僅相對於凸集做了尺度或平移變換,而第三點則是A為矩陣,b為向量,可以對凸集做矩陣變換,這在圖像裡可以看成是旋轉、壓縮、或者是降維操作,而不僅僅是簡單的平移變換。

a. 凸函數的定義

        總體而言,凸函數跟凸集的定義和性質基本一致,凸函數的性質都可以通過凸集來證明。

        函數f為凸函數,如果其滿足f:R→R,使得函數f的定義域為凸集,dom(f)⊆Rn,且f(tx+(1−t)y)≤tf(x)+(1−t)f(y),其中0≤t≤1。也就是說凸函數上任意兩點的連線都在兩點區間的函數之上。具體表現為下圖:

當然,如果函數f為凸函數,那麼相應的-f則為凹函數。

        如果凸函數滿足f(tx+(1−t)y)<tf(x)+(1−t)f(y),其中0<t<1,則該函數為嚴格凸函數(strictly convex);如果嚴格凸函數還滿足∀m>0:f−m2∥x∥22,則該函數為強凸函數(strongly convex),即函數f至少是像二次函數一樣的凸函數。所以,根據定義,強凸函數一定是嚴格凸函數,嚴格凸函數一定是凸函數,反之,則不成立。

        例如:單變量函數中的指數函數eax、仿射函數aTx+b、二次函數12xTQx+bTx+c(其中Q⪰0半正定)、平方誤差函數∥y−Ax∥22、p-範數函數∥x∥p=(∑ni=1xpi)1/p、Indicator function和Max function(f(x)=maxx1,…,xn)均是凸函數,相反,對數函數則為凹函數。其中,Indicator function定義為:

IC(x)={0x∈C∞x∉C

b. 凸函數的性質

與凸集類似,凸函數具有以下的性質:

(1)Epigraph characterization:函數f為凸函數若且唯若,它的epigraph(epi(f)={(x,t)∈dom(f)×R:f(x)≤t})為凸集。其中,函數的epigraph是指在函數上方的所有點的集合,如下圖所示,我們可以繪製圖像的曲線並採用該方法來確定一個函數是否屬於凸函數:

(2)Convex sublevel sets:如果函數f為凸函數,那麼它的sublevel sets({x∈dom(f):f(x)≤t})為凸集,反之,則不成立。如下圖,函數值域小於t的下方的定義域區間(XXX位置)為凸集。

(3)First-order characterization:如果函數f可微,那麼若且唯若dom(f)為凸集,且對於∀x,y∈dom(f),使得f(y)≥f(x)+∇f(x)T(y−x),則函數f為凸函數。這一點很易於理解,即在函數某點切線上的點的值小於該點在函數上的值,如下:

        根據凸函數一階導的性質,我們可以看出,如果當我們找到某一點使得∇f(x)=0,那麼就會使得函數上所有點f(y)≥f(x),即點f(x)為函數的極小值。這一點,對於接下來將要介紹的優化問題極為重要,闡明我們求解函數極小值的方法。

(4)Second-order characterization:函數f二階可微,那麼若且唯若dom(f)為凸集,且對於∀x∈dom(f),使得∇2f(x)⪰0,則函數f為凸函數。

(5)Jensen’s inequality:如果函數f為凸函數,則f(E[X])≤E[f(X)])

c. 凸函數變換

與凸集類似,凸函數經過一些變換後仍能為凸函數,例如:

(1)Nonnegative linear combination;

(2)Pointwise maximization:如果∀s∈S,fs為凸函數,那麼f(x)=maxs∈Sfs(x)仍為凸函數;

(3)Partial minimization:如果g(x,y)是凸函數,集合C也為凸集,那麼f(x)=miny∈Cg(x,y)仍為凸集;

(4)Affine composition:如果函數f為凸函數,那麼經過矩陣變換的函數g(x)=f(Ax+b)也為凸函數。

        實例:對於softmax函數,作為機器學習中logistic回歸的泛化形式,也成為log-sun-exp函數,什麼是softmax函數呢?如何證明該函數為凸函數呢?

假設函數g(x)=log∑i=1keaTix+bi,從表面上可以看出該函數就像估計函數maxi=1,…,k(aTix+bi)的最大值,為什麼呢?如果∀i,aTix+bi,則會得到k個數值,如果其中某一個數值比較大,那麼通過指數運算會放大該數值在求和運算中的比例,導致求和運算的最終結果受到該較大數值的影響,所以再求對數縮小數值,最後求得的結果基本上就類似於找到aTix+bi的最大值。但是與直接求最大值不同,該函數是光滑函數,便於運用優化算法求解,因此稱為softmax函數。

        接下來證明為什麼log-sun-exp函數是凸函數:

        首先,利用之前提到的affine composition,我們可以知道如果f(x)=log(∑i=1nexi)為凸函數,那麼softmax肯定為凸函數;

        然後,利用凸函數的二階微分的性質,計算f(x)=log(∑i=1nexi)的一階微分和二階微分:

∇if(x)=exi∑nl=1exl

∇2ijf(x)=exi∑nl=1exlli=j−exiexj(∑nl=1exl)2=diag(z)−zzT

        其中,zi=exi/(∑nl=1exl),通過計算我們可以獲得∇2f(x)為diagonally dominant矩陣,diagonally dominant是指矩陣A,滿足Aii≥∑i≠j∣Aij∣,即矩陣對角線上的元素大於該行非對角線元素之和。

        因此,證明該矩陣是半正定p.s.d.的(positive semidefinite)。滿足上面介紹的凸函數性質的第四點,因此,該softmax函數為凸函數。

        Ryan還提到一個例子,這個例子我就不詳細闡述為什麼是凸函數,大家可以根據上面講解的知識來判斷下面的函數是否是凸函數:

max{log(1(aTx+b)7),∥Ax+b∥31}

http://www.hanlongfei.com/%E5%87%B8%E4%BC%98%E5%8C%96/2015/09/24/cmu-10725-convexset/

相關焦點

  • 機器學習概念篇:一文詳解凸函數和凸優化,乾貨滿滿
    在機器學習各種優化問題中,凸集、凸函數和凸優化等概念經常出現,其是各種證明的前提條件,因此認識其性質對於優化問題的理解尤為重要,本文便就凸集、凸函數和凸優化等各種性質進行闡述
  • 凸優化(1)——引入,優化實例分析,凸集舉例與相關性質
    在這一個系列中,我們會重點關註解決凸優化問題的基本思路和常見的算法,並且適當的將其與機器學習,深度學習,運籌學等內容結合起來,為大家提供一個全面的介紹。大家好!雖然現在很多實際的深度學習項目和課題中,多半不會直接利用上凸優化的知識,但學習凸優化有助於從一個更高的角度來思考相關的問題(當然了,這也是數學學科的一大優勢了)。而且事實上,在當今的算法工程師面試中,很多企業都會加入對面試者凸優化知識的考查。相信很多相關專業的本科生和研究生,也修過學校的《凸優化》這一門課。
  • AI瘋狂進階——凸優化
    凸優化算法是機器學習裡面比較重要的一個概念,理解凸優化需要掌握多個高等數學的概念,本文在講解過程中逐步解析這些數學概念,深入淺出的解析整個凸優化相關的問題。1.什麼是凸優化?於是就有了凸優化概念。凸優化包括以下部分,下面對其中的概念進行解釋下:(1)凸優化的定義域必須為凸集。凸集的定義如下:按照上述定義,可以得出:實數空間R是凸集。(2)凸優化的損失函數/約束函數都必須是凸函數。
  • 利用python解決凸優化問題
    凸優化的簡單概念凸集的概念所謂的凸集就是一類數據的集合,這一類數據滿足一個條件,就是任意兩點之間的數據,都包含在這個集合當中,那麼這個數據的集合就是凸集。凸函數的概念凸函數是一類函數,凸函數的定義域是一個凸集,並且,在定義域中任意的取出兩點,兩點的函數值取平均,一定大於兩點之間任意一點的函數值,用數學公式表示就是:舉一個很簡單的例子,對於二次函數如圖所示:
  • 從基礎知識到實際應用,一文了解「機器學習非凸優化技術」
    本文梳理了這種轉變的過程和歷史,以及從機器學習和信號處理應用中習得的經驗。本文將帶領讀者簡要了解幾種廣泛使用的非凸優化技術及應用,介紹該領域的豐富文獻,使讀者了解分析非凸問題的簡單步驟所需的基礎知識。更多詳細內容請查看原論文。優化作為一種研究領域在科技中有很多應用。
  • 凸函數為什麼重要?
    對凸函數比較熟悉的同學可能常常會疑惑,為什麼不同的地方對凸函數的定義和稱呼不一樣?有時候不僅定義有差別,甚至有時候連名稱都不一樣。目前學界對凸函數的定義和稱呼沒有統一的規定,有時候我們稱凸函數為「上凸」,但有的時候會發現「上凸」指的是「凹」,但有的時候又指的是「凸」,所以在不同的文獻中要仔細識別「凸」的含義。相對於凸函數,我們還有凹函數的概念,一個函數f(x)被稱為凹函數如果-f(x)是凸函數。
  • 為什麼凸性是優化的關鍵
    優化問題是機器學習的核心,而凸函數在優化中又起著重要的作用。一個函數的 epigraph凸函數(Convex Function)好了,現在你們知道什麼是凸集和 epigraph 了,我們可以討論凸函數了。
  • 機器學習筆記--凸函數性質
    凸函數具有良好的性質,在機器學習、優化問題經常出現,經常可以看到論文中出現的凸集、凸函數和凸優化等概念,這些概念通常是各種證明和推導的前提條件
  • 我們從100篇最優化筆記中,總結出8個知識點 | AI知識科普
    最優化問題目前在機器學習,數據挖掘等領域應用非常廣泛,簡單來說機器學習主要做的就是優化問題。解決最優化問題的方法有很多種,比如微分學中求極值、常用微分公式、變分學中求極值、凸集與凸函數等。翻譯成數學語言就是:為了讓大家更直觀的了解什麼是凸集,我們來看下面一組圖形和線段。
  • CICC科普欄目|從基礎知識到實際應用,一文了解「機器學習非凸優化技術」
    本文梳理了這種轉變的過程和歷史,以及從機器學習和信號處理應用中習得的經驗。本文將帶領讀者簡要了解幾種廣泛使用的非凸優化技術及應用,介紹該領域的豐富文獻,使讀者了解分析非凸問題的簡單步驟所需的基礎知識。更多詳細內容請查看原論文。優化作為一種研究領域在科技中有很多應用。
  • 導讀 | Convex Optimization(禿優化)
    我隨便截圖:Boyd的書真的是經典中的經典了,怎麼讀都不為過了。所以,你還有什麼理由不好好讀一讀?這本書基本上是本科生《運籌學》課程的進階版本,在科研中也非常重要。扯了半天有的沒的,說明了這本書的重要性。但是只要讀過就知道,這本書還是不是那麼好讀的,難度在那裡放著。
  • 凸優化(C)——FW方法的分析與應用,鏡面下降方法,深度學習與運籌中的優化簡介
    計算方法可以參考《凸優化》的第3節,有關收斂性分析的部分。事實上,在這個時候,根據《凸優化》第2節(凸優化(2)——凸函數,強凸函數及相關拓展)最後的結果,我們有那麼兩邊按照而和FW方法一樣,鏡面下降方法也是在近端梯度方法基礎上做的改造。要看到這一點,我們要先回顧一下梯度下降法做的更新公式。
  • 學界丨一文讀懂機器學習需要哪些數學知識---附精品資源
    作者王源對數學優化和機器學習都有涉及,在原回答的框架下加入了自己學習過程的經驗和理解,並收集了相關優秀課程的資源連結供大家參考。同時文末還給出了本文所述的全套優秀課程的網盤連結資源(包括視頻,英文字幕,課件,參考書籍等等)。
  • 重磅推出:機器學習在線培訓直播課程,20節課+5大福利
    課程簡介本課程涵蓋了基礎複習,算法講解,案例應用,工程經驗分享,工作指導等方面內容,從理論到實踐詳細講述機器學習相關內容,更有來自矽谷的大數據科學家揭秘工作方式與工具。長期從事信號處理、大數據和機器學習、壓縮感知方面的研究,在本領域國際權威期刊和會議上發表論文40餘篇。對工程中的應用數學深有研究。李韶華博士:南洋理工大學的博士和新加坡國立大學的博士後,中科大少年班畢業,熟悉貝葉斯統計機器學習方法和詞嵌入等表示學習方法。讀博前在網際網路公司工作三年,了解業界需求,致力於研究能解決實際問題的機器學習方法。
  • 【最優化】通俗理解凸函數及它的一階特徵
    推薦閱讀時間:8min~15min主要內容:通俗的講解凸函數及它的一階條件直觀的,圖1是一維凸函數的示例。一維情況下,不嚴格的說,凸函數是弦在上的函數或者是曲線向上包(這些都是不嚴謹的說法)。注意:在不同的教科書和資料中,對凸函數的定義有可能是相反的,在機器學習領域,一般都使用這個定義。
  • 凸函數和凹函數
    今天偶然看到凸函數和凹函數,看到維基和百度百科說中國有些學術機構出版的書裡的關於凸函數和凹函數的定義與國外的定義相反,而在經濟學之類領域裡中文課本與英文課本一致
  • 詳解凸優化、圖神經網絡、強化學習、貝葉斯方法等四大主題
    >    打算進入最頂尖的AI公司比如Google,Facebook,Amazon, 阿里,頭條等;    讀ICML,IJCAI等會議文章比較吃力,似懂非懂感覺,無法把每個細節理解透;    01 課程大綱  第一部分:凸優化與機器學習
  • 機器學習入門教程-第09課:最常用的優化算法——梯度下降法
    因為我們要學習的幾個經典機器學習模型的目標函數都是凸函數,函數的凸性保證了其有最小值。凸函數什麼叫做凸函數?這個有一套嚴格的數學定義:某個向量空間的凸子集(區間)上的實值函數,如果在其定義域上的任意兩點 ,有 f(tx + (1-t)y) <= tf(x) + (1-t)f(y),則稱其為該區間上的凸函數。
  • 【通俗理解】凸優化
    今天介紹一點凸優化方面的知識~內容可能有點無聊,看懂了這篇文章,會對求極值和收斂有進一步理解,比如:了解為什麼向量機(SVM)等的推導中,求極值時可以把約束條件加在目標函數後面來變成一個無約束的優化問題。理解EM算法(聚類,GMM等)為什麼收斂。之前文章有介紹過,一個算法有效至少要滿足兩個條件:1)極值存在,2)收斂。