機(jī)器學(xué)習(xí)10 支持向量機(jī)SVM

12 支持向量機(jī)

內(nèi)容:大邊界的直觀理解,大邊界分類背后的數(shù)學(xué),核函數(shù),使用支持向量機(jī)

12.2 大邊界的直觀理解

  1. 大間距
    用一個(gè)具體的例子來說,考察這樣的有正樣本和負(fù)樣本的數(shù)據(jù)集,我們可以畫出很多個(gè)決策邊界將正負(fù)樣本完全分開。像下面這樣,三條線都符合:


    但是我們會(huì)發(fā)現(xiàn)好像黑色的這條線會(huì)更加穩(wěn)定,為什么呢?這條黑線有更大的距離——間距。
    我們使用支持向量機(jī),往往會(huì)得到黑線所代表的結(jié)果。大間距是支持向量機(jī)具有魯棒性(更穩(wěn)定更強(qiáng)壯)的原因。支持向量機(jī)有時(shí)也被稱為大間距分類器。
    然而為什么會(huì)產(chǎn)生這個(gè)結(jié)果呢?支持向量機(jī)為什么會(huì)努力將正負(fù)樣本用最大間距分開呢?

  2. 支持向量機(jī)特點(diǎn)

    首先再理解一下支持向量機(jī)的特點(diǎn):

    (1) 關(guān)于z和y
    左邊是關(guān)于z的代價(jià)函數(shù)cost1(z),此函數(shù)用于正樣本。意思就是如果我有一個(gè)正樣本,我會(huì)希望??????>=1(即z>=1)。事實(shí)上,如果你有一個(gè)正樣本?? = 1,則其實(shí)我們僅僅要求??????>= 0,就能將該樣本恰當(dāng)分出,但是,支持向量機(jī)的要求更高,不僅僅要能正確分開輸入的樣本,即不僅僅要求??????>0,我們需要的是比 0 值大很多,比如大于等于 1,我也想這個(gè)比 0 小很多,比如我希望它小于等于-1,這就相當(dāng)于在支持向量機(jī)中嵌入了一個(gè)額外的安全因子,或者說安全的間距因子。
    右邊是關(guān)于z的代價(jià)函數(shù)cost0(z),此函數(shù)用于負(fù)樣本,同理。
    (2) 關(guān)于C
    如果 ??非常大,則最小化代價(jià)函數(shù)的時(shí)候,我們將會(huì)很希望找到一個(gè)使第一項(xiàng)為 0 的最優(yōu)解,所以這將遵從這樣的約束:如果訓(xùn)練樣本y = 1,我們呢想令第一項(xiàng)為0,那么就找到一個(gè)??,使得?????? >= 1;訓(xùn)練樣本y = 0時(shí)同理。
    當(dāng)你求解出??以后,也將得出決策邊界(??就是那些參數(shù),有了參數(shù)自然也就知道邊界,)

  3. 不準(zhǔn)確的劃分
    支持向量機(jī)現(xiàn)在要比這個(gè)大間距分類器所體現(xiàn)得更成熟,尤其是當(dāng)你使用大間距分類器的時(shí)候,你的學(xué)習(xí)算法會(huì)受異常點(diǎn)(outlier) 的影響。比如我們加入一個(gè)額外的正樣本(左下角的紅×)。

    ,如果你加了這個(gè)樣本,為了將樣本用最大間距分開,也許我最終會(huì)得到一條類粉色線這樣的邊界。這種情況在什么條件下發(fā)生?
    如果正則化參數(shù)C 設(shè)置的非常大,支持向量機(jī)會(huì)選擇這天粉線;將 C 設(shè)置的不太大,則你最終會(huì)得到這條黑線。
    為什么呢?回想我們?nèi)绾卧O(shè)置出C,它的作用類似于1/??,??是我們之前使用過的正則化參數(shù)。因此:
    ?? 較大時(shí),相當(dāng)于 ?? 較小,可能會(huì)導(dǎo)致過擬合,高方差。
    ?? 較小時(shí),相當(dāng)于 ?? 較大,可能會(huì)導(dǎo)致低擬合,高偏差。

12.3 大邊界分類背后的數(shù)學(xué)

  1. 向量內(nèi)積


    ??是??投影到向量??上的長度(有正負(fù)之分),因此可以將?????? = ?? ? ∥??∥ = ??1 × ??1 + ??2 × ??2

  2. 支持向量機(jī)中的目標(biāo)函數(shù)
    (1)目標(biāo)函數(shù):
    下面就是支持向量機(jī)中的目標(biāo)函數(shù),在不同的y值下對自變量有不同的約束

    因此支持向量機(jī)做的全部事情,就是極小化參數(shù)向量??范數(shù)的平方,或者說長度的平方。
    當(dāng)然你可以將其寫作??0,??1,??2,如果??0 = 0,那就是??1,??2的長度。在這里我將忽略??0,這樣來寫??的范數(shù),它僅僅和??1,??2有關(guān)。但是,數(shù)學(xué)上不管你是否包含,其實(shí)并沒有差別, 因此在我們接下來的推導(dǎo)中去掉??0不會(huì)有影響。
    (2)??????:

  3. 大間距如何產(chǎn)生
    假設(shè)我們有這樣的例子


    例子

    選擇綠線1作為決策邊界

