支持向量機(SVM)課前准備(二)--KKT條件


Karush–Kuhn–Tucker conditions

接第一節,拉格朗日乘子法https://www.cnblogs.com/super-yb/p/10705789.html

我先直接給出公式(別跑!),然后慢慢解釋每一條內容,歡迎批評指正!

我們優化的目標是:

 

 

其中,KKT條件如下:

 

 

公式1、2、3不多解釋。

公式4、5,通過一個簡單例子說明:

gi添加一個 ≥0 的松弛變量。得到

 

由此,我們將不等式轉化為等式約束,應用拉格朗日乘子法。

拉格朗日方程如下:

 

 

對方程求偏導如下:

 

 

注意紅筆寫的條件,我們會稍后解釋。

 

那么現在開始解方程組

首先考慮 式5,

當u1=0,a1≠0時,即 g1 對f(x)無約束

當u1≠0,a1=0時,即 g1 對f(x)有約束,且根據式3可知, g1 也等於0。

式6同理。注意,不等式對f(x)有約束效果時,不等式等於零。

 

此時,方程組簡化成

推廣,對於多個不等式約束,有 

 

上述不等式稱之為KKT條件,與本文一開始略有不同的是沒有了等式的約束(不用在此糾結,我們關心的是不等式的約束問題),其中uj稱之為KKT乘子

最后利用幾何的角度說明,為什么在極值點處KKT乘子大於等於零?


其實用一個不等式約束很好理解,類似拉格朗日乘子法,

f(x)的負梯度與g(x)的梯度同向,所以u1≥0.

 

現增加一個不等式約束。

 將式1用梯度表示並移項,

x*表示極值點。

那么,此時f(x)的負梯度可以表示成所有有效約束條件在該點梯度的線性組合,梯度為向量,且與等高線垂直,有效指的是該約束條件(不等式)對應的KKT乘子。

 

如圖,極值點XK一定落在g1(X)=0和g2(X)=0兩平面的交線上,且點XK處f(x)的負梯度可以為g1(X)和g2(X)梯度的線性組合。考慮兩種情況:

 

 注意,由於約束條件為不等式,所以極值點的可行域為下半平面。

當在b情況時,(ui小於0)在可行域C值可以變化,所以這種情況極值點不是最優。如圖

 

在a情況下,ui≥≥0,當C發生變化時,約束條件破壞,即該點為局部最優點。

接下一節感知機

 

參考:https://www.matongxue.com/madocs/987.html

https://zhuanlan.zhihu.com/p/26514613

https://en.wikipedia.org/wiki/Karush%E2%80%93Kuhn%E2%80%93Tucker_conditions

https://www.cnblogs.com/liaohuiqiang/p/7805954.html

https://www.cnblogs.com/xinchen1111/p/8804858.html

 

最后附一個拉格朗日對偶問題講的很好的博文

 https://www.cnblogs.com/ooon/p/5723725.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM