0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

lviY_AI_shequ ? 2018-04-02 08:49 ? 次閱讀

?Content:

8.1 Optimization Objection

8.2 Large margin intuition

8.3 Mathematics Behind Large Margin Classification

8.4 Kernels

8.5 Using a SVM

8.5.1 Multi-class Classification

8.5.2 Logistic Regression vs. SVMs

8.1 Optimization Objection

支持向量機(Support Vector Machine: SVM)是一種非常有用的監(jiān)督式機器學(xué)習(xí)算法。首先回顧一下Logistic回歸,根據(jù)log()函數(shù)以及Sigmoid函數(shù)的性質(zhì),有:

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

同時,Logistic回歸的代價函數(shù)(未正則化)如下:

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

為得到SVM的代價函數(shù),我們作如下修改:

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

因此,對比Logistic的優(yōu)化目標(biāo)

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

SVM的優(yōu)化目標(biāo)如下:

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

注1:事實上,上述公式中的Cost0與Cost1函數(shù)是一種稱為hinge損失的替代損失(surrogate loss)函數(shù),其他常見的替代損失函數(shù)有指數(shù)損失和對率損失,具體參見《機器學(xué)習(xí)》P129 周志華)

注2:注意參數(shù)C和λ的對應(yīng)關(guān)系: C與(1 / λ)成正相關(guān)。

8.2 Large margin intuition

根據(jù)8.1中的代價函數(shù),為使代價函數(shù)最小,有如下結(jié)論:

現(xiàn)假設(shè)C很大(如C=100000),為使代價函數(shù)最小,我們希望

所以代價函數(shù)就變?yōu)椋?/p>

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

所以問題就變成:

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

該問題最后的優(yōu)化結(jié)果是找到具有"最大間隔"(maximum margin)的劃分超平面,所以支持向量機又稱大間距分類器(large margin classifier)。那么什么是間隔? 為什么這樣優(yōu)化就可以找到最大間隔?首先,我們通過圖8-1所示的二維的0/1線性分類情況來直觀感受。

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

圖8-1 SVM Decision Boundary: Linearly separable case

直觀上,應(yīng)該去找位于兩類訓(xùn)練樣本"正中間"的劃分超平面,即圖8-1的黑色直線(二維),因為該劃分超平面對訓(xùn)練樣本局部擾動的"容忍"性最好。例如,圖中的粉色和綠色直線,一旦輸入數(shù)據(jù)稍有變化,將會得到錯誤的預(yù)測。換言之,這個劃分超平面所產(chǎn)生的分類結(jié)果是最魯棒的,對要預(yù)測數(shù)據(jù)集的泛化能力最強。而兩條藍(lán)色直線之間的距離就稱為間隔(margin)。下一節(jié)將從數(shù)學(xué)角度來解釋間隔與最大間隔的優(yōu)化原理。

8.3 Mathematics Behind Large Margin Classification

首先介紹一些數(shù)學(xué)知識。

2-范數(shù)(2-norm): 也可稱長度(length),是二維或三維空間向量長度的推廣,向量u記為||u||。例如,對于向量u = [ u1, u2, u3, u4],||u|| = sqrt(u1^2 + u2^2 + u3^2 + u4^2)

向量內(nèi)積(Vector Inner Product): 設(shè)向量a = [a1, a2, … , an],向量b = [b1, b2, … , bn],a和b的的內(nèi)積定義為:a · b = a1b1 + a2b2 + … + anbn 。向量內(nèi)積是幾何向量數(shù)量積(點積)的推廣,可以理解為向量a在向量b上的投影長度(范數(shù))和向量b的長度的乘積。

所以有:

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

其中向量上的投影長度。

所以,8.2節(jié)得到的優(yōu)化問題可以轉(zhuǎn)為如下形式:

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

分界線為,所以可知和分界線正交(垂直),并且當(dāng)時,分界線過原點(歐式空間)。為使目標(biāo)最優(yōu)(取最小值)且滿足約束,應(yīng)該盡可能大,這樣就要求間距盡可能的大。直觀的如圖8-2所示,圖左為間距較小的情況,此時的較小,為滿足約束,導(dǎo)致目標(biāo)函數(shù)變大,圖右為最大間距的情況,此時的是最大的,所以目標(biāo)可以盡可能的小。

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

圖8-2 兩種不同間距的情況

8.4 Kernels

