周志華《機器學習》課後習題解答系列(七):Ch6
本章概要
本章講述支援向量機(Support Vector Machine,SVM),相關內容包括:
- 支援向量分類器(SVM classifier)
支援向量(support vector)、間隔(margin)、最大間隔(maximum margin)、支援向量機(SVM)、對偶問題(dual problem)、拉格朗日乘子法;
- 核技巧(kernel trick)
特徵空間對映、高維可分、內積(inner product)、核函式(kernel function)、核矩陣(kernel matrix)半正定性、再生希爾伯特空間(RHKS)、核函式選擇、多項式核、高斯核、Sigmoid核;
- 軟間隔(soft margin)
硬間隔、軟間隔、鬆弛變數(slack variables)、替代損失函式(surrogate loss function)、
- 支援向量迴歸(SVR)
支援向量機的優劣總結
支援向量機模型的好處很多,這裡不做贅述,下面列出些在使用支援向量機方法時,需要注意的問題:
- SVM涉及到求解二次規劃,在大規模資料的訓練時會產生很大的開銷,為此常會引入一些高效演算法來應對,如採用SOM(sequential minimal optimization)來加速二次優化問題求解;
課後練習
6.1 公式推導
6.2 不同核函式對應的支援向量差別分析
6.3 SVM與BP網路、C4.5決策樹等的對比實驗
6.4 線性核SVM與LDA的關聯
考慮到線性核SVM的輸入空間與特徵空間相同,那麼取等的條件是:
這說明兩者生成的超平面相同,此時等效。
6.5 高斯核SVM與RBF網路的關聯
兩種方法均採用徑向基函式(RBF)如下:
- SVM的超平面表示為:
- RBF網路表示為:
- SVM的分類器表示為:
- RBF網路分類器表示為:
對於兩個分類器,SVM的表示式多出了偏置項,同時其係數項 ω 只與支援向量有關;RBF網路的係數項 ω 與由輸入樣本訓練得到,但是對於非支援向量對應的樣本,其 ω數值相對非常小。
6.6 SVM對噪聲的敏感分析
SVM的決策邊界(超平面)是由支援向量所確定的,即是利用相對較少的資料特徵來學得整個資料的特性。由於支援向量相對較少,其上的噪聲會對超平面的確定產生相對較大的影響。
6.7 KKT條件推導
參考書中附錄公式B.3,KKT條件即拉格朗日函式在對引數進行偏導取0計算後,為求得最優解,乘子和約束必須滿足其中之一為0的條件。
要獲取式(6.52)的完整KKT條件,只需將式(6.47~6.50)代入該式即可。
6.8 SVR實驗
基於python-sklearn工具包,線上性核和高斯核下的SVR擬合如下圖示:
可以看出,由於資料自變數與因變數間關係隨機性較強,採用SVR擬合效果不佳,(高斯核SVR的支援向量少一些);
6.9 核對率迴歸模型設計
關於核對率迴歸(KLR),可參考書p132中關於 log 損失函式下SVM與LR的比較,也可參考臺大林軒田-機器學習技法中關於KLR的slide。
簡要說明如下:
6.10 SVM改進設計
支援向量的規模與SVM計算速度息息相關,在不影響模型效能的情況下減少支援向量數目,能有效提高SVM效率。為此,一些稀鬆演算法如 1-norm SVM, Lp-SVM, 自適應Lp-SVM 被提出,給出兩篇參考文獻如下: