機器學習基礎-監督學習:支持向量機(SVM)

支持向量機(Support Vector Machine)在處理線性數據集,非線性數據集都有較好的效果。瞭解機器學習或者是模式識別的都應該知道。

機器學習基礎-監督學習:支持向量機(SVM)

順便認識一下蒙古包酒店

、SVM之所以強大是因為其採用的相關技術,如最大類間隔,鬆弛變量,核函數等。這些技術使其在眾多機器學方法中脫穎而出。就算放在現在,SVM在機器學習中也別大量使用,這與他的高效、簡潔、易用的特點分不開。而且它的處理思想與目前的機器學習有深厚的關係。支持向量機進行分類的目的也是一樣,得到一個分類器或分類模型,它的分類器模型根據數據集的不同而不同,如果數據集是二維的則得到的就是一個直線型的超平面,若是三維數據得到的就是一個平面型的超平面。通過這樣的超平面把數據做一個劃分,它需要使正例和反例間的間隔最大,使其泛化能力最強。那麼接下來的部分就介紹如何來得到這個所謂的超平面。以下內容分為最優間隔分類器和核函數。

  • 最優間隔分類器

SVM的分類器是超平面,我們需要什麼樣的超平面呢?下面是一個超平面的示意圖。

機器學習基礎-監督學習:支持向量機(SVM)

分類器的優化目標通常是最小化分類器誤差,但對SVM而言,優化的目標最大化分類間隔。間隔指的是兩個分離的超平面間的距離,其中最靠近超平面的訓練樣本又稱為支持向量(Support Vector)。假設在一個二維空間中,數據集分佈如下圖所示:

機器學習基礎-監督學習:支持向量機(SVM)

其中:

機器學習基礎-監督學習:支持向量機(SVM)

接下來需要樣本取訓練一個線性分類器,如上圖所示的直線H:

機器學習基礎-監督學習:支持向量機(SVM)

當:

機器學習基礎-監督學習:支持向量機(SVM)

輸出+1;小於0時輸出-1。sgn()函數表示取符號。

機器學習基礎-監督學習:支持向量機(SVM)

就是需要尋找的分類超平面,。這個分類面到兩個類最近的那些樣本的距離相同,而且最大。

假設上圖中的兩個分類超平面平行且距離相等:

機器學習基礎-監督學習:支持向量機(SVM)

此時需要兩個條件:

1) 沒有熱河樣本在這兩個平面之間;

2) 這兩個平面的距離需要最大。

然後就可以對數據集進行劃分。但是會遇到另外的問題,怎麼樣吧非線性的數據集轉換為線性的數據集呢?就是下面的內容核函數:

  • 核函數

核函數可以把非線性數據集映射到一個更高或無窮維度的空間,在新空間轉換為線性數據集。那核函數怎麼把線性不可分的數據轉換為線性可分的數據集呢?以下圖為例:

機器學習基礎-監督學習:支持向量機(SVM)

它的功能就是將左邊在二維空間非線性的數據集,映射到三維空間後變成一個線性可分的數據集,其中超平面可以把數據分為上下兩個部分。

常用的核函數:

機器學習基礎-監督學習:支持向量機(SVM)

其實核函數就想當於神經網絡中的隱藏層,所以SVM應用很廣泛。但現在隨著神經網絡的不斷推進,已經被深度學習超越,SVM核函數的選擇是它的難點,相比於神經網絡其靈活性和可擴展性也較低。以上內容就是對機器學習基礎中關於SVM的離理論部分學習。


分享到:


相關文章: