李宏毅機器學習2016 第十八講 支持向量機
視頻鏈接:李宏毅機器學習(2016)_演講?公開課_科技_bilibili_嗶哩嗶哩
課程資源:Hung-yi Lee
課程相關PPT已經打包命名好了:鏈接:https://pan.baidu.com/s/1c3Jyh6S 密碼:77u5
我的第十七講筆記:李宏毅機器學習2016 第十七講 遷移學習
Support Vector Machine
本章主要講述了支持向量機的原理。
SVM有兩個特色,一個是Hinge Loss,另一個就是Kernel Method。
1.Hinge Loss
在二分類問題中,假設類標籤是1和-1。
對於第一步建立函數集來說,希望能有這樣一個函數,當f(x)大於0時輸出為1,f(x)小於0時輸出為-1。理想的損失函數想定義為出現不一致結果的次數,但是其不可微,所以考慮其他函數。
理想的函數曲線為黑色函數代表。其期望是 f(x)的值越大越好,二者變化方向一致。
Square Loss函數曲線是紅色曲線所示,其顯然是不合理的,不能滿足 f(x)的值越大,損失越小的要求。
Simoid+Square Loss函數是黑曲線下方的淺藍曲線所示。其是能夠滿足條件的。
Sigmoid+cross entropy如上圖黑色曲線上方的藍色曲線所示。當 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)。
推薦閱讀: