机器学习面试——分类算法SVM
?
1、什么是硬間隔和軟間隔?
當訓練數據線性可分時,通過硬間隔最大化,學習一個線性分類器,即線性可分支持向量機。
當訓練數據近似線性可分時,引入松弛變量,通過軟間隔最大化,學習一個線性分類器,即線性支持向量機。
(體外話:當訓練數據線性不可分時,通過使用核技巧以及軟間隔最大化,學習非線性支持向量機)
2、軟間隔加入的松弛變量是如何求解出來的?
線性不可分意味著不能滿足函數間隔大于等于1的約束條件,為了解決這個問題,可以對每個樣本點引入一個松弛變量(>=0①),使得函數間隔加上松弛變量大于等于1.
? ? ? ? ? ? ? ? ?②
目標函數為:
? ? ? ? ? ? ? ? ? ? ? ?③
C>0是懲罰參數,C值的大小決定了誤分類的懲罰強弱,C越大,懲罰越強。
其中,①②③是軟間隔的目標函數及其約束條件,其余求解過程和硬間隔見下面)一致。
3、SVM為什么采用間隔最大化?
使它區別于感知機,SVM的基本想法是求解能夠正確劃分訓練數據集并且幾何間隔最大的分離超平面,對于線性可分的數據集而言,線性可分分離超平面有無窮多個,但是幾何間隔最大的分離超平面是唯一的,意味著以充分大的確信度對數據進行分類,特別地離超平面較近的點。此時的分離超平面所產生的分類結果是最魯棒的,對未知實例的泛化能力最強。
4、為什么SVM要引入核函數?
當樣本在原始空間線性不可分時,可將樣本從原始空間映射到一個更高維的特征空間,使得樣本在這個特征空間內線性可分。引入對偶問題以后,所求解的對偶問題中,無需求解真正的映射函數,而需知道其核函數。一方面數據變成了高維空間中線性可分的數據,另一方面不需要求解具體的映射函數,只需求解具體的核函數就行。
核函數(兩個函數的內積)定義:設是輸入空間,H是特征空間,如果存在一個從輸入空間到特征空間的映射,
使得對所有,函數K(x,z)滿足條件
則K是核函數,是映射函數,是函數的內積。因此,可以直接通過計算K,而不計算映射函數。
5、SVM核函數之間的區別?
線性核:主要是用于線性可分場景,參數少,訓練快
多項式核:可以實現將低維的輸入空間映射到特征空間,但是參數多,并且當多項式的階數較高時,核矩陣的元素值將趨于無窮大或者無窮小,計算復雜度較高。
高斯核(RBF):局部性強的核函數,參數比多項式核要少,訓練場景非常依賴于參數(交叉驗證來尋找合適的參數)。
核函數的選擇技巧:?
- 利用專家的先驗知識預先選定核函數;
- 采用Cross-Validation方法,即在進行核函數選取時,分別試用不同的核函數,歸納誤差最小的核函數就是最好的核函數.如針對傅立葉核、RBF核,結合信號處理問題中的函數回歸問題,通過仿真實驗,對比分析了在相同數據條件下,采用傅立葉核的SVM要比采用RBF核的SVM誤差小很多.
- 采用由Smits等人提出的混合核函數方法,該方法較之前兩者是目前選取核函數的主流方法,也是關于如何構造核函數的又一開創性的工作.將不同的核函數結合起來后會有更好的特性,這是混合核函數方法的基本思想.
- 參考七月在線的答案
6、為什么SVM對缺失數據敏感?
因為SVM沒有處理缺失值的策略,而SVM希望樣本在特征空間中線性可分,所以特征空間的好壞對SVM的性能很重要,缺失特征數據將影響訓練結果的好壞。
7、為什么目標函數要轉化為對偶問題求解?
- 對偶問題將原始問題中的約束轉為了對偶問題中的等式約束
- 方便核函數的引入
- 改變了問題的復雜度。由求特征向量w轉化為求比例系數a,在原始問題下,求解的復雜度與樣本的維度有關,即w的維度。在對偶問題下,只與樣本數量有關。
8、SVM如何解決樣本傾斜?
給樣本較少的類別較大的懲罰因子,提高這部分樣本的重視程度。
9、SVM的損失函數
是合頁損失函數(hinge loss),是(wx+b),y是類別值
原理推導:
一、硬間隔支持向量機
支持向量機的學習策略是間隔最大化,可形式化為一個求解凸二次規劃問題,也等價于正則化的合頁損失函數的最小化問題。
學習的目標是在特征空間找到一個分離超平面,能將實例分到不同的類,分離超平面的對應方程是
,因為分離超平面有無窮多個,需要幾何間隔最大化來確定唯一解。由于SVM是二分類,因此,y=-1代表是負例,y=1代表是正例。
支持向量(如圖H1和H2線上的點):樣本中距離超平面最近的點稱為支持向量。使得約束條件成立。
間隔:H1和H2之間被稱為間隔
函數間隔:可以代表分類預測的正確性及確信度
一個點距離分離超平面的遠近可以表示分類預測的確信程度。能夠表示點x距離超平面的遠近,與y的符號是否一致能夠表示分類是否正確,可以表示分類的正確性和確信程度(也是函數間隔)。
幾何間隔:
如果成比例改變w,b的值,超平面沒有改變,函數間隔卻變為原來的2倍,因此,我們需要對w加些約束,如規范化,,此時函數間隔成為幾何間隔。即
假設y=-1,點A與超平面的距離是,則
假設y=+1,點A與超平面的距離是,則
則幾何間隔為
對于訓練數據集來說,分離超平面(w,b)是所有樣本點的幾何間隔之最小值,即
如果超平面參數w,b改變,函數間隔也成比例改變,但是幾何間隔不變。
目標函數為幾何間隔最大化,則
?
由下述函數間隔和幾何間隔的關系,可將目標函數進行變化:
目標函數變為
由于函數間隔變化并不影響最優問題求解,因此,將函數變為,并將目標問題轉成對偶問題,(將問題簡單化,從求解w權重值,到求解a值)。
?
應用拉格朗日對偶性,通過求解對偶問題得到原始問題的最優解。優點是對偶問題往往更容易求解且能自然引入核函數,進而推廣到非線性分類問題(詳解看問題7)。
是拉格朗日乘子,求解方程組(條件極值的解法),令L對w,b的偏導為0:
將結果帶回L,就可以得到
求對的極大,
KKT條件:
二、軟間隔支持向量機
在現實任務中,樣本的不確定性不能正好將樣本線性可分,為了提升模型的泛化能力,引入軟間隔來允許支持向量機在一些樣本上出錯。
線性不可分意味著某些樣本點不能滿足函數間隔大于等于1的約束條件,可以為每個樣本點引入一個松弛變量(大于0),使得函數間隔加上松弛變量大于等于1,則目標函數變為:
因為松弛變量是非負的,要求間隔可以小于1,當樣本點的間隔小于1時,我們放棄了對這些點的精確分類,使得模型有一定的容錯能力。
- 離群的樣本點是有值的松弛變量(松弛變量越大,離群點越遠),沒離群的點的松弛變量等于0。
- 懲罰因子C決定了對離群點帶來損失的重視程度,C越大,懲罰越大,對離群點的要求越嚴。
計算步驟和硬間隔一樣:
?KKT條件:
?三、非線性SVM
當線性不可分時,將樣本從原始空間映射到一個更高維的特征空間,使得樣本在這個特征空間內線性可分。常見核函數有:
?所求解的對偶問題中,無需求解真正的映射函數,而需知道其核函數。目標函數化簡為:
?四、序列最小最優算法(SMO)
SMO是一種啟發式算法,用來求解二次規劃問題。基本思路是:如果所有變量的解都滿足此最優化問題的KKT條件,那么最優化問題的解就得到了。算法包含兩個部分:求解兩個變量二次規劃的解析方法和選擇變量的啟發式方法。
- 選取一對需更新的變量和
- 固定?和以外的參數,求解式獲得更新后的?和
總結
以上是生活随笔為你收集整理的机器学习面试——分类算法SVM的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: vs2019新建android生成app
- 下一篇: Java 计算两点坐标距离