支持向量機原理詳解(四): KKT條件(Part I)
本文內容:
- KKT條件
- SVM原問題的KKT條件
- ,支持向量
- 對偶問題中最優解 的計算
對於有等式約束的優化問題,可以由拉格朗日乘子法得到極值點。那麼對於有不等式約束的優化問題,最優解應該滿足什麼樣的條件呢?
這就是本文要介紹的KKT條件,也是後續要介紹的序列最小最優化(sequential minimal optimization, SMO)演算法的前提。
關於SVM形成的優化問題和對偶問題等,可參考前文:
支持向量機原理詳解(一): 間隔最大化,支持向量
支持向量機原理詳解(二): 拉格朗日對偶函數,SVM的對偶問題
支持向量機原理詳解(三): 核函數與非線性SVM
<對前文的補充>
前文提到,當原問題為凸優化問題且滿足一定的約束準則時,強對偶性成立。Convex Optimization一書的5.3.2節給出了證明過程。
此外,Convex Optimization的5.4節還從多個角度給出了拉格朗日對偶的解釋,其中,5.4.1節的極大極小描述(max-min characterization)也是李航的《統計學習方法》附錄C所採用的描述。
7. KKT條件(Karush–Kuhn–Tucker conditions, KKT conditions)
在優化問題中,KKT條件非常重要。現參考Convex Optimization的5.5.2和5.5.3節來介紹KKT條件。
記標準優化問題(原問題):
假設目標函數 和約束函數 都是可微(differentiable)的(定義域為開集,這一點很重要)。(暫不假設原問題 為凸優化問題。)
拉格朗日函數:
其中, 分別為不等式約束和等式約束的拉格朗日乘子;相應地,向量 和 稱為問題的對偶變數或拉格朗日乘子向量。
拉格朗日對偶函數:
對偶問題:
記 和 分別是原問題 和對偶問題 的一對最優解;假設強對偶性成立(原對偶問題有相同的最優值),則有如下一組重要的結論:
(2-1)~(2-5)式稱為KKT條件(Karush–Kuhn–Tucker conditions, KKT conditions)。
下面對這5個條件逐個進行解釋。
首先,式(2-1)和(2-2)分別是原問題 的不等式約束和等式約束,最優解當然應該滿足;
式(2-3)是對偶問題 的不等式約束,稱為對偶可行。(當 時, ,對偶函數才能給出原問題最優值的下界。)
式(2-4)稱為互補鬆弛性(complementary slackness),其推導過程如下:
其中,
- (3-1):因為強對偶性成立,對偶間隙為0;
- (3-2):拉格朗日對偶函數在 處的取值;拉格朗日對偶函數為拉格朗日函數對 取最小值(嚴格來說是下確界 );
- (3-3):因為函數的最小值當然不會超過其定義域內任意一點的函數值,所以也就不超過 處的函數值;
- (3-4):因為有(2-1)和(2-2)成立,所以(3-3)式的後面兩個求和項都不會超過0,也就有(3-4)成立。
顯然,因為 ,所以(3-3)和(3-4)中的兩個不等號都應該取等號,由此可以得到以下兩個重要的結論:
其一,由(3-3)=(3-4),即
因為 ,所以有
又因為 , ,所以 ,即(4)中求和的每一項都小於等於0,所以每一項都應該等於0,即有
也就是互補鬆弛性(2-4)。這意味著,如果 ,則 ;如果 ,則 。
其二,由(2-3)=(2-4),即
說明 是 的最小值點。因此, 在處的梯度必須為 (定義域為開集),也就得到(2-5)式:
至此,(2-1)~(2-5)式的由來已解釋。
對目標函數和約束函數可微,且強對偶性成立的優化問題(無論原問題是否是凸優化問題),KKT條件是最優解的必要條件,即原對偶問題的任意一對最優解都必須滿足KKT條件。
<凸優化問題的KKT條件>
凸優化問題指問題 中目標函數和不等式約束函數為凸函數,等式約束函數為仿射函數。
若原問題為凸優化問題,且目標函數和約束函數可微,則滿足KKT條件的點也是原對偶最優解;也就是說,此時KKT條件不僅是必要條件,同時也是最優解的充分條件。
即,若 和 滿足KKT條件:
則 和 分別是原問題 和對偶問題 的一對最優解,對偶間隙為0。
必要性前面已證,下面來看充分性。
- (5-1)和(5-2)分別為原問題的不等式約束和等式約束,保證解可行;
- (5-3)為對偶可行條件;因為目標函數和不等式約束為凸函數,而等式約束為仿射函數(既凸又凹),所以拉格朗日函數 可看作一組凸函數的非負加權和,因此也是凸函數;
- (5-4)為互補鬆弛條件;
- (5-5)為梯度為零的條件: 在 處的梯度為 ;因為 是可微凸函數,所以 是其最小值點(Convex Optimization 4.2.3節)。
所以有
其中,
- 式(6-1)是拉格朗日對偶函數在 處的取值;
- 式(6-2)是拉格朗日函數的定義;
- 式(6-3)是因為互補鬆弛條件和等式約束。
(6-1)~(6-3)式說明對偶間隙為0,所以 和 分別是原對偶問題的一對最優解。
<另一種表述>
若原問題為凸優化問題,目標函數和約束函數可微,且滿足Slaters condition,則KKT條件是最優性的充要條件。
[註:結論 和之前的結論 在表述上有點區別,可能是因為這裡假設事先不知道有點滿足KKT條件,所以需要Slaters condition來保證最優解可以達到。]
8. SVM原問題的KKT條件
在介紹完KKT條件後,讓我們先從原問題的角度來看SVM的KKT條件。
線性SVM形成的優化問題(原問題)為:
其中,優化變數為 。只有不等式約束,沒有等式約束。
原問題是凸優化問題(凸二次規劃),所以KKT條件是最優解的充要條件。
拉格朗日函數為:
由(2-1)~(2-5)式,列出問題 的KKT條件為:
式(8-1)~(8-9)是問題 的最優解的充要條件。為簡化表示,這裡最優解未加星號。
其中,
- (8-1)和(8-2)分別為原問題的不等式約束(7-1)和(7-2);
- (8-3)和(8-4)為對偶可行條件;
- (8-5)和(8-6)為互補鬆弛條件;
- (8-7), (8-8)和(8-9)為梯度為零的條件。
<關於 ,支持向量>
前文講到,線性SVM的決策函數為:
SVM訓練完成後,只需保留 的樣本(所謂的支持向量)的特徵和標籤,即可用於新數據的分類。現在,我們從SVM的KKT條件來看看 不同的取值分別對應哪些樣本,哪些向量是支持向量。
假設解優化問題 得到原對偶問題的最優解分別為 和 ,為了方便,以下省掉星號,簡記為 和 ,則最優解滿足KKT條件(8-1)~(8-9)式。當 取值不同時, 和 的取值也不同,具體可分為以下三種情況來討論:
(1)若 ,則
說明樣本 到分離超平面的函數間隔不小於1。
(2)若 ,則
說明樣本 到分離超平面的函數間隔等於1,樣本位於間隔邊界上。
(2)若 ,則
說明樣本 到分離超平面的函數間隔不超過1。當 的取值不同時,樣本的函數間隔 的取值也不同,具體地:
- 當 時, ,對應間隔邊界上的樣本;
- 當 時, ,對應和分離超平面函數間隔小於1的樣本;
- 當 時, ,對應位於分離超平面上的樣本;
- 當 時, ,對應被誤分類的樣本。
注意到 式中各步其實倒過來推也成立,所以實際上是充要條件(此處類似於文獻[6], page 5關於對偶問題的相應結論):
支持向量即 和 的樣本。相對於整個數據集而言,支持向量往往只佔一小部分。
<對偶問題中最優解 的計算>
記原對偶問題的最優解分別為 和 ,則通過對偶問題解SVM,得到分離超平面的法向量的最優解為[見KKT條件(8-7)]:
選擇所有 的樣本(支持向量),可由(12)式計算 。但是關於 的計算我們還沒有討論過。現在在KKT條件的基礎上,來看看對偶問題中 的計算。
由前面的推導可知,對於 的樣本,有 成立。又因為 ,所以有
這告訴我們,任選一 的樣本,即可由(13)式計算 。在實際計算中,往往對所有 的樣本計算 ,然後取平均值(參考文獻[3], page 136)。
(參考文獻[4], pages 109, 112:原問題對 的解唯一,但對 的解並不唯一,存在於一個區間,所以需要取平均值。關於原問題對 的解可能不唯一,參考文獻[5] 5.3.1節, page 175開始,給出了證明。)
需要注意的是,優化問題 是基於線性SVM得到的;對於非線性SVM,需要在對偶問題中引入核函數。後續,我們將從SVM對偶問題的角度再來看KKT條件。
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] 鄧乃揚,田英傑,數據挖掘中的新方法——支持向量機,科學出版社,北京,2004年。
[6] John C. Platt. Sequential minimal optimization: A fast algorithm for training support vector machines. Technical Report MSR-TR-98-14, Microsoft Research, 1998.
推薦閱讀: