上一章我們介紹了SVM算法的意義,SVM是large-margin算法,旨在找到一條能夠完全區(qū)分訓(xùn)練集而且擁有最大margin值的直線。在這一章節(jié)里,我們將推導(dǎo)margin的計(jì)算方式和SVM最終要解決的問(wèn)題的方程表達(dá)式。
任意點(diǎn)到?jīng)Q策邊界距離(1) - 初步表達(dá)式
上章節(jié)我們提到,margin值就是所有數(shù)據(jù)點(diǎn)到?jīng)Q策邊界的距離里面的最小值,所以首先我們要計(jì)算平面內(nèi)任意一點(diǎn)到?jīng)Q策邊界的距離。為了使得表述和理解更簡(jiǎn)單,在下面的所有推導(dǎo)中,我們都采用二維平面內(nèi)的數(shù)據(jù)作為例子去做解釋。二維平面得到的結(jié)論可以推廣到任意維度的空間當(dāng)中。
上圖是一個(gè)在上一章節(jié)用過(guò)的二維數(shù)據(jù)集例子。在圖中,紅色的數(shù)據(jù)點(diǎn)是需要計(jì)算到?jīng)Q策邊界距離的點(diǎn),我們標(biāo)注其為X。X1為決策邊界上的點(diǎn)。注意,這里的X1跟坐標(biāo)軸上的x1不一樣,這里的X1是一個(gè)點(diǎn),也是一個(gè)擁有兩個(gè)維度的向量。坐標(biāo)軸上的x1是兩個(gè)維度對(duì)應(yīng)的值的大小,是標(biāo)量。圖中的distance是我們需要計(jì)算的距離,該線段與決策邊界垂直且與點(diǎn)X相交。
現(xiàn)在,假定圖中的決策邊界是由特征權(quán)重向量W和偏差值b決定的,既對(duì)于任意數(shù)據(jù)點(diǎn),h(X) = sign(WTX + b),該分類器是一個(gè)線性分類器(linear classifier)。對(duì)于任意數(shù)據(jù)X,當(dāng)WTX + b > 0的時(shí)候預(yù)測(cè)該點(diǎn)為正類,當(dāng)WTX + b < 0的時(shí)候預(yù)測(cè)該點(diǎn)為負(fù)類。當(dāng)WTX + b = 0的時(shí)候,該點(diǎn)正好落在決策邊緣上,此時(shí)分類器將其預(yù)測(cè)為正類來(lái)打破平衡(tie-break)。因此,我們很容易得到?jīng)Q策邊界的方程為WTX + b = 0。
為了計(jì)算點(diǎn)X到?jīng)Q策邊界的距離,我們做了一條輔助線,這條輔助線穿過(guò)點(diǎn)X和決策邊界上的一點(diǎn)X1。根據(jù)高中幾何知識(shí)我們知道X到?jīng)Q策邊緣的距離D,是向量X X1長(zhǎng)度在垂直于決策邊界方向上的投影,既Distance = ||X - X1||cos(a),a為向量XX1與垂直于決策邊界方向的夾角。
此時(shí),要計(jì)算Distance大小我們有兩個(gè)方法,第一個(gè)方法是計(jì)算角度a以及||X - X1||的大小,第二個(gè)方法是找到一個(gè)垂直于決策邊界的向量,假設(shè)是P。則距離
對(duì)于以上的公式推導(dǎo),我們將會(huì)在下面演示。
根據(jù)經(jīng)驗(yàn)而言,求法向量P往往比求角度a要簡(jiǎn)單一些,所以我們?cè)谶@里采用第二種方法。由于我們最終需要用權(quán)重向量W和偏差b來(lái)表示距離大小,所以上面公式的是距離的初步表達(dá)式,我們還需要進(jìn)行進(jìn)一步推算。
任意點(diǎn)到?jīng)Q策邊界距離(2) - 初步表達(dá)式的證明
剛剛我們提到了第二種計(jì)算距離的方法,并給出了計(jì)算公式,現(xiàn)在我們要證明計(jì)算公式的正確性。
首先根據(jù)向量相乘公式我們知道,兩個(gè)向量相乘等于向量長(zhǎng)度的乘積再與向量夾角余弦值的乘積。既
上面的式子說(shuō)的是向量P和向量||X - X1||的乘積,因?yàn)?em>P是垂直于決策邊界,所以P與X - X1向量的夾角就是第一個(gè)坐標(biāo)圖中的角a。之前我們提到過(guò),所求距離Distance = ||X - X1|| cos(a)。因此根據(jù)上面的得到的公式我們可以推出:
任意點(diǎn)到?jīng)Q策邊界距離(3) - 找到跟決策邊界垂直的向量P
在前面我們介紹并推導(dǎo)了任意點(diǎn)到?jīng)Q策邊界距離的初步表達(dá)式。現(xiàn)在,我們要找到公式當(dāng)中的向量P,一個(gè)垂直于決策邊界的向量。
現(xiàn)在我們?cè)俣x另一個(gè)落在決策邊界上的點(diǎn)X2。
X1和X2都落在決策邊界上,因此對(duì)于點(diǎn)X1和X2,滿足決策邊界方程
我們把方程組中的上下兩式相減得到 WT (X1 - X2) = 0。向量相乘等于零說(shuō)明向量方向互相垂直。因此我們可以得到WT ⊥ (X1 - X2)。由于X1和X2都落在決策邊界上,所以,(X1 - X2)的方向就是決策邊界的方向。因此WT就是我們要找的垂直于決策邊界的向量P。
任意點(diǎn)到?jīng)Q策邊界距離(4)- 最終表達(dá)式
上面我們得到了垂直于決策邊界的向量 WT,現(xiàn)在我們把WT代入到前面的得到的距離初步表達(dá)式當(dāng)中,
我們把WT放到后面的括號(hào)里面:
因?yàn)?em>X1是決策邊界上的一點(diǎn),所以有
把上式代入Distance公式當(dāng)中得到
為了讓式子看著更簡(jiǎn)單,我們把||WT||換成||W||,因?yàn)?br> W的長(zhǎng)度與其轉(zhuǎn)置的長(zhǎng)度一樣。
這個(gè)距離公式還存在一個(gè)問(wèn)題,就是WTX + b的值有可能為負(fù),這樣算出來(lái)的距離就會(huì)為負(fù)值,這不符合我們常規(guī)當(dāng)中對(duì)距離大小的認(rèn)識(shí),我們常識(shí)當(dāng)中總認(rèn)為距離是非負(fù)的。因此我們?cè)?em>WTX + b外面加上一個(gè)絕對(duì)值符號(hào),確保其非負(fù)。下面就是任意點(diǎn)X到?jīng)Q策邊界的距離最終表達(dá)式:
Margin表達(dá)式的推導(dǎo)
前面我們推導(dǎo)了任意點(diǎn)到?jīng)Q策平面的距離表達(dá)式,下面我們要把問(wèn)題回歸到SVM,推導(dǎo)Margin值的表達(dá)式。
在上一章節(jié)我們提到,SVM的前提是要把訓(xùn)練集無(wú)錯(cuò)誤地分開(kāi),也就是說(shuō),對(duì)于所有訓(xùn)練數(shù)據(jù)X, WTX + b 于這個(gè)點(diǎn)的分類值yn必須是同號(hào),即yn (WTX + b) > 0。
因?yàn)閥n只有兩個(gè)值,+1和-1, 我們可以把距離公式當(dāng)中的絕對(duì)值符號(hào)去掉,但是要添加一個(gè)條件:
s.t. 后面的是等式成立的條件,這也是SVM的前提。
我們已經(jīng)知道,Margin值就是所有點(diǎn)Distance的最小值,因此我們得到Margin的表達(dá)式:
Margin表達(dá)式的簡(jiǎn)化
上面我們得到了Margin的表達(dá)式,然而要得到上面表達(dá)式的最大值仍然有點(diǎn)復(fù)雜,不便于計(jì)算,因此我們還需要對(duì)表達(dá)式進(jìn)行進(jìn)一步的簡(jiǎn)化,以方便計(jì)算。
通過(guò)觀察上面的表達(dá)式,我們可以把1 / ||W||提到min函數(shù)的前面去,因?yàn)? / ||W||跟n并無(wú)關(guān)系,margin公式轉(zhuǎn)換成了:
現(xiàn)在再次觀察新的margin表達(dá)式,容易看出我們或許可以嘗試對(duì)公式當(dāng)中min后面的式子進(jìn)行簡(jiǎn)化。假若我們能夠把后面的min值簡(jiǎn)化成一個(gè)常數(shù),甚至讓后面的min值簡(jiǎn)化成1,那么margin表達(dá)式就會(huì)剩下一個(gè) 1 / ||W||,計(jì)算量將會(huì)大大減少。
事實(shí)上,我們確實(shí)可以把表達(dá)式當(dāng)中的min值簡(jiǎn)化成1。在說(shuō)明白這個(gè)道理之前,先看一個(gè)例子。
對(duì)于平面內(nèi)任意決策邊界,WTX + b = 0。現(xiàn)在讓其W和b同時(shí)放大三倍,既 3WTX + 3b = 0。可以很容易知道,放大三倍之后的決策邊界跟放大之前的決策邊界是同一條邊界,因此我們可以知道,對(duì)W和b同時(shí)進(jìn)行縮放,不會(huì)影響決策邊界的位置。
現(xiàn)在我們回到剛剛的margin表達(dá)式,我們可以對(duì)決策邊界參數(shù)做一個(gè)特殊的縮放,假設(shè)縮放倍數(shù)為n,使得其永遠(yuǎn)滿足以下條件:
剛剛提到,對(duì)決策邊界參數(shù)同時(shí)做相同倍數(shù)的縮放不影響決策邊界的位置,因此,WTX + b = 0 與 nWTX + nb = 0是同一條直線。所以可以得到相同的結(jié)論:
因此我們可以對(duì)margin表達(dá)式再次簡(jiǎn)化為:
注意,s.t.條件當(dāng)中原來(lái)有的 yn (WTX + b) > 0 這個(gè)條件在這里我們省略不寫(xiě),原因是只要滿足了yn (WTX + b)的最小值為1的話,必然滿足原來(lái)大于0的條件,所以為了簡(jiǎn)化,我們省略原來(lái)的條件不寫(xiě)。
把最小化條件放松
上面我們得到了簡(jiǎn)化的margin表達(dá)式及其成立條件,表達(dá)式只是剩下一個(gè)1 / ||W||,已經(jīng)足夠簡(jiǎn)單。然而,在讓表達(dá)式簡(jiǎn)單的同時(shí),我們卻把s.t.后面的條件變得更復(fù)雜了:
原來(lái)的條件是一個(gè)不等式,現(xiàn)在變成了一個(gè)最小化問(wèn)題,問(wèn)題變得更加復(fù)雜了,所以現(xiàn)在我們要做的就是把最小化條件放松,使條件再次變成一個(gè)不等式。關(guān)于為什么不等式條件會(huì)比最小化條件容易解決,我們會(huì)在以后的章節(jié)有所解釋。現(xiàn)在我們暫且認(rèn)同這一點(diǎn)。
現(xiàn)在我們嘗試把原來(lái)的最小化條件放松成以下條件:
這個(gè)條件是原來(lái)最小化條件的必要條件,即滿足原來(lái)?xiàng)l件,必定滿足新的條件,即若滿足yn (WTX + b)的最小值為1必定滿足對(duì)于所有的n,yn (WTX + b) >= 1。
但是對(duì)于新條件是否是原來(lái)?xiàng)l件的充分條件,我們還需證明。
現(xiàn)在用反證法證明新條件是舊條件的充分條件
假設(shè)一個(gè)最大的margin值對(duì)應(yīng)的最優(yōu)解為(W, b),假設(shè)這個(gè)最優(yōu)解滿足 :
此時(shí)這個(gè)最優(yōu)解滿足新的不等式條件,但是不滿足舊的最小化條件。
此時(shí)可以把不等式兩邊同時(shí)除以1.1,使其與原來(lái)的不等式條件一致:
這時(shí)的最優(yōu)解就變成了(W / 1.1, b / 1.1)。
把新的參數(shù)代入margin:
我們發(fā)現(xiàn),當(dāng)W變成W / 1.1的時(shí)候,||W||的值會(huì)變小,margin的值就會(huì)更大,解比原來(lái)的W更優(yōu)。因此這與原來(lái)假設(shè)的(W, b)是最優(yōu)解相互矛盾。
所以,我們可以下結(jié)論,當(dāng)(W, b)為最優(yōu)解時(shí),最小化條件和不等式條件是互為充要條件,可以作出最小化條件放松的操作。
現(xiàn)在,我們得到了更簡(jiǎn)單的margin計(jì)算方程,這里把最小化條件去掉了:
margin最大化問(wèn)題
上面我們得到了margin的計(jì)算表達(dá)式,現(xiàn)在可以得到我們需要優(yōu)化的模型:
總結(jié)
在這一章節(jié)里,主要講解了如何計(jì)算平面內(nèi)任意一點(diǎn)到?jīng)Q策邊界的距離,之后還推導(dǎo)了margin最大化問(wèn)題的模型。在后面的章節(jié)里,將會(huì)繼續(xù)介紹如何解決這一章得到的最大化問(wèn)題,從而得到最優(yōu)解。
引用
本章節(jié)某些內(nèi)容引用了臺(tái)灣大學(xué)林軒田老師Standard_Large-Margin_Problem一章節(jié)課件內(nèi)容