上述的討論都是基于線性可分的樣本,即存在一個劃分超平面可以將訓(xùn)練樣本正確分類,然而現(xiàn)實世界存在大量復(fù)雜的,非線性分類問題(如4.4.2節(jié)的異或/同或問題)。Logistic回歸處理非線性問題可以通過引入多項式特征量作為新的特征量;神經(jīng)網(wǎng)絡(luò)通過引入隱藏層,逐層進化解決非線性分類問題;而SVM是通過引入核函數(shù)(kernel function)來解決非線性問題。具體做法如下:

對于給定輸出x, 規(guī)定一定數(shù)量的landmarks,記為;

將x,作為核函數(shù)的輸入,得到新的特征量,若將核函數(shù)記為similarity(),則有

,其中為一一對應(yīng);

將新的特征量替代原有特征量,得到假設(shè)函數(shù)如下:

現(xiàn)在有兩個問題,

如何選擇landmarks?

用什么樣的核函數(shù) ?

對于第一個問題,可以按照如下方式,即將訓(xùn)練集的輸入作為landmarks

所以特征量的個數(shù)與訓(xùn)練集的個數(shù)相等,即n = m,所以帶有核的SVM變?yōu)槿缦滦问剑?/p>

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

對于第二個問題,常用的核函數(shù)有線性核,高斯核,多項式核,Sigmoid核,拉普拉斯核等,現(xiàn)以常用的高斯核(Gaussian)為例。

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

高斯核具有如下性質(zhì):

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

也就是說,如果x和landmark接近,那么核函數(shù)的值也就是新的特征量將會接近1,而如果x和landmark距離很遠(yuǎn),那么核函數(shù)的值將會接近0.

是高斯核的參數(shù),它的大小會影響核函數(shù)值的變化快慢,具體的,圖8-3是一個二維情況下的特殊例子,但是所含有的性質(zhì)是可推廣的。即越大,核函數(shù)變化(下降)越緩慢,反之,越小,核函數(shù)變化越快。

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

圖8-3 參數(shù)對高斯核的影響舉例

如何選擇參數(shù)?

下面對SVM的參數(shù)對偏差和方差的影響做簡要分析:

C: 由于C和(1 /λ)正相關(guān),結(jié)合6.4.2節(jié)對λ的分析有:

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

8.5 Using a SVM

上文簡單的介紹了SVM的優(yōu)化原理以及核函數(shù)的使用方式。在實際應(yīng)用SVM中,我們不需要自己去實現(xiàn)SVM的訓(xùn)練算法來得到參數(shù),通常是使用現(xiàn)有的軟件包(如liblinear, libsvm)。

但是下面的工作是我們需要做的:

選擇參數(shù)C的值

選擇并實現(xiàn)核函數(shù)

如果核函數(shù)帶參數(shù),需要選擇核函數(shù)的參數(shù),例如高斯核需要選擇

如果無核(選擇線性核),即給出線性分類器,適用于n大,m小的情況

選擇非線性核(如高斯核),適用于n小,m大的情況

下面是需要注意的地方:

在使用核函數(shù)之前要對特征量進行規(guī)范化

并不是所有的函數(shù)是有效的核函數(shù),它們必須滿足Mercer定理。

如果想要通過訓(xùn)練得到參數(shù)C或者核函數(shù)的參數(shù),應(yīng)該是在訓(xùn)練集和交叉檢驗集上進行,,參見6.3節(jié)。

8.5.1 Multi-class Classification

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

8.5.2 Logistic Regression vs. SVMs

機器學(xué)習(xí)-8. 支持向量機(SVMs)概述和計算

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 向量機
    +關(guān)注

    關(guān)注

    0

    文章

    166

    瀏覽量

    20880
  • 支持向量機
    +關(guān)注

    關(guān)注

    0

    文章

    71

    瀏覽量

    12716
  • 機器學(xué)習(xí)
    +關(guān)注

    關(guān)注

    66

    文章

    8418

    瀏覽量

    132654
