前導:svm的推導:
本篇blog將介紹svm的實現。
//更新斷斷續續,有空就填坑,沒空就先留坑。
smo的引入
svm最後會轉化到乙個二次優化問題,這個東西可以使用牛頓法或梯度下降法之類的方法解決,但是當樣本數量較多的時候執行起來顯得較為低效。
所以2023年有人提出了一種專門用於解決svm的演算法,叫做序列最小最優化演算法,也就是smo演算法。
二次規劃問題
svm最終被我們轉化為了這樣乙個二次規劃問題
我們要最小化g(λ)=(σσλi*λj*yi*yj*(xi*xj))/2-σλi
其中有約束條件σλi*yi=0
還有c>=λi>=0
smo演算法的簡單步驟
我們現列出smo的步驟,下面再進行推導
1、選取向量λ的兩個維度,記做λ1和λ2。
2、將λ1和λ2設為變數,其它設為常數,將原問題轉化為乙個雙變數最優化問題。
3、求解該雙變數最優化問題,並更新λ。
4、如果滿足收斂就跳出,不然重複1。
最優化函式
我們提取出兩個變數λ1和λ2,列出函式
w(λ1,λ2)=(k11*λ1^2)/2+(k22*λ2^2)/2+y1*y2*k12*λ1*λ2-(λ1+λ2)+y1*λ1*σyi*λi*k1i+y2*λ2*σyi*λi*k2i
其中λ1y1+λ2y2=-σλiyi
且0<=λi<=c i=1,2
λ1y1+λ2y2=-σλiyi
是乙個雙變數方程,我們將λ1用λ2表示得到λ1=-y1*(λ2y2+σλiyi)
然後帶回w(λ1,λ2),可以得到乙個只含λ2的函式。
對於這個函式可以直接求極值,並得到對應的λ1和λ2,然後帶回更新λ。
經過一波推導可以得到
λ2『=λ2+y2*(e2-e1)/n
其中n=k11+k22-2*k12
ei=g(xi)-yi=(σaj*yj*k(xi,xj))-yi ei表示**值與真實值的差
//具體推導過程以後有空再回來寫吧
//留坑,之後填
機器學習總結6 支援向量機 SVM
1.july大神的支援向量機通俗導論 理解svm的三層境界 2.台灣大學 機器學習技法 第一講到第六講。台灣大學的 機器學習基石 和 機器學習技法 這兩門課真的值得用心去看看的。關於kkt條件,當對偶問題的解滿足kkt條件時,就可以說對偶問題的解和原始問題的解相同,同時都是最優解。問題來了,在對偶問...
機器學習(5) 支援向量機 SVM(一)
線性可區分 svm support vector machine 考慮如下分類問題 可以看到,黑色和白色的點分別為兩類,那麼可以在平面找一條線,將兩種點分割在直線的兩端,如圖的藍色和紅色的直線就是例子。這兩個直線對資料集表現的都很好,不像綠色的線甚至無法分清訓練資料的類別。那麼對於新來的資料,我們可...
機器學習筆記(二 支援向量機)
本次筆記基於mooc平台浙江大學的機器學習課程 對於乙個訓練樣本集,i 1 n,若存在 w,b 使得使得滿足下式,則是線性可分問題。要求這樣的乙個超平面 在二維平面中是一條直線 則要滿足以下公式 證明過程如下 首先要確認兩個事實,即 和 則可以根據線性可分問題的滿足式,用a來縮放 w,b 使得找到某...