機器學習第四課:SVM前置知識點(凸優化問題)

內容主要來源於 大數據文摘

1 高數教材中拉格朗日乘子法的泛化

1.1 高數教材中的拉格朗日乘子法

我們大學時講了這個計算條件極值的方法,運用拉格朗日乘數法(乘子法)

{minf(x)s.t.hi(x)=0i=1,2...,n

第一行就是目標函數,第二行是約束函數。我們就是想在h(x)=0一系列函數的約束下,求f(x)的最小值。我們可以用(1)式中的方法求解
min[f(x)+i=1nλihi(x)](1)

這當然是個很簡單的事件了。但是這是絕對是個特例。你看啊,上面的約束條件都是等式,但事實上很多情況都是不等式。這就是我們的拉格朗日乘數法(乘子法)的擴展KKT問題。

1.2 KKT(Karush–Kuhn–Tucker conditions)問題

在1.1中,約束機制的泛化了的就是KKT。KKT的名字讓人的意思不明所以,其實就是一般約束優化問題極值點一階必要條件:
如果x 是約束條件的局部最小,那麼有如下條件

s.t.gi(x)=0i=1,2...,ps.t.hj(x)0j=1,2...,qf(x)=i=1pμigi(x)+j=1qλjhj(x)λj0j=1,2...,qλjhj(x)=0j=1,2...,q

因爲可以利用正負號更改最大最小,大於等於號,所以上式基本可以表達所有情況。
但一定要注意大於號的方向。
那麼這就是變成解x 的行爲。(同時也要注意,上式僅僅是必要條件。)
爲什麼”極值點’一階‘必要條件”?在第三個式子解出的x 是駐點,我們同時需要判斷二階Hassion矩陣。這個式子是怎麼來?還得從凸函數好好說起。

2 凸函數

我按照點集的觀點重新審視下點線面。初中時,遇到一種四邊形的說法“凸四邊形”,“凹四邊形”。老師講凸四邊形就是“四個角都凸出來的,如平行四邊形梯形等;凹四邊形就是有角凹進去了的四邊形,如下圖”。
這裏寫圖片描述

這麼說的確很容易理解,但不是數學語言。詳細描述這個問題很複雜,可以先從點集入手。

2.1 仿射,凸集

基礎:過兩點x1,x2 的直線表示爲x=θx1+(1+θ)x2,θR ,即Ax=b 的解。我們藉助直線定義仿射。

如果一個集合CRn 是仿射的,則過C中兩點間的直線(注意不是線段)也在C中,例如上面的 x=θx1+(1+θ)x2,θR 注意CR

如果一個集合CRn 是凸的,則過C中兩點間的線段(注意不是直線段)也在C中。即對於任意x1,x2C ,有x=θx1+(1+θ)x2,1θ0 注意CR
下圖中左邊是凸的,右邊不是凸的
這裏寫圖片描述

2.2 凸函數

  • 凸集合交集是凸集
  • 凸函數的定義是根據凸集來的:
    f(x)是凸函數,則有
    f(λx1+(1λ)x2)λf(x1)+(1λ)f(x2)

    f稱爲I上的凸函數,當且僅當其上境圖(在函數圖像上方的點集)爲一個凸集
  • 凸函數與我們以前接觸的函數不一樣。因爲是翻譯問題,數學上的因爲形狀凹下去,所以將Convex翻譯爲凹函數,但Convex Set又叫凸集合來定義的。這裏有必要把老版本翻譯的凹函數凸過來。

2.3凸函數的性質

  • 一元二階可微的函數在區間上是凸的,當且僅當它的二階導數是非負的;這可以用來判斷某個函數是不是凸函數。如果它的二階導數是正數,那麼函數就是嚴格凸的,但反過來不成立。根據上節課的經驗,當一元變爲多元時,可以判斷Hassion矩陣是否正定。
  • 保凸運算(這個很重要)
    1. f是凸函數,自變量的線性組合,f(Ax+b)也是凸函數
    2. f1,,fm 爲凸函數,w1,,wm0 ,則mi=1wifi 也是凸函數
    3. f1,,fm 爲凸函數,逐點最大f(x)=sup{f1(x),,fm(x)} 也是凸函數。這條性質跟實際應用時可以給正則化一個解釋。加了正這則化的凸函數也是凸函數,所以正則化對原函數的解題方法無影響。
    4. g,h爲凸函數,擴展的h非遞減(這條性質很重要)。則f(x)=h(g(x))也是凸函數。
  • 對於凸函數f的α 水平子集Sα={x|f(x)a} 是凸集。水平子集是凸集的函數不一定是凸函數。這樣的函數稱爲擬凸函數。

2.2 凸優化問題

還是回到上面我們的條件極值問題,我們這裏加上幾個條件,讓它變成的功能強大的函數:

minimizef(x){s.t.gi(x)=0i=1,2...,ps.t.hj(x)0j=1,2...,q

但我們做了額外要求:
1. 目標函數是凸函數我們的目標函數f(x)是凸函數
2. 不等式約束函數也是凸函數,這裏要注意不等號的方向。有些數不等號方向不同,這裏一定要注意。這條要求的實質條件是圍成的可行域交集是個凸集。由於具有不同的形式,在後面推導KKT的過程會有不同。
3. 等式約束(這裏的gj(x) )必須是仿射的。
這就是在一個凸集上極小化一個凸的目標函數問題。
凸優化問題的局部最優等於全局最優
我們費盡心思搞的凸優化形式,目的就是就求目標函數在可行域上的的極值。這裏是可行域,因爲還會有正無窮或負無窮(但我們視爲可行域是空的,如求y=x的極值)。

凸優化裏面,KKT不僅僅是必要條件,而是充分必要條件
具體原因還得詳細解釋下KKT的由來。

3 KKT(Karush–Kuhn–Tucker conditions)問題的解釋——對偶問題

3.1 普通的條件極值問題

首先我們不管什麼凸函數不凸函數。還是熟悉的條件極值問題。

注意:目標函數*“最小化問題”*與h函數的*“不等號方向”*是配對的;
上面的同樣的式子爲了普遍性,故意不轉化成這種情況。

minimizef(x){s.t.gi(x)=0i=1,2...,ps.t.hj(x)0j=1,2...,q

然後我們用拉格朗日法合併目標函數與約束:
L(x,μ,λ)=f(x)+pi=1μigi(x)+qj=1λjhj(x)
這下我們知道L(x,μ,λ) 是關於μ,λ 的仿射函數。
λ0,x0 爲一個區域內符合條件的點時,我們取區間D內x的逐點最小值,就是下確界inf,有:
g(μ,λ)=infxDL(x0,μ,λ)=f(x0)+i=1pμigi(x0)+j=1qλjhj(x0)

L(x,μ,λ) 是關於μ,λ 的仿射函數(我們暫定算凹的),那麼g(μ,λ) 應該算凹(或者仿射)吧,但肯定是非凸的。
我們還知道了f(x0) 後面的項一個負數,一個零。肯定有
g(μ,λ)f(x0)+i=1pμigi(x0)+j=1qλjhj(x0),g(μ,λ)f(x0)

這樣區間內x的最優解x 肯定有
g(μ,λ)f(x)=p

3.2 對偶問題

那麼任意一個相似條件極值(我沒說凹凸性)都可以求它的對偶問題,且這個對偶問題是個凸優化問題:

maximizeg(μ,λ)s.t.λ0

設整理這裏最優值爲d ,那麼dp
但是當“強對偶”現象情況發生時,等號成立。
什麼時候“強對偶”現象發生?
答:原問題是個凸優化問題。。。

在經過一些不重要的證明(我懶不想寫)我們得到凸優化求全局極值的充分必要條件就是KKT。。。。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章