收藏 人收藏

    評論

    相關(guān)推薦

    #硬聲創(chuàng)作季 機器學(xué)習(xí):第4章:支持向量學(xué)習(xí)

    向量機器學(xué)習(xí)
    Mr_haohao
    發(fā)布于 :2022年10月25日 23:29:33

    支持向量——機器學(xué)習(xí)中的殺手級武器!

    ` 本帖最后由 訊飛開放平臺 于 2018-8-24 09:44 編輯 作為模式識別或者機器學(xué)習(xí)的愛好者,同學(xué)們一定聽說過支持向量
    發(fā)表于 08-24 09:40

    機器學(xué)習(xí)分類算法之支持向量SVM

    統(tǒng)計學(xué)習(xí)方法C++實現(xiàn)之六 支持向量(SVM)
    發(fā)表于 04-29 10:47

    基于改進遺傳算法的支持向量特征選擇

    基于改進遺傳算法的支持向量特征選擇  引言   支持向量是一種在統(tǒng)計
    發(fā)表于 02-06 10:36 ?1515次閱讀
    基于改進遺傳算法的<b class='flag-5'>支持</b><b class='flag-5'>向量</b><b class='flag-5'>機</b>特征選擇

    支持向量的多組分氣體實驗

    本文針對大規(guī)模高維氣體分析樣本難以計算的問題,提出一種提升的支持向量學(xué)習(xí)方法。該方法將支持
    發(fā)表于 07-08 11:38 ?14次下載
    <b class='flag-5'>支持</b><b class='flag-5'>向量</b><b class='flag-5'>機</b>的多組分氣體實驗

    基于支持向量(SVM)的工業(yè)過程辨識

    支持向量應(yīng)用到典型的時變、非線性工業(yè)過程 連續(xù)攪拌反應(yīng)釜的辨識中, 并與BP 神經(jīng)網(wǎng)絡(luò)建模相比較, 仿真結(jié)果表明了支持向量
    發(fā)表于 03-30 16:12 ?42次下載
    基于<b class='flag-5'>支持</b><b class='flag-5'>向量</b><b class='flag-5'>機</b>(SVM)的工業(yè)過程辨識

    基于機器學(xué)習(xí)支持向量SVM的天氣識別和預(yù)報

    機器學(xué)習(xí)中有監(jiān)督學(xué)習(xí)模型支持向量SVM來進行強對流天氣的識別和預(yù)報。強對流天氣的發(fā)生可以看作
    發(fā)表于 11-10 17:46 ?1次下載

    關(guān)于支持向量(SVMs)

    支持向量(Support Vector Machine: SVM)是一種非常有用的監(jiān)督式機器學(xué)習(xí)算法
    的頭像 發(fā)表于 04-02 08:52 ?4200次閱讀
    關(guān)于<b class='flag-5'>支持</b><b class='flag-5'>向量</b><b class='flag-5'>機</b>(<b class='flag-5'>SVMs</b>)

    OpenCV機器學(xué)習(xí)SVM支持向量的分類程序免費下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是OpenCV機器學(xué)習(xí)SVM支持向量的分類程序免費下載。
    發(fā)表于 10-09 11:45 ?5次下載

    什么是支持向量 什么是支持向量

    支持向量,英文為Support Vector Machine,簡稱SV(論文中一般簡稱SVM)。它是一 種監(jiān)督式學(xué)習(xí)的方法,它廣泛的應(yīng)用
    發(fā)表于 01-28 16:01 ?2.2w次閱讀
    什么是<b class='flag-5'>支持</b><b class='flag-5'>向量</b><b class='flag-5'>機</b> 什么是<b class='flag-5'>支持</b><b class='flag-5'>向量</b>

    介紹支持向量的基礎(chǔ)概念

    支持向量(Support Vector Machine)是一種較知名的機器學(xué)習(xí)算法,該算法由俄羅斯數(shù)學(xué)家Vladimir Vapnik創(chuàng)立
    的頭像 發(fā)表于 04-28 09:09 ?1034次閱讀
    介紹<b class='flag-5'>支持</b><b class='flag-5'>向量</b><b class='flag-5'>機</b>的基礎(chǔ)概念

    機器學(xué)習(xí)相關(guān)介紹:支持向量(低維到高維的映射)

    根據(jù)機器學(xué)習(xí)相關(guān)介紹(9)——支持向量(線性不可分情況),通過引入松弛變量δi將支持
    的頭像 發(fā)表于 05-16 11:20 ?2157次閱讀
    <b class='flag-5'>機器</b><b class='flag-5'>學(xué)習(xí)</b>相關(guān)介紹:<b class='flag-5'>支持</b><b class='flag-5'>向量</b><b class='flag-5'>機</b>(低維到高維的映射)

    支持向量(核函數(shù)的定義)

    根據(jù)機器學(xué)習(xí)相關(guān)介紹(10)——支持向量(低維到高維的映射),支持
    的頭像 發(fā)表于 05-20 10:41 ?832次閱讀
    <b class='flag-5'>支持</b><b class='flag-5'>向量</b><b class='flag-5'>機</b>(核函數(shù)的定義)