支持向量機算法 SVM

很努力地把公式截圖貼到簡書上,但效果還是不理想。因為文字間的公式非常難排版,且弄起來老感覺蛋疼 ...... 如果想看完整排版的移步 http://blog.kamidox.com/svm.html

支持向量機算法 SVM 是 Support Vector Machine 的縮寫,它是工業(yè)和學(xué)術(shù)界都有廣泛應(yīng)用的強大的算法。

從邏輯回歸算法談起

邏輯回歸算法的預(yù)測函數(shù)

邏輯回歸算法的預(yù)測函數(shù)稱為 Sigmoid Function ,如下圖:

Sigmoid Function
Sigmoid Function

這意味著,針對 $y=1$,我們希望預(yù)測值 $h(x) \approx 1$,那么只要 $z=\theta^T x \gg 0$ 即可。相同的道理,針對 $y=0$,我們希望預(yù)測值 $h(x) \approx 0$,那么只要 $z=\theta^T x \ll 0$ 即可。

邏輯回歸算法的成本函數(shù)

回顧之前的知識,邏輯回歸算法的成本函數(shù)如下

logistic cost function

如果我們?nèi)サ?$\frac{1}{m}$ 和累加器,同時暫時不考慮正則項,則可以得到另外一個樣式的成本函數(shù):

logistic cost function: style 1

當(dāng) $y^{(i)}=1$ 時,$1-y^{(i)}=0$,故這一式子再簡化為:

logistic cost function: style 2

把上述函數(shù)以成本 J 為縱坐標(biāo),z 為橫坐標(biāo),畫出來的函數(shù)曲線如下:

cost 1
cost 1

從圖中可以看到,針對 $y=1$ 的情況,如果 $z=\theta^T x \gg 1$ 時,成本將很小。支持向量機的原理,就是簡化邏輯回歸算法的成本函數(shù),以 $z=1$ 為分界線,當(dāng) $z<1$ 時,把成本函數(shù)簡化為一條斜線,當(dāng) $z>=1$ 時,直接把成本簡化為 0。如上圖洋紅色所示。

相同的道理,針對$y^{(i)}=0$ 時,變形后的邏輯回歸算法成本函數(shù)簡化為:

logistic cost function for y=0

把上述函數(shù)以成本 J 為縱坐標(biāo),z 為橫坐標(biāo),畫出來的函數(shù)曲線如下:

cost 1
cost 1

從圖中可以看到,針對 $y=0$ 的情況,如果 $z=\theta^T x \ll -1$ 時,成本將很小。支持向量機的原理,就是簡化邏輯回歸算法的成本函數(shù),以 $z=-1$ 為分界線,當(dāng) $z<-1$ 時,把成本函數(shù)簡化為 0,當(dāng) $z>=-1$ 時,把成本簡化一條斜線。如上圖洋紅色所示。

支持向量機算法的成本函數(shù)

根據(jù)上面的定義,支持向量機把成本函數(shù)分成兩部分,一部分是針對 $y=1$ 的情況,它是一個以 $z=1$ 為分界點的折線。另外一部分是針對 $y=0$ 的情況,它是以 $z=-1$ 為分界點的折線。我們把這兩個情況合并起來,并把正則項加上去,就得到支持向量機的成本函數(shù):

svm cost function

這就是用在支持向量機算法里的成本函數(shù)。這里的參數(shù) C 越大,正則項的比重就越小,就容易造成過擬合。反之,如果 C 越小,正則項的比重就越大,就容易造成欠擬合。

支持向量機的預(yù)測函數(shù)

我們定義支持向量機的預(yù)測函數(shù)如下:

svm predict function

這里和邏輯回歸算法比較,針對邏輯回歸算法,其正負(fù)樣本分界線為 $\theta^T x = 0$,即 $\theta^T x > 0$ 時為正樣本,當(dāng) $\theta^T x < 0$ 時為負(fù)樣本。而支持向量機的分類預(yù)測函數(shù)要求更嚴(yán)格,它要求 $\theta^T x >= 1$ 時為正樣本,$\theta^T x <= -1$ 時為負(fù)樣本。根據(jù)支持向量機的成本函數(shù)圖形,只有這樣成本才最小,即成本為零。如下圖所示:

svm cost
svm cost

大間距分類算法

