機器學習 --- 拉格朗日乘子法和KTT條件
本篇文章主要為之後的支援向量機打下數學基礎
一、拉格朗日乘子法的目的
拉格朗日乘子法將原始的約束問題轉換成求解無約束優化問題。
對形如:
通過拉格朗日乘子法轉化成:
通俗地說就是轉換目標函式,把約束條件去掉。
二、等式約束條件下的拉格朗日乘子法
在約束條件是等式的情況下,引用深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT條件對拉格朗日乘子法的直觀理解。
設想我們的目標函式 , 取不同的值,相當於投影在構成的平面(曲面)上,即成為等高線。如下圖所示,目標函式是 ,這裡 是標量,虛線是等高線。假設約束函式 ,在 構成的平面或者曲面上是一條曲線。現假設 與等高線相交,這裡的交點就是既滿足了等式約束條件和目標函式可行域的值,但一定不是最優值。因為相交就意味著還存在其他的等高線在該條等高線的內部或外部,使得新的等交線與目標函式的交點的值更大或者更小。只有等高線與目標函式的曲線相切的時候,可能取得最優值,如下圖所示,即等高線和目標函式得曲線在該點得法向量必須有相同得方向
有上面的理解,設最優點 ,則有 使得:
在約束條件是等式的情況下,定義拉格朗日函式:
觀察(2)式可以發現對 的偏導數並置零,得到(1)式。因此可以將有等式約束的優化問題,通過(2)式改寫成無約束優化問題。
三、不等式約束下的KKT條件
現在考慮含有不等式約束的優化條件。
當不等式約束 ,此時的最優點 要麼在 區域內,要麼在 上。對於 的情形下,約束條件不起作用,此時是一個無約束的優化問題,可以直接通過
四、對偶問題
在滿足KKT的條件下後,通過求解對偶問題來替代求解的原問題,這樣可以避免求解複雜的原問題。
在這種情況下,將目標函式,等式約束,不等式約束寫成一個方程式,若有 個等式約束和 個不等式約束,則定義拉格朗日函式:
回顧目標函式,需要 ,由拉格朗日函式,在KKT條件下, 就是 這是因為,在KKT條件下,在 , 時。觀察(3)式,此時 等價於 。
因此在滿足約束條件的情況下,原問題的最優值 :
則對偶問題的最優值 :
形式上觀察,原問題先固定 ,優化引數 ,再優化出 ,而對偶問題則是先固定 ,優化引數 ,再優化出 。
分別求出原始問題的最優值 和對偶問題的最優值 後,二者間的關係有:
證明:
又因為原始問題與對偶問題都有最優值:
所以
因此,對偶問題相當於給出了原問題一個下界。這個下界就確定了 的值。在滿足KKT的條件下, ,這就說明求解對偶問題就相當於求解了原問題。
這裡說明以下,對原始問題和對偶問題,設 和 都是凸函式, 使仿射函式(一階多項式),不等式約束 嚴格可行的,即存在 對所有 成立。則原問題和對偶問題最優解的充分必要條件是:
首先,前三個約束條件保證了原問題存在鞍點。而求解原問題的最優值就是通過求解這些鞍點得到,但是函式的鞍點可能會有很多個,而最優值是在這些中的某個鞍點。在KKT約束條件下,相當於在這些鞍點中施加約束,最終能得到一個全域性最優值。
參考文獻:
1.支援向量機通俗導論(理解SVM的三層境界) - Mac Track - CSDN部落格
3.深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT條件
4.周志華. 機器學習[M]. 清華大學出版社, 2016