我們選擇參數(shù)??,可以看到參數(shù)向量??事實(shí)上是和決策界是 90 度正交的,因此這個(gè)綠色的決策界對應(yīng)著一個(gè)參數(shù)向量??這個(gè)方向,順便提一句??0 = 0的簡化僅僅意味著決策界必須通過原點(diǎn)(0,0)。
任選兩個(gè)樣本點(diǎn)x1,x2。根據(jù)上圖我發(fā)現(xiàn)投影p很小,所以為了符合約束條件我們需要將參數(shù)的范數(shù)設(shè)置的很大。但是我們的目標(biāo)函數(shù)是希望找到一個(gè)參數(shù)??,它的范數(shù)是小的,所以這不符合條件。再看下面的情況:


注意右圖

支持向量機(jī)可以使參數(shù)??的范數(shù)變小很多。

以上就是為什么支持向量機(jī)最終會(huì)找到大間距分類器的原因。因?yàn)樗噲D極大化這些??(??)的范數(shù),它們是訓(xùn)練樣本到?jīng)Q策邊界的距離。最后一點(diǎn),我們的推導(dǎo)自始至終使用了這個(gè)簡化假設(shè),就是參數(shù)??0 = 0。 事實(shí)上這只是代表截距,并不會(huì)影響投影的長短以及角度。

12.4 核函數(shù)

核函數(shù)的作用:計(jì)算出新的特征
  1. 高斯核函數(shù)
    地標(biāo):給定一個(gè)訓(xùn)練實(shí)例?? ,我們利用?? 的各個(gè)特征與我們預(yù)先選定的地標(biāo)(landmarks)??(1),??(2),??(3)的近似程度來選取新的特征??1,??2,??3。 例如:
    其中:
    為實(shí)例??中所有特征與地標(biāo)??(1)之間的距離的和。
    sim()函數(shù):高斯核函數(shù)
    地標(biāo)的作用:如果一個(gè)訓(xùn)練實(shí)例??與地標(biāo)??之間的距離近似于 0,則新特征 ??近似于1,如果訓(xùn)練實(shí)例??與地標(biāo)??之間距離較遠(yuǎn),則??近似于0
    ??:決定隨著??的改變??值改變的速率
  2. 如何選擇地標(biāo)

    根據(jù)訓(xùn)練集的數(shù)量選擇地標(biāo)的數(shù)量。
    則特征向量為

    下面我們將核函數(shù)運(yùn)用到支持向量機(jī)中,修改我們的支持向量機(jī)假設(shè)為:
  3. 線性核函數(shù)
    即支持向量機(jī)不使用核函數(shù)。當(dāng)我們不采用非常復(fù)雜的函數(shù),或者我們的訓(xùn)練集特征非常多而實(shí)例非常少的時(shí)候,可以用這種不帶核函數(shù)的支持向量機(jī)。
  4. 參數(shù)??和??
    ?? = 1/??
    ?? 較大時(shí),相當(dāng)于??較小,可能會(huì)導(dǎo)致過擬合,高方差;
    ?? 較小時(shí),相當(dāng)于??較大,可能會(huì)導(dǎo)致低擬合,高偏差;
    ??較大時(shí),可能會(huì)導(dǎo)致低方差,高偏差;
    ??較小時(shí),可能會(huì)導(dǎo)致低偏差,高方差。

12.6 使用支持向量機(jī)

  1. 核函數(shù)的選擇
    高斯核函數(shù)
    多項(xiàng)式核函數(shù)(Polynomial Kernel)
    字符串核函數(shù)(String kernel)
    卡方核函數(shù)( chi-square kernel)
    直方圖交集核函數(shù)(histogram intersection kernel)
    這些核函數(shù)的目標(biāo)也都是根據(jù)訓(xùn)練集和地標(biāo)之間的距離來構(gòu)建,這些核函數(shù)需要滿足 Mercer's 定理,才能被支持向量機(jī)的優(yōu)化軟件正確處理。
  2. 多分類問題
    如果一共有??個(gè)類,則我們需要??個(gè)模型,以及??個(gè)參數(shù)向量??。我們同樣也可以訓(xùn)練??個(gè)支持向量機(jī)來解決多類分類問題。
  3. 使用準(zhǔn)則
    (1)如果相較于??而言,??要大許多,即訓(xùn)練集數(shù)據(jù)量不夠支持我們訓(xùn)練一個(gè)復(fù)雜的非線性模型,我們選用邏輯回歸模型或者不帶核函數(shù)的支持向量機(jī)。
    (2)如果??較小,而且??大小中等,例如??在 1-1000 之間,而??在 10-10000 之間,使用高斯核函數(shù)的支持向量機(jī)。
    (3)如果??較小,而??較大,例如??在 1-1000 之間,而??大于 50000,則使用支持向量機(jī)會(huì)非常慢,解決方案是創(chuàng)造、增加更多的特征,然后使用邏輯回歸或不帶核函數(shù)的支持向量機(jī)。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容