標籤:

李宏毅機器學習2016 第十八講 支持向量機

視頻鏈接:李宏毅機器學習(2016)_演講?公開課_科技_bilibili_嗶哩嗶哩

課程資源:Hung-yi Lee

課程相關PPT已經打包命名好了:鏈接:pan.baidu.com/s/1c3Jyh6 密碼:77u5

我的第十七講筆記:李宏毅機器學習2016 第十七講 遷移學習

Support Vector Machine

本章主要講述了支持向量機的原理。

SVM有兩個特色,一個是Hinge Loss,另一個就是Kernel Method。

1.Hinge Loss

在二分類問題中,假設類標籤是1和-1。

對於第一步建立函數集來說,希望能有這樣一個函數,當f(x)大於0時輸出為1,f(x)小於0時輸出為-1。理想的損失函數想定義為出現不一致結果的次數,但是其不可微,所以考慮其他函數。

理想的函數曲線為黑色函數代表。其期望是 y^{n} f(x)的值越大越好,二者變化方向一致。

Square Loss函數曲線是紅色曲線所示,其顯然是不合理的,不能滿足 y^{n} f(x)的值越大,損失越小的要求。

Simoid+Square Loss函數是黑曲線下方的淺藍曲線所示。其是能夠滿足條件的。

Sigmoid+cross entropy如上圖黑色曲線上方的藍色曲線所示。當 y^{n} f(x)趨向於無窮大時,值就為0,是能夠滿足的。

Hinge Loss函數如上圖中紫色曲線所示。Hinge Loss的優點在於不害怕離群點。「及格就行」

相比於logistic regression,linear SVM的區別就在於損失函數的不同,logistic regression使用的是交叉熵函數而linear用的是Hinge Loss。

某些點不可微並不影響其使用梯度下降來求解。

通過化解可得到通常見到的SVM形式。

2.核方法(Kernel Method)

核方法是SVM的第二大特點。核方法的主要思想是基於這樣一個假設:「在低維空間中不能線性分割的點集,通過轉化為高維空間中的點集時,很有可能變為線性可分的」 。

Kernel Trick:定義一個核函數K(x1,x2) = <phi(x1), phi(x2)>, 其中x1和x2是低維度空間中的點(在這裡可以是標量,也可以是向量),phi(xi)是低維度空間的點xi轉化為高維度空間中的點的表示,< , > 表示向量的內積。這裡核函數K(x1,x2)的表達方式一般都不會顯式地寫為內積的形式,即我們不關心高維度空間的形式。

核函數巧妙地解決了上述的問題,在高維度中向量的內積通過低維度的點的核函數就可以計算了。這種技巧被稱為Kernel trick。

核技巧直接計算K(x,z)能夠比先進行特徵轉換再進行內積更快更高效。

常見的核函數之徑向基函數(高斯核)

常見的核函數之sigmoid核

常見的核函數匯總:

此外SVM和Deep Learning是相似的。

深度學習前幾層可能就是在做特徵轉換,接著再一個線性分類。在SVM同樣如此,基於核函數同樣能夠進行特徵轉換,在新的特徵空間中再用線性分類器進行分類。只是深度學習中的「核函數」是更加強大的。

3.總結

本章主要講解了支持向量機(Support Vector Machine,SVM)方法的兩大特點Hinge Loss核方法(Kernel Method)。

推薦閱讀:

轉載|學點演算法搞安全之SVM
機器學習實戰之準備(一)
沒想到你是這樣的「兔子」---kNN

TAG:机器学习 | SVM |