理解支援向量機
支援向量機是一個二類分類模型,但也可以擴充套件為多類分類。其基於間隔最大化和核技巧的特點可以使它可以靈活處理線性或非線性分類問題。
支援向量機可是形式化為一個凸二次規劃問題,學習演算法是求解基於凸二次規劃的最優化演算法。
按照訓練資料是否線性可分,支援向量機可以分為基於硬間隔的線性可分支援向量機、基於軟間隔的線性支援向量機、基於核技巧和軟間隔最大化的非線性支援向量機。三者複雜性是依次增加的。
1、基於硬間隔最大化的線性可分支援向量機
我們知道,感知機和決策樹等學習方法沒有區分模型的輸入空間和特徵空間,即認為兩者所處的空間是一樣的。支援向量機的輸入空間和特徵空間是不同的,輸入空間為歐氏空間或離散集合,特徵空間是希爾伯特空間。希爾伯特空間可以看作是歐氏空間的擴充套件,其空間維度可以是任意維的,包括無窮維。並且一個重要的性質是其具有歐氏空間不具備的完備性。這些特點都是支援向量機在做非線性特徵空間對映所需要的。
下面從最簡單的線性可分支援向量機入手,學過感知機的都知道,感知機通過訓練一個超平面將平面或空間線性可分的點進行劃分。
其超平面方程為 w∙x+b=0;
分類決策函式f(x)=sign(w∙x+b)。
線性可分支援向量機也是如此,通過找尋分割平面來劃分資料集。不同的是,感知機的學習策略是誤分類點到超平面距離和最小化,而線性可分支援向量機是基於硬間隔最大化的。
何為硬間隔最大化?
我們知道,當引數w,b確定後,其分類超平面也就確定了,那麼分類超平面兩側的點到超平面的距離就可以得出,
這些點到分類超平面中必然有一個最小距離,實際上可劃分這兩組點的超平面的引數w,b有很多組,同樣對應有最小距離。w,b選取什麼值時,分類效果最好呢?就是分類面到兩側的距離越遠說明分類效果越好,即找出這組最小距離中的最大值。為了度量這個值,這裡引出了函式間隔和幾何間隔的概念。
在超平面確定的情況下,能夠相對錶示點x距離超平面的遠近,可以理解為對超平面進行上下移動。
而的符號與類標記符號是否一致能夠表示分類是否正確。
函式間隔:對於給定的訓練資料集T和超平面(w,b),定義超平面(w,b)關於樣本點的函式間隔為:
但是函式間隔存在一個問題,就是如果我們成比例地改變w,b的值,那麼函式間隔的值就是變為原來的兩倍,而超平面卻並沒有改變。為了解決這個問題,定義了幾何間隔:
對於給定的訓練資料集T和超平面(w,b),定義超平面關於樣本點的幾何間隔為:
其中||w||為w的L2範數,通過除以法向量的範數來對距離進行約束,保證瞭如果w,b成比例變化時,點到超平面的幾何間隔不變。
從函式間隔和幾何間隔的定義可以看出:
函式間隔 ̂隨著w,b成比例的變化而成同比例的變化,即若w,b同時變為原來的兩倍,則函式間隔也為原來的兩倍,故當w,b成比例變化時,目標函式不變,約束條件也不變。也就是說取值並不影響目標函式和約束條件,不影響整個問題的
求解,因此為了接下來的計算方便,我們取=1,從而目標函式可以寫為:
現在的問題就是如何求解在有不等式約束條件下的函式最優。我們可以使用拉格朗日乘子法來求解,定義拉格朗日函式的形式如下:
由上式可知,因為h(x)=0, g(x)≤0,在滿足約束條件下的 L(x,α,β)必然小於等於f(x),且max L(x,α,β)=f(x)。
為每個約束條件引入一個拉格朗日乘子≥0,且根據拉格朗日乘子法的形式將約束條件新增負號轉化為小於等於,定義拉格朗日函式:
原始問題與對偶問題存在相同的最優解,要求原始問題滿足KKT條件。所謂KKT條件就是:
1. L(w,b,α)對x求導為零;
2. h(x) =0;
3. α∙g(x) = 0;
這時我們之前構造的凸二次規劃問題就派上用場了,可以證明其存在對偶問題,且對偶問題最優值與原始問題最優值相同。
轉換為對偶問題後,求解過程如下:
1.求
將拉格朗日函式L(w,b,α)分別對w,b求偏導且令其等於0,解出
2.求對α的極大,即:
對上述問題可以使用SMO演算法求出α的解為α=
我們知道α≥0,且可以用反證法證明必然存在至少一個α_j>0,若α全部等於0,則由上式可知w=0,而w=0顯然不是原始問題的解。對此i,α_j>0,又根據KKT條件α∙g(x) = 0,故g(x)=0,即:
注意到=1,將替換1,並提取,可以算出:
從而可以寫出分類超平面:
分類決策函式為:
2、基於軟間隔最大化的線性支援向量機
上面所說的線性可分支援向量機是基於訓練樣本線性可分的理想狀態,當訓練樣本中存在噪聲或者特異點而造成線性不可分時,就需要用到下面講到的線性支援向量機。
線上性可分支援向量機中,我們假設函式間隔為1,若存在噪聲或特異點函式間隔處於
(0,1)中間,那麼這些點就不滿足問題的約束條件,也就線性不可分。為了解決這樣的問題,引入了鬆弛變數≥0,使得函式間隔與鬆弛變數的和大於等於1,從而約束條件變為:
同時因為約束條件引入了,所以目標函式也要改變,改為:
這種情況稱為軟間隔最大化。其問題可以定義為:
依然構造拉格朗日函式,並轉換為對偶問題:
支援向量
之前一直說到支援向量機,那麼什麼是支援向量呢?支援向量機是基於間隔最大化來分類資料集的。在硬間隔最大化的情況下,如下圖的紅線為分離超平面,粉線和藍線是將兩類點分開的最大間隔線,其到分離超平面的距離分別為,決定這個最大間隔的藍線上的兩個點與粉線的一個點就是分類關鍵點,稱為支援向量。
在軟間隔最大化的情況下,
如下圖,每個例項點到超平面的距離為。
支援向量由間隔邊界(如紅圈點)、間隔邊界與超平面之間(如綠圈點)或誤分點(如藍圈點)這些對分類起著關鍵作用的點組成。
3、基於軟間隔和核技巧的非線性支援向量機
前面說的資料集都是線性可分或者近似可分的,而實際情況下的資料都是非線性可分的。
這時就需要用到非線性變換,將輸入空間上的輸入對映到高維特徵空間,將非線性問題變換為線性問題,從而利用線性分類器進行分類。例如:
對於非線性的方程,我們取那麼原方程就變為:
核函式就是做這樣一個事情,它通過一個非線性變換將輸入空間對應到一個希爾伯特空間,使得在輸入空間中的超曲面模型對應特徵空間中的超平面模型。核函式的定義如下:
設χ是輸入空間(歐氏空間或離散集合),Η是特徵空間(希爾伯特空間),如果存在一個從χ到Η的對映
假設輸入空間為二維歐氏空間,核函式是Κ(x,z)=
可以取特徵空間為三維歐氏空間,記輸入x=(x1,x2),z=(z1,z2)
取對映函式為:
則滿足Κ(x,z)=
由之前講到的線性可分的向量機可以知道,向量機的分類函式取決與屬於x與輸入樣本點的內積,當線性不可分的時候,我們通過核函式將樣本點的內積(x,z)對映為特徵空間上內積的(φ(x),φ(z)),仍然使用前面定義的線性分類器,從而實現了有效且簡便的非線性分類問題。非線性支援向量機的分類決策函式如下:
其中x是輸入,x_i,y_i為樣本點,α_i可通過SMO求解得出,b是關於α_i,x_i,y_i的函式,也可以得出,故函式分類結果可以求出。
到這裡,支援向量機的大體思路基本完成了,也就是尋找分類超平面構造分類函式的過程;遇到非線性可分時候,就要想辦法將其轉換成線性問題,利用線性分類器來分類。求解的過程也就是求得分類超平面的引數問題,當引數不容易求解時,轉換為其對偶問題來求,終於,最後可以求出來了。
好吧,支援向量機太長了,先到此為止,下一節介紹核函式及SMO演算法。
相關文章
- 支援向量機
- 支援向量機(SVM)
- 支援向量機之線性可分向量機
- SVM——支援向量機(完整)
- SVM_支援向量機
- 感知機與支援向量機 (SVM)
- 機器學習(四):通俗理解支援向量機SVM及程式碼實踐機器學習
- [譯] 支援向量機(SVM)教程
- 對SVM支援向量機(1)
- 機器學習——支援向量機(SVM)機器學習
- 機器學習:支援向量機(SVM)機器學習
- 學習SVM(二) 如何理解支援向量機的最大分類間隔
- 機器學習——支援向量機SVM(一)機器學習
- 【機器學習】支援向量機分類機器學習
- 監督學習之支援向量機
- 支援向量機(SVM)之硬閾值
- 學習SVM(四) 理解SVM中的支援向量(Support Vector)
- 支援向量機python實現(簡易版)Python
- 分類演算法-支援向量機 SVM演算法
- 支援向量機|SMO演算法實現演算法
- 支援向量機(SVM)和python實現(二)Python
- 人工智慧-機器學習-支援向量機SVM人工智慧機器學習
- 機器學習之支援向量機的超平面機器學習
- 【機器學習】支援向量機(個人筆記)機器學習筆記
- 吳恩達機器學習系列17:支援向量機吳恩達機器學習
- 機器學習基礎專題:支援向量機SVM機器學習
- OpenCV筆記(3)實現支援向量機(SVM)OpenCV筆記
- 《Machine Learning in Action》—— 剖析支援向量機,優化SMOMac優化
- 機器學習之支援向量與間隔機器學習
- 支援向量機(Support Vector Machine,SVM)—— 線性SVMMac
- 演算法金 | 再見,支援向量機 SVM!演算法
- 非線性支援向量機 與核函式函式
- Python數模筆記-Sklearn(5)支援向量機Python筆記
- SVM 支援向量機演算法-實戰篇演算法
- SVM 支援向量機演算法-原理篇演算法
- 吳恩達機器學習筆記 —— 13 支援向量機吳恩達機器學習筆記
- 機器學習之支援向量機原理和sklearn實踐機器學習
- 透過現象看本質,圖解支援向量機圖解
- 支援向量機 (二): 軟間隔 svm 與 核函式函式