1. 程式人生 > >機器學習與深度學習系列連載: 第一部分 機器學習(九)支援向量機2(Support Vector Machine)

機器學習與深度學習系列連載: 第一部分 機器學習(九)支援向量機2(Support Vector Machine)

另一種視角定義SVM:hinge Loss +kennel trick

SVM 可以理解為就是hingle Loss和kernel 的組合 這裡寫圖片描述

1. hinge Loss

還是讓我們回到二分類的問題,為了方便起見,我們y=1 看做是一類,y=-1 看做是另一類

這裡寫圖片描述 他的Loss 函式是分類錯誤的次數,很顯然,這是個離散的值,不可微分,我們需要找到一個等價的Loss 這裡寫圖片描述 於是我們出各種等價Loss 函式的圖,黑色的是本身的Loss,紅色的square Loss,藍色的的是square Loss+σ\sigma函式的Loss,綠色的是corssEntropy+σ\sigma函式的Loss(注意橫座標是y

nf(x)y^{n}*f(x) 數值越大,Loss越小,說明分類越正確,可以結合前一篇的幾何意義理解)

這裡寫圖片描述

在這裡,我們引入hinge Loss,它的公式: 這裡寫圖片描述

含義是:當分類是1,y=1y=1,需要最大化0與1f(x)1-f(x)的值,f(x)>1f(x)>1,f(x)f(x) 比1越大越好; 當分類是1,y=1y=1,需要最大化0與1+f(x)1+f(x)的值,f(x)<1f(x)<-1,f(x)f(x) 比-1越x小越好 這裡寫圖片描述

所以它的Loss影象為(紫色的線段):

這裡寫圖片描述 所以 線性的SVM 的解法完全可以用 gradient decent 解: 在這裡插入圖片描述 我們的Loss 函式: 在這裡插入圖片描述 然後,這些公式是不是似曾相識: 在這裡插入圖片描述

2. Kernel

通常,我們需要對我們的資料在高維空間進行相關對映。 在這裡插入圖片描述

我們通過拉格朗日乘子法,得到最優的w是 x的線性組合 在這裡插入圖片描述 因為ana_{n}^{*}很有可能非常稀疏, 非0的ana_{n}^{*} 就是支援向量。 在這裡插入圖片描述 第一步:我們做等價轉換 在這裡插入圖片描述 在這裡插入圖片描述 第二步: 最小化Loss 在這裡插入圖片描述 我們就是要找到最適合的ana_{n}^{*} 在這裡插入圖片描述 我們甚至可以不需要知道x的向量,就可以計算與z的內積 k(x,z)k(x,z), 它就是kernel

在這裡插入圖片描述 在這裡插入圖片描述 有很多kernel的例子:Sigmoid Kernel 在這裡插入圖片描述 在這裡插入圖片描述 畫成圖: 是不是就是一個神經網路呢? 恍然所思,殊途同歸! 在這裡插入圖片描述