支持向量機SVM理解及公式推導

前言

最近發現本身的基礎知識不夠紮實,面對別人的問題老是「知其然不知其因此然」。出現這個問題的朋友周圍有不少,大多數人都是「拿來主義」,想着「有了開源庫,有了函數包,只要會用就行,在遇到具體問題的時候再去尋找相應的解決辦法」,這種「非系統」的學習思想其實殆害無窮,在本身想要踏實作一個工程時,會出現眼界窄,能力不足的問題,有時候爲解決一個問題想方設法地找到了一個很是好用的函數,而這個函數本身根本沒聽過。若是本身深刻專研這方面的話,第一反應就是使用最便捷的方法了,這即是「紮實」的基本功帶來的好處。web

在簡書、知乎、CSDN上有許多前輩已經總結了好的學習資料,本身也從中獲益良多,但每次不論文章寫得多好,過段時間仍是忘了,反思了一下仍是沒有將其「私有化」,所以如今用本身的話總結一些基礎知識,若是在學習記錄的同時,能夠給你們理解枯燥的理論知識帶來一點點幫助,不勝榮幸。面試

1 面試中考察SVM的必要性

其一:面試官便於瞭解面試者的基礎知識,數學基本功,學習態度,能夠經過一些基礎模型來看出這個面試者是否可以勝任該崗位。算法

其二:因爲機器學習範疇大,流派多,面試官懂的可能你不懂,你懂的可能面試官沒有提早準備,索性來個你們都應該懂的——SVM、LR等。dom

所以,面試前準備一些基礎知識的理解和推導是對本次面試最起碼的態度(面試官把最基本的題都告訴你了,若是連這些你都答不上來,那很差意思了)。機器學習

2 基本介紹

SVM最初是爲解決二元分類問題而設計的,假設咱們在桌面(二維平面下)上有兩種顏色的球,咱們須要用一條直線把它們分紅兩類。若是在平面上咱們無法用一條直線把它們分紅兩類,咱們就採起猛拍桌子(核技巧)的方法,把球振到空中(多維空間下),迅速扔出一張紙,將兩個顏色的球在空間中分隔開。咱們把這些球叫作 「data」(數據源),把直線叫作 「classifier」(分類器), 拍桌子叫作「kernelling」(創建核函數), 那張紙叫作「hyperplane」(超平面)。
來自wikisvg

3.SVM的推導(線性可分的狀況)

給定樣本集
函數

D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } 0

其中 x 1 m 維的向量(有m個屬性的一條訓練數據)。
目的:尋找一個最優(泛化能力最強)的超平面,將不一樣類別的樣本分開。
超平面可用
γ = | w T + b | | | w | | 2

若是超平面將樣本成功分類,則下式成立

{ w T x i + b + 1 , y i = + 1 w T x i + b 1 , y i = 1 3

使等號成立的幾個樣本點稱爲「支持向量」,兩個異類支持向量到超平面的距離之和爲
γ = 2 | | w | | 4

其被稱爲「間隔」。咱們要找到具備「最大間隔」的超平面,即
max w , b 2 | | w | | s . t . y i ( w T x i + b ) 1 , i = 1 , 2 , . . . , m . 5

能夠知道,最大化 | | w | | 1 ,等價於最小化 | | w | | 2 P S 使 L 2 {||w||}^2=w^Tw $)
將式5重寫爲

max w , b 1 2 | | w | | 2 s . t . y i ( w T x i + b ) 1 , i = 1 , 2 , . . . , m . 6

式6爲SVM的「基本型」。求解式6來獲得模型
post

f ( x ) = w T + b 7

對式6中的每條約束加上拉格朗日乘子 α i 0 ,獲得
L ( w , b , α ) = 1 2 | | w | | 2 + i = 1 m α i ( 1 y i ( w T x i + b ) ) 8

L 分別對 w b 的偏導爲0,得
w = i = 1 m α i y i x i 9

0 = i = 1 m α i y i 10

代入式8中,獲得式6的對偶問題(線性規劃有一個有趣的特性,就是任何一個求極大的問題都有一個與其匹配的求極小的線性規劃問題。)
max α i = 1 m α i 1 2 i = 1 m j = 1 m α i α j y i y j x i T x j s . t . i = 1 m α i y i = 0 , α i 0 , i = 1 , 2 , . . . , m . 11

w (即求 α )和 b ,得模型
f ( x ) = w T x + b = i = 1 m α i y i x i T + b 12

上述過程需知足KKT條件。
使用SMO算法來求取 α ,使支持向量的性質來求 b

這裏應該指出,每個理論的每個介紹者給出的介紹均可能不盡符合你,或多或少會出現很差理解的狀況,緣由在於每一個人(包括介紹者和學習者)的思惟習慣、知識基礎、問題背景都不盡相同。本身在學習時總結的經驗就是「集成學習」(即取各家之所長),多看幾個優秀介紹者的介紹。好比SVM的就充分借鑑了《機器學習》(周志華)等人的介紹。學習

參考

1.《機器學習》(周志華)
2. 支持向量機(SVM)是什麼意思?
3. 機器學習面試之有必要手推SVM嗎?
機器學習面試之有必要手推SVM嗎(2)?
4. 支持向量機SVM推導及求解過程atom

在簡書中輸入Letax公式請參考
搞定簡書中公式編輯問題:插入Letax公式

轉載請註明以下內容:

本文做者: Freedom_anytime
知乎:@Forfreedom
簡書號:For_freedom
簡書原文連接:【機器學習】SVM理解及推導