机器学习技法(3)--Kernel Support Vector Machine
根據上一次推導出來的問題:
從計算的角度來說,如果維度太大,向量z的內積求解起來非常的耗時耗力。
我們可以把這個過程分拆成兩個步驟,先是一個x空間到z空間的轉換Φ,再在z空間里做內積。如果能把這兩個步驟合起來算得快一點的話就可以避開這個大計算量。
x和x'轉換了再做內積:
這樣的方法可以算得比較快,因為直接在x空間內計算就好了,不用在z空間計算:
而這樣的轉換叫做kernel function:
這個kernel在SVM里怎樣應用呢?
可見,kernel trick是一個避免了在高緯度空間進行計算的方法。根據上圖的替代,得出了kernel SVM:
而且,kernel SVM在做prediction的時候只需要SV就可以了。
下面介紹更多的其他形式的二項式轉換的kernel:
上面的放縮可以提煉成更加通用的形式:
只要稍微改一下kernel,點對我們要找的線的距離也會隨之改變(distance/margin),SV也會跟著改變。所以kernel也要仔細選擇。
從2次項kernel,往高次項kernel推導:
不管是什么樣的維度,kernel的好處都是適用的:
kernel做1維轉換的時候:
這樣簡單的轉換用原來的方法解決就好了。
那如果這個維度是無限大呢?
上圖證明了無限多維的kernel也是可行的。所以引出了Gaussian kernel:
把它代入到SVM里:
得到了中心在SV上的線性函數。所以高斯kernel的本質是:
下面比較一下不同kernel的優缺點:
linear kernel
polynomial kernel
Gaussian kernel
其他kernel的介紹:
kernel代表了向量的內積,也就是向量的相似性。kernel必須具備兩個特質,一個是對稱性,另一個是半正定。
總結:
?
轉載于:https://www.cnblogs.com/cyoutetsu/p/5920629.html
總結
以上是生活随笔為你收集整理的机器学习技法(3)--Kernel Support Vector Machine的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: datagrid后台分页js.js
- 下一篇: .net 刷新页面防止表单二次提交