SVM一學就會

1.函數最優化問題

1.1 無約束條件的最優化問題

image.png

1.2 有約束條件的最優化問題

以下約束條件中沒有考慮 >0 的情況,因爲可以由小於等於0反推出來。

image.png

將以上最優化問題命名爲原始(最優化)問題

凸優化問題:對於上述有約束條件的最優化問題,目標函數 f(x) 和約束函數 都是R上連續可微的凸函數,是R上的仿射函數(滿足image.png

1.3 求解最優化問題

方法:梯度下降、L-BFGS、IIS等

1.4 拉格朗日函數

拉格朗日函數是將原始問題的f(x)和約束條件進行整合

使有約束條件的最優化問題>>>>>轉爲>>>>>無約束條件的最優化問題。

使原始問題的一次優化問題>>>>>轉爲>>>>>極小極大的二次優化問題。

二次規劃(quadratic programming )

在約束最優化問題中,常利用拉格朗日對偶性(Lagrange duality)將原始問題轉換爲對偶問題,通過求解對偶問題得到原始問題的解。

image.png

拉格朗日乘子(Lagrange multiplier):image.png

拉格朗日乘子向量:image.png

拉格朗日函數的特性

image.png

極小極大

由拉格朗日函數的特性可知,當x滿足原始問題約束時,image.png 就是原始問題的f(x),此時進行極小化就等同於對原始(最優化)問題進行極小化,解是相同的,即:

image.png

對偶問題

image.png被稱爲拉格朗日函數的極大極小問題,也被稱爲原始問題的對偶問題。

 

定義image.png 爲對偶最優化問題的最優解,當 f(x)image.png爲凸函數,image.png是仿射函數時,有:

image.png,其中的約束條件爲KKT(Karush-Kuhn-Tucker)條件

 

image.png

 

2.Support Vector Machine

SVM:線性的分類(二分類)算法。

基本思想:求解能夠正確劃分訓練數據集,且幾何間隔最大的分離超平面。間隔最大化,意味着以充分大的確信度對訓練數據進行分類。

支持向量機(Support Vector Machine)是Cortes和Vapnik於1995年首先提出的,它在解決小樣本、非線性及高維模式識別中表現出許多特有的優勢。

2.1 線性可分SVM

線性可分性

給定一個數據集,如果存在某個超平面,滿足:

  • 將數據集的正實例點和負實例點完全正確的劃分到超平面的兩側;
  • 對所有image.png的實例,都有image.png;對所有image.png的實例,都有image.png

則稱以上數據集是線性可分(linearly separable)的。

模型判別式:

image.png,是線性的公式,本質是在高維空間找到一個超平面來分隔數據。

image.png是法向量,決定超平面的方向,b 是位移項,決定超平面與原點距離。

【問題】通常這樣用於分隔的超平面有很多,哪一個最好?

最好的超平面:

  • 完美的分類正負例
  • 距離最近的點越遠越好(對點位置變動的容忍度大),即硬間隔越大越好。(最大間隔法)
  • (根據以上兩點確定的超平面,求出y=0時的w值和b值。)

image.png

幾何距離和函數距離

image.png

函數距離(functional margin)可以表示分類的正確性和分類預測的確信度

損失函數與優化

  • 根據距離公式,可以將最好的超平面的定義轉換爲函數的最優化問題:

image.png

image.png

  • 如果將 w 和 b 等比例縮放爲 λw 和 λb,函數間隔變成 λγ',函數間隔的改變對不等式約束沒有影響,對目標函數的優化也沒有影響。於是,爲了方便求解,直接令 γ' = 1,改變上述最優化問題,得到

     決策超平面的標準表示:

image.png

即 在線性可分的SVM中,假設超平面可以將樣本正確分類,則有當image.png時,image.png;當image.png時,image.png

  • 進一步根據上述最優化問題,構建拉格朗日函數:

image.png

  • 根據對偶函數,先求極小值image.png,拉格朗日函數分別對 w 和 b 求導,求出 w 和 b 各自與 α 的關係。

image.png

根據以上推導,求導得出:

image.png

  • 將求導結果代入原來的函數:

image.png

  • 進一步轉換對偶問題的優化問題爲:

image.png

image.png

  • 通常使用SMO算法(序列最小最優化算法)進行求解,可以求得一組 α*使得函數最優化。求解之後,α*成爲已知數,根據KKT條件,再求出  w*,b* .

image.png

模型與支持向量

將求出的wb代入模型判別式:image.png

根據KKT條件,

image.png,則該樣本不會出現在模型判別式中,對f(x)沒有影響;

image.png,則image.png,對應的樣本點出現在最大間隔邊界上,是支持向量。

【結論】模型判別式只與支持向量有關,大部分樣本都不需要保留,保持了稀疏性;或者認爲模型與所有樣本相關,只不過當樣本不是支持向量時,image.png

2.2線性SVM

線性不可分、軟間隔、損失函數

爲了得到最好的分隔超平面,滿足的條件有:

  • (滿足約束條件時)可以把正負例完美分開
  • 找到間隔最大的點(函數優化問題)

對於線性不可分問題,會有噪聲點,不滿足線性可分SVM中的約束條件,爲了放鬆約束條件,而引入鬆弛變量image.png。ξ代表異常點嵌入間隔面的深度,我們要在能選出符合約束條件的最好的w和b的同時,讓嵌入間隔面的總深度越小越好。

當所有樣本都正確分類時,間隔帶稱爲硬間隔(hard margin),此時樣本都滿足約束:image.png

當某些樣本不滿足約束條件image.png是,間隔被稱爲軟間隔(soft margin),我們希望不滿足約束條件的樣本越少越好。

image.png,當y=+1或y=-1時,正確分類情況下image.png,特別的,對於硬間隔的情況,image.png,並且乘積越大越好;錯誤分類的情況下,image.png

SVM損失函數需要考慮到兩種情況:錯誤分類的情況;軟間隔的情況。

理想的損失函數(0/1損失函數)是希望不滿足約束條件的樣本越少越好:image.png

(0/1損失函數其實只考慮了錯誤分類的情況。)

 

總體損失函數可寫爲:image.png

image.png      image.png

 

替代損失、hinge損失

以上image.png是非凸、非連續的,不是連續可導的,不易求解,因此尋找其他函數來代替,稱爲替代損失(surrogate loss)

另外0/1損失函數沒有保證分類的足夠高的確信度,於是使用0/1損失的上界---hinge損失來構造損失函數。

其中,hinge損失(合頁損失函數)image.png , 

我們希望硬間隔完全正確分類的情況下,損失loss=0,此時image.png;其他情況(包括錯誤分類和軟間隔),隨着image.png,損失越來越小,loss-->0。

image.png

 

  當image.png時,總體損失函數爲:image.png

image.png,有image.png,條件分析如下:

image.png

image.png時,是軟間隔情況下的取值,軟間隔/硬間隔的情況同時考慮時,有:image.png

總體的損失函數爲:

image.png

優化目標分析

image.png

最優化問題

  • 線性SVM的原始問題(凸二次規劃問題)如下:

image.png

  • 分類決策函數

求出原始問題的最優解,代入,即得到分類決策函數。

分離超平面爲image.png

  • 構建拉格朗日函數

image.png

  • 求解image.png

image.png

image.png

  • 用SMO算法求出 α*.

image.png

網格搜索

【問題】如何確定正則化常數 的取值?

C是一個超參數(即無法通過直接的數學計算求解的參數),可以在一個範圍內爲C賦n個值,分別得到n個模型,通過有效集來驗證n個模型的誤差,選擇最好的模型所對應的C的值。

image.png

模型與支持向量

image.png

SVM模型判別式的另一種表示:

image.png

【結論】:軟間隔SVM的最終模型和支持向量以及分類錯誤點有關,使用hinge損失函數時保持了稀疏性。

 

2.3非線性SVM

SVM升維

爲了處理線性不可分問題,可以引入升維,即把原始的 x 映射到更高維度的空間:

image.png

【問題】升維之後,再做向量的內積,會出現維度爆炸
image.png相當於是在做特徵轉換(feature transformation),image.png即是先做特徵轉換再做內積,這種運算耗時而且可能會有無窮維。

 

【解決】引入核函數。思路:不具體計算向量的內積,而是直接定義image.png的結果。

通過核方法,引入核函數,將線性學習器拓展爲非線性學習器,將原始樣本空間映射到另一個合適的特徵空間。

核技巧 kernel trick

例如:

image.png升維後,(假設我們知道升維後的形式)得到image.png,此時如果直接計算image.png,計算量大。

而引入核函數之後,直接轉化爲K(x,z)的計算,核函數和image.png的計算是等價的。

image.png

 

 

核函數

image.png

核函數判斷:
如果image.pngimage.png是核函數,

  • 對於任意正數image.pngimage.png,線性組合image.png也是核函數。
  • 核函數的直積image.png也是核函數。
  • 對任意函數image.pngimage.png也是核函數。

image.png

2.4 SVM算法總結

算法流程

  • 選擇核函數及對應的超參數;
  • 選擇懲罰係數C;
  • 構造最優化問題;
  • 利用SMO算法求出一組 α* ;
  • 根據 α*計算w*
  • 根據α*找到全部的支持向量,計算每個支持向量對應的image.png
  • image.png求均值,得到 b*
  • 得到判別函數和超平面。

算法優劣

【優點】:SVM使用邊界點作爲支持向量來找出分類界限,邊界點以外的樣本點如何分佈對分類模型沒有影響,抗數據擾動,抗噪聲。

【缺點】:SVM的分類結果只有幾何意義,喪失了概率意義。

               必須遍歷所有數據點,才知道哪個是邊界點,所以數據點之間是耦合的。當數據量非常大時,對硬件要求高,因爲需要所有數據點,做分佈式也受限。

 

 

 

 

【參考】

1.《統計學習方法》第二版 李航著;

2.https://blog.csdn.net/u014540876/article/details/80172623

3.《PRML》

4.《機器學習》周志華

5.臺灣大學李宏毅《機器學習》課程

 

 

 

 

 

 

 

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