1. 引言
上一节我们讲了如何构建原问题的对偶问题,首先我们引入拉格朗日函数L(x,u,v)将有约束的优化问题转换为无约束的优化问题,然后对原问题的参数求导,获得使拉格朗日函数最小的拉格朗日对偶函数g(u,v),最后使得对偶函数最大的问题则成为原问题的对偶问题。
从上面的对偶问题构建方法可以看出获得对偶问题要对原问题参数极小,然后对拉格朗日乘子最大化,这样做的目的是使得转化后的对偶问题更容易求解。又因为对偶问题具有弱对偶性,即
,因此,对偶问题提供了原问题最优值的下界,如果可以满足某种条件使得二者相等,即具有强对偶性,那么这个时候我们就可以通过求解对偶问题的解来间接地获得原问题的解。
因此,上段所说的“在满足某些条件的情况下”,这所谓的“满足某些条件”就是要满足KKT条件。上一节我们也提到过Slater's condition
,可以保证对偶问题具有强对偶性。虽然该条件是一个很弱的条件,但是我们注意到该条件并未给出解的形式或者给出二者之间的联系,即原问题和对偶问题最优解的关系。同时,Slater’s Condition只是满足强对偶性的一个充分条件,但不是必要条件,即原问题的对偶问题具有强对偶性并不一定满足Slater’s Condition。而本文所要讲述的KKT条件既是在满足一些有规则的条件下,优化问题能有最优化解法的一个**必要和充分条件。
(回忆)Slater's condition
:如果原(primal)问题为凸优化问题(即:
为凸函数,
是仿射函数),同时存在至少一个可行解满足
,那么该问题的强对偶性成立,即
。
2. KKT条件定义
给定一般优化问题:
KKT条件(Karush-Kuhn-Tucker conditions)
是:
-
;
-
;
-
;
-
.
综上所述,对于具有强对偶性的优化问题,且该优化问题存在至少一个可行解,那么下列问题等价:
和
是原问题和对偶问题的最优解(
)
和
满足
条件
3. KKT条件证明
(1)必要性(Necessity)
:
如果
和
是原问题和对偶问题的最优解,且对偶问题保持强对偶性,即对偶间隙为0,那么:
第一个不等式成立的原因是,假设原问题可行解域为
,那么
。
根据上面的推导,由于不等式前后均为
,所以,所有不等号实际上都是等号。
对于第一个不等式,等号成立代表
是
的最优解,因此,0必然是
的次梯度,既证stationarity条件。
对于第二个不等式,等号成立代表
,既证complementary slackness条件。
对于primal feasibility和dual feasibility,它们是原问题和对偶问题的约束,满足条件。
综上所述,KKT条件必要性证明完毕,如果
和
是原问题和对偶问题的最优解(solution),同时对偶间隙为0,那么
和
满足KKT条件。
(2)充分性(Sufficiency)
:
如果存在
和
满足KKT条件,那么:
第一和第二个等式是由定义获得,第三个等式是根据KKT条件中的stationarity条件,即0是函数
的次梯度,因此等式必然成立,最后等式是根据KKT条件中得slackness条件获得。因此,
,该解使得对偶间隙为0,分别为原问题和对偶问题的最优解。
综上所述,既证如果
和
满足KKT条件,那么
和
是原问题和对偶问题的solution。
4. KKT条件实例:KKT条件在SVM问题中的应用
我们将SVM问题记为:
引入对偶变量
构建拉格朗日函数:
因为原问题满足Slater‘s condition,同时
和
是可微的,因此,该问题满足KKT条件。应用stationarity条件,即分别对
求导,我们可以获得:
-
;
-
;
-
;
应用slackness条件,我们可以获得:
-
;
-
;
综上所述,我们获得以下结论:
-
,决定支持向量分割平面;
-
,如果
,因为二者乘积必为0;
我们将满足
的点称为
支持向量(support points or support vectors)
,落在分类边界上或以里;对于
的点,
,说明SVM分类器可以很好划分该样本,即该样本远离分类边界,实际上使得
,意味着对分类不起作用。
因此,对于支持向量:
- 如果
,意味着
落在分类边界上,此时,
,因为,
,同时,
;
- 如果
,意味着
落在相反的分类边界上,此时,
。
综上所述,KKT条件解释了为什么SVM分类器仅由支持向量决定,跟远离分界面的点无关,如下图。所以,KKT条件并不能保证给我们找到最优解的方法,但是可以很好的解释原问题上的一些性质,如支持向量。
![](https://www.52ml.net/wp-content/uploads/2016/11/supportpoint.png)