支持向量機也稱為大間距分類算法。大間距的意思是,用 SVM 算法計算出來的分界線會保留對類別最大的間距,即有足夠的余量。

我們看一個比較極端的情況,假設(shè)我們選取一個很大的值作為參數(shù) C 的值,那么為了讓成本最小,我們必須讓成本函數(shù)的前半部分為 0,這樣成本函數(shù)就只剩下:

simplified cost function for svm

求解這個函數(shù)的結(jié)果,就會讓我們獲得一個較大間距的分類算法。如下圖所示,假設(shè)我們有個分類問題。那么洋紅色和綠色的都可以是合法的分界線,但 SVM 可以得到黑色的分界線,即確保到兩個類別有最大的間距。

svm decision boundary
svm decision boundary

為什么求解 $J(\theta) = \frac{1}{2} \sum_{j=1}^n \theta_j^2$ 會得到最大間距的分界線呢?這個我們留到下面詳細(xì)解釋。

我們接著看下圖,如果我們的參數(shù) C 很大,那么可能發(fā)生過擬合,即左下角的一個異常的紅色樣例 X 可能會導(dǎo)致決策界從黑色線變成洋紅色線。但實際上,直觀地來理解,這樣的轉(zhuǎn)變是不合理的,我們?nèi)匀幌M玫胶谏臎Q策界。這個時候,我們可以調(diào)整參數(shù) C ,讓 C 的值不要太大,這樣就不會被左下角的紅色 X 異常樣例的干擾,照樣得到黑色的決策邊界。

svm overfitting
svm overfitting

與邏輯回歸算法類比,C 相當(dāng)于 $\frac{1}{\lambda}$。通過調(diào)整 C 可以讓 SVM 算法不至于過擬合,也不至于欠擬合。

從數(shù)學(xué)角度理解大間距分類算法

向量內(nèi)積的幾何含義

假設(shè) u, v 是一個二維列向量,那么 $u^Tv$ 表示向量 v 在 向量 u 上的投影的長度。可以通過在二維平面上畫出向量 u 和向量 v 來更清楚地看這個關(guān)系。

vector inner product
vector inner product
vector inner product

其中 p 就是 v 在 u 上的投影的長度,它是有符號的實數(shù);$|u|$ 是向量 u 的范數(shù),即向量 u 的長度,其值為 $\sqrt{u_1^2 + u_2^2}$。

從數(shù)學(xué)上理解為什么支持向量機會把類別邊界的間距做到最大

假設(shè)我們只有兩個特征,即 n = 2,則 $J(\theta) = \frac{1}{2} \sum_{j=1}^n \theta_j^2$ 簡化為:

simplified svm cost function

回到 SVM 算法的預(yù)測函數(shù):

svm prediction function

即當(dāng)預(yù)測為正樣本時,我們需要 $\theta^T x >=1$,這個式子可以理解為向量內(nèi)積,它的幾何含義是x 在 $\theta$ 上的投影的長度大于等于 1,即 $p | \theta | >= 1$。如下圖所示:

theta and x inner product
theta and x inner product

而我們的算法求解目標(biāo)是使 $J(\theta) = \frac{1}{2} | \theta |^2$ 最小,所以 SVM 算法的求解目標(biāo)就是要讓 p 盡可能最大。即使所有的訓(xùn)練樣例點 $x^{i}$ 到參數(shù)向量 $\theta$ 的投影長度最大。在幾何上,決策邊界和參數(shù) $\theta$ 是正交的。如下圖所示:

svm decision boundary
svm decision boundary

綠色線為決策邊界,綠色線為 $\theta$ 所代表的向量。那么 SVM 的求解目標(biāo)就是讓各個訓(xùn)練樣例的點 $x^{i}$ 到 $\theta$ 上的投影長度最大。上圖中,我們可以試著換一個決策邊界,試著畫出訓(xùn)練樣例到這個新的決策邊界所決定的參數(shù) $\theta$ 的投影長度,即可理解為什么 SVM 可以讓決策邊界得到最大的間距。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,517評論 6 539
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 99,087評論 3 423
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,521評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,493評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 72,207評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,603評論 1 325
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,624評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,813評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 49,364評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 41,110評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,305評論 1 371
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,874評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,532評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,953評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,209評論 1 291
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,033評論 3 396
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 48,268評論 2 375

推薦閱讀更多精彩內(nèi)容