支持向量機原理詳解(五): KKT條件(Part II)
本文內容:
- SVM對偶問題的KKT條件
- 關於 ,SMO的停機條件
前文從原問題的角度推導了SVM的KKT條件:支持向量機原理詳解(四): KKT條件(Part I)。
本文將推導SVM對偶問題的KKT條件(也是SMO演算法的停機條件)。
9. SVM對偶問題的KKT條件
SVM的對偶問題為:
其中,目標函數為二次函數,優化變數 為 維向量, 為訓練集的樣本數; 為 階對稱矩陣,對於線性SVM,其 行 列的元素為 ;對於非線性SVM, , 為核函數。
問題 中的目標函數是用矩陣和向量表示的,為了方便理解求梯度,將其展開寫成標量的和,其中
所以問題 又可寫成如下標準形式:
其中,不等式約束(3-1)和(3-2)即(1-1),等式約束(3-3)即(1-2)。
<對偶問題 為凸優化問題?>
這個問題看起來似乎有點多餘,但是我們不妨考慮一下。
問題 是否是凸優化問題,關係到KKT條件是否是其最優解的充要條件。
結論是:當 為正定核時,問題 是凸優化問題([4], 第124頁)。
個人認為,可以從兩個角度來理解:
1. 無論原問題是否是凸優化問題,拉格朗日對偶函數都是凹函數,拉格朗日對偶問題都是凸優化問題(max一個凹函數)([1] Convex Optimization, page 223)。
需要注意的是,我們是直接在對偶問題中引入核函數,進而將SVM擴展到非線性可分數據集的。換句話說,我們直接將線性SVM的對偶問題中的向量點積替換為核函數,得到了對偶問題 ,而沒有從非線性SVM的原問題開始推導。
為確保對偶問題 是合理的,現在我們考慮一下非線性SVM的原問題:
在問題 中,將 維輸入空間中的樣本 映射為 維特徵空間中的 ,同時 變為 維向量,得到非線性SVM的原問題;如果 是成立的( 是正定核),那麼對偶問題不出意外應該是問題 ,所以 作為對偶問題應該是凸優化問題。
2. 目標函數為二次函數,若 為半正定矩陣(記做 ),則目標函數是凸函數;當 正定時(記做 ),目標函數嚴格凸。([1] Convex Optimization, page 71。)
根據定義,要證明 為半正定矩陣,需證明 對任意 都成立。
,有
若定義一個新的向量 ,則
上式類似於將(2)式倒過來推。其中,矩陣 為核函數 的Gram矩陣,其 行 列的元素 ;若 為正定核,則 半正定,也就是說
所以當 為正定核時, 為半正定矩陣,目標函數為凸函數,又因為不等式約束函數均為仿射函數,所以對偶問題是凸二次規劃問題。
另一種證明方法:
若 為正定核,則 ,所以
所以 為半正定矩陣。
<對偶問題 的KKT條件>
凸優化問題 的目標函數(二次函數)和約束函數(仿射函數)可微,所以KKT條件是最優解的充要條件。(Slaters condition應該是滿足的,存在嚴格可行點。)
拉格朗日函數為:
其中, 分別為不等式約束(3-1)和(3-2)的拉格朗日乘子, 為等式約束(3-3)的拉格朗日乘子。此處拉格朗日乘子所用的字母與前文無關。
KKT條件中梯度為 的條件:
為簡單表示,記 ,則
這裡 表示函數 對樣本 的輸出。
[個人理解: 可類比 ,而 可理解為特徵空間中樣本 到分離超平面的函數間隔。]
列出問題 的KKT條件如下:
為簡化表示,這裡最優解未加星號。
其中,
- (5-1)和(5-2)分別為問題 的不等式約束和等式約束;
- (5-3)和(5-4)為對偶可行條件;
- (5-5)和(5-6)為互補鬆弛條件;
- (5-7)為(4)式,梯度為 的一階條件。
<關於 ,SMO的停機條件>
John Platt於1998年提出了序列最小最優化(sequential minimal optimization, SMO)演算法(見參考文獻[5],後文會介紹),用於在數據集較大時訓練SVM。
SMO演算法的停機條件之一是:
然而,
- Platt並沒有在這篇文章中解釋(6)式的由來,尤其是這個等價符號 ;可能是因為作者認為非常簡單,不需要解釋。。。原文是The KKT conditions for the QP problem (...) are particularly simple...
- 同樣,文獻[4](李航,統計學習方法)第128頁給出了這個條件,也沒有具體推導;
- 文獻[6]第330頁,將(6)式作為停機準則,不過並沒有採用等價符號。
下面我們來對(6)式進行簡單的推導。
KKT條件(5-1)~(5-7)式是問題 的最優解的充要條件。當最優解 取值不同時, 的取值也不同,分三種情況討論:
(1)若 ,則
不過Platt的文章中使用的是等價符號 ,所以我們反過來推導試試:
若 ,則 。(這裡可能不太嚴謹。)
也就是說, 。
(2)若 ,則
反之,若 ,則 。(這裡倒是沒問題。)
也就是說, 。
(3)若 ,則
反之,若 ,則 。(這裡同樣可能不太嚴謹。)
也就是說, 。
綜上即得到(6)式。
後續將詳細介紹用於訓練SVM的SMO演算法。
To be continued...
參考文獻
[1] Stephen Boyd and Lieven Vandenberghe. Convex Optimization. Cambridge University Press, 2004.
中文譯本:凸優化。 Stephen Boyd and Lieven Vandenberghe 著。 王書寧,許鋆,黃曉霖譯。清華大學出版社,北京,2013年。
[2] C. Cortes and V. Vapnik. Support-Vector Networks. Machine Learning, 20:273–297, 1995.
[3] Christopher J. C. Burges. A Tutorial on Support Vector Machines for Pattern Recognition. Data Mining and Knowledge Discovery, 2, 121-167, 1998.
[4] 李航,統計學習方法,清華大學出版社,北京,2012年。第7章。
[5] John C. Platt. Sequential minimal optimization: A fast algorithm for training support vector machines. Technical Report MSR-TR-98-14, Microsoft Research, 1998.
[6] 鄧乃揚,田英傑,數據挖掘中的新方法——支持向量機,科學出版社,北京,2004年。
推薦閱讀: