【算法】一个简单的支持向量机(SVM)原理
基本思想:
首先通過非線性變換將輸入空間變換到高維空間,然后在這個新空間求最優分類面即最大間隔分類面,其中通過采用核函數作為內積,間接實現了對特征的非線性變換,因此避開了在高維空間進行計算。
決策過程:
首先輸入樣本和一系列的支持向量進行相似性比較,而采用的相似度度量就是核函數,比較后的得分進行加權求和,最后根據加權求和值的大小進行類別決策。
采用不同的核函數就是采用不同的相似行度量,比如線性支持向量機就是采用歐式空間中的內積作為相似性度量。
最優分類超平面:
如圖所示, 方形點和圓形點代表兩類樣本, H 為分類線,H1, H2分別為過各類中離分類線最近的樣本且平行于分類線的直線, H1、H2上的點(xi, yi)稱為支持向量, 它們之間的距離叫做分類間隔(margin)。中間那條分界線并不是唯一的,我們可以把它稍微旋轉一下,只要不分錯。所謂最優分類面(Optimal Hyper Plane)就是要求分類面不但能將兩類正確分開(訓練錯誤率為0),而且使分類間隔最大。推廣到高維空間,最優分類線就變為最優分類面。支持向量是那些最靠近決策面的數據點,這樣的數據點是最難分類的,因此,它們和決策面的最優位置直接相關。
核函數類型:
- 線性
- 多項式
- 徑向基(RBF)
RBF函數的中心、位置、寬度、個數和連接權值都可以在SVM的訓練過程中確定。 - Sigmoid
實現的是一個三層的神經網絡,隱含層節點的個數就是支持向量的個數,也就是實現自動確定節點的個數。
LIBSVM的參數設置如下:
核函數參數:
- 《模式識別》張學工:
- 基本經驗是,先嘗試簡單的選擇,如線性核函數,結果不好時再考慮非線性核函數。
- 如果采用RBF,應該首先選用寬度較大的核,寬度越大越接近線性,然后嘗試減小寬度,增加非線性。
- 吳恩達課程:
- 如果特征數量達到和樣本數量差不多,選用LR或線性核
- 如果特征數量小,樣本數量正常,用徑向基(RBF)
- 如果特征數量小,而樣本數量很大,則要手工添加特征變成第一種情況
SVM適合小訓練集的原因:
如果增加的樣本點只是無效約束,并不會影響其最后的結果。
由于使用數據集的核矩陣(Kernel Matrix)描述樣本之間的相似性,矩陣元素的個數隨著數據規模增大成平方增長。這樣要隨著數據規模增大,SVM的計算變得無法處理。
拉格朗日乘子和對偶問題
支持向量機想得到最優分類超平面,
于是要最大化分類間隔,
也就要最小化權向量的模
在求上面這個最小值的時候,有一個不等式約束:分類決策函數x樣本類別符號>1
通過對每個樣本引入一個拉格朗日系數,將不等式約束轉為等式約束:min max L(w,b,a)
L(w,b,a) 是拉格朗日泛函,原來的解等價于對w,b求最小,a求最大,最優解在L的鞍點上取得
在鞍點處,L對w和b的偏導都為0,令L(w,b,a)對w和b求偏導為0,
將結果帶入拉格讓日函數中w和b消去,得到L的對偶問題Q(a),
通過求對偶問題的解a,可以求出原問題的解w,
通過KKT條件得到,在拉格朗日泛函處滿足:分類決策函數x樣本類別符號=1,所以已知w,可以用任何一個支持向量帶入上式,求出b。實際中通常對所有a非零的樣本求b,再求平均。
注:上面這些主要是對《模式識別》第三版,4.6節的整理,理清思路
通俗來講,對偶問題就是使求解更加高效且目標函數值不變,通過先消去w,b,得到關于α的函數,然后單獨計算 α,通過得到的α反求w,b,最后獲得超平面的參數,相比于先對α的不等式約束進行計算,對偶的方式使得計算更加便捷。
具體算法流程點這里 拉格朗日乘子細節
猜你喜歡:👇🏻
?【算法】一個簡單的決策樹(DT)原理
?【算法】一個簡單的k均值(k-means)原理
?【算法】一個簡單的主成分分析(PCA)原理
總結
以上是生活随笔為你收集整理的【算法】一个简单的支持向量机(SVM)原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑微信扫一扫在哪_13个微信隐藏技巧,
- 下一篇: php 不申明构造函数,PHP的构造函数