SVM中的KKT条件和拉格朗日对偶

首先,我们要理解KKT条件是用来干嘛的?

KKT条件用来判断一个解是否属于一个非线性优化问题。

求最优解:
约束条件分为
1、等式约束
2、不等式约束

对于等式约束的优化问题,可以直接应用拉格朗日乘子法去求取最优值;
对于含有不等式约束的优化问题,可以转化为在满足 KKT 约束条件下应用拉格朗日乘子法求解。

拉格朗日求得的并不一定是最优解,只有在凸优化的情况下,才能保证得到的是最优解,所以我们说拉格朗日乘子法得到的为可行解,其实就是局部极小值。

下面分成一个方面来讨论求最优解:

1)无约束条件

如果没有任何条件,那么变量x \in \mathbb{R}^N的函数f(x)的极值问题就是
\min_x f(x)
直接求导\nabla_xf(x) = 0即可。

2)等式约束的优化

如在h(x)=0的条件下使得f(x)最小
\begin{aligned} &\min_{x } \ f(x) \\ &s.t. \ \ \ h_i(x) = 0 , i = 1,2,...,m \\ \end{aligned}
约束条件就会将解的范围限定在一个可行域,此时要找\nabla_xf(x) = 0的点只需要在限定的可行域中找到f(x)的最小值就好了。
方法:
拉格朗日乘子法
首先,
引入拉格朗日乘子\alpha \in \mathbb{R}^m
然后,构建拉格朗日函数
L(x,\alpha) = f(x) + \sum_{i=1}^m \alpha_i h_i(x)
求解拉格朗日函数:

\alphax求导
\left \{ \begin{aligned} \nabla_x L(x,\alpha)= 0 \\ \nabla_{ \alpha } L(x,\alpha)= 0 \end{aligned} \right.
令导数为0,这时候得到相应的\alphax的值,把x的值代入到f(x)中即得到约束条件h_i(x)下的可行解。

举个例子:

在二维条件下,对目标函数f(x,y)画出等高线,如下图所示,h(x,y)=0为约束条件,如下图绿线。


那么目标函数f(x,y)的值,也就是等高线跟约束条件h(x,y)=0有三种情况:相交,相切和没有交集。那么相交和相切的情况是相应的我们要求的解。并且相切是最优解或者局部最优解。

结论:
拉格朗日乘子法取得极值的必要条件是目标函数和约束函数相切,两者法向量平行。
\nabla _xf(x) - \alpha \nabla_xh(x) = 0
所以只要满足上述等式,且满足之前的约束h_i(x) = 0 , i = 1,2,...,m,即可得到解,联立起来,正好得到就是拉格朗日乘子法。

3)不等式约束条件

如下式:
\begin{aligned} &\min_x \ f(x) \\ & \ s.t. \ \ g(x) \le 0 \end{aligned}
同样做拉格朗日变换和画图:
L(x, \lambda) = f(x) + \lambda g(x)
给出等高线和约束条件之后,可行解也要落在g(x)区域内。

上图有,可行解只能落在g(x)<0或者g(x)=0的区域里获得。

  • 当可行解 x 落在 g(x)<0 的区域内,此时直接极小化 f(x) 即可;
  • 当可行解 x 落在 g(x)=0 即边界上,此时等价于等式约束优化问题.

当约束区域包含目标函数原有的的可行解时,此时加上约束可行解扔落在约束区域内部,对应 g(x)<0 的情况,这时约束条件不起作用;当约束区域不包含目标函数原有的可行解时,此时加上约束后可行解落在边界 g(x)=0 上。下图分别描述了两种情况,右图表示加上约束可行解会落在约束区域的边界上。

以上两种情况就是说,要么可行解落在约束边界上即得 g(x)=0,要么可行解落在约束区域内部,此时约束不起作用,另 \lambda =0 消去约束即可,所以无论哪种情况都会得到:\lambda g(x)=0

还有一个问题是 \lambda 的取值,在等式约束优化中,约束函数与目标函数的梯度只要满足平行即可,而在不等式约束中则不然,若 \lambda \neq 0,这便说明 可行解 x 是落在约束区域的边界上的,这时可行解应尽量靠近无约束时的解,所以在约束边界上,目标函数的负梯度方向应该远离约束区域朝向无约束时的解,此时正好可得约束函数的梯度方向与目标函数的负梯度方向应相同:
-\nabla_x f(x) = \lambda \nabla_xg(x)
上式需要满足的要求是拉格朗日乘子 \lambda > 0 ,这个问题可以举一个形象的例子,假设你去爬山,目标是山顶,但有一个障碍挡住了通向山顶的路,所以只能沿着障碍爬到尽可能靠近山顶的位置,然后望着山顶叹叹气,这里山顶便是目标函数的可行解,障碍便是约束函数的边界,此时的梯度方向一定是指向山顶的,与障碍的梯度同向,下图描述了这种情况 :

2

可见对于不等式约束,只要满足一定的条件,依然可以使用拉格朗日乘子法解决,这里的条件便是 KKT 条件。接下来给出形式化的 KKT 条件 首先给出形式化的不等式约束优化问题:
\begin{aligned} &\min_x \ f(x) \\ &s.t. \ \ \ h_i(x) = 0 , \ i = 1,2,...,m \ \\ & \ \ \ \ \ \ \ \ \ \ g_j(x) \le 0, \ j = 1,2,...,n \end{aligned}
列出 Lagrangian 得到无约束优化问题:
L(x,\alpha,\beta) =f(x) + \sum_{i=1}^m \alpha_i h_i(x) + \sum_{j=1}^n\beta_ig_i(x)
经过之前的分析,便得知加上不等式约束后可行解 x 需要满足的就是以下的 KKT 条件:

满足 KKT 条件后极小化 Lagrangian 即可得到在不等式约束条件下的可行解。 KKT 条件看起来很多,其实很好理解:

(1) 拉格朗日取得可行解的必要条件;
(2) 这就是以上分析的一个比较有意思的约束,称作松弛互补条件;
(3) ∼∼ (4) 初始的约束条件;
(5) 不等式约束的 Lagrange Multiplier 需满足的条件。

主要的KKT条件便是 (3) 和 (5) ,只要满足这俩个条件便可直接用拉格朗日乘子法, SVM 中的支持向量便是来自于此,需要注意的是 KKT 条件与对偶问题也有很大的联系。

 

拉格朗日对偶

在优化理论中,目标函数 f(x) 会有多种形式:如果目标函数和约束条件都为变量 x 的线性函数, 称该问题为线性规划
如果目标函数为二次函数, 约束条件为线性函数, 称该最优化问题为二次规划; 如果目标函数或者约束条件均为非线性函数, 称该最优化问题为非线性规划。每个线性规划问题都有一个与之对应的对偶问题,对偶问题有非常良好的性质,以下列举几个:

  • 对偶问题的对偶是原问题;
  • 无论原始问题是否是凸的,对偶问题都是凸优化问题
  • 对偶问题可以给出原始问题一个下界;
  • 当满足一定条件时,原始问题与对偶问题的解是完全等价的;

比如下边这个例子,虽然原始问题非凸,但是对偶问题是凸的:
\begin{aligned} &\min_x \ \left ( x^4-50x^2+100x \right ) \\ &\ s.t.\ \ \ x \ge 4.5 \end{aligned}

 

原始问题

首先给出不等式约束优化问题:
\begin{aligned} &\min_x \ f(x) \\ &s.t. \ \ \ h_i(x) = 0 , \ i = 1,2,...,m \ \\ & \ \ \ \ \ \ \ \ \ \ g_j(x) \le 0, \ j = 1,2,...,n \end{aligned}
定义 Lagrangian 如下:
L(x,\alpha,\beta) =f(x) + \sum_{i=1}^m \alpha_i h_i(x) + \sum_{j=1}^n\beta_jg_j(x)
根据以上 Lagrangian 便可以得到一个重要结论:
f(x) =\max_{\alpha \beta; \beta_i\ge 0} L(x,\alpha,\beta) > L(x,\alpha,\beta) \tag{*}
上式很容易验证,因为满足约束条件的 x 会使得 h_i(x)=0,因此第二项消掉了;而 g_j(x) \le 0,并且使得 \beta_j \ge 0,因此会有 \beta_j g_j(x) \le 0 ,所以最大值只能在它们都取零的时候得到,这个时候就只剩下f(x) 了。反之如果有任意一个约束条件不满足,则只需令其相应的乘子 \rightarrow +\infty ,则会得到 L(x,\alpha,\beta) \rightarrow +\infty,这样将导致问题无解,因此必须满足约束条件。经过这样一转变,约束都融合到了一起而得到如下的无约束的优化目标:
\min_x f(x) = \min_x \max_{\alpha,\beta; \beta_i\ge 0} L(x,\alpha,\beta)

对偶问题

上式与原优化目标等价,将之称作原始问题 , 将原始问题的解记做p^*,如此便把带约束问题转化为了无约束的原始问题,其实只是一个形式上的重写,方便找到其对应的对偶问题,首先为对偶问题定义一个对偶函数(dual function) :
D(\alpha,\beta) = \min_x L(x,\alpha,\beta)
有了对偶函数就可给出对偶问题了,与原始问题的形式非常类似,只是把 min 和 max 交换了一下:
\max_{\alpha ,\beta; \beta_i\ge 0} \min_x L(x,\alpha,\beta)
然后定义对偶问题的最优解即关于 α β 的函数:
d^* = \max_{\alpha,\beta; \beta_i\ge 0} D(\alpha,\beta)
对偶问题和原始问题的最优解并不相等,而是满足的如下关系:
d^* \le p^*
直观地,可以理解为最小的里最大的那个要比最大的中最小的那个要大。具体的证明过程如下:

证明,首先这里的约束要全部满足,对偶问题与原始问题的关系如下:
D(\alpha,\beta) =\min_x L(x,\alpha,\beta) \le L(x,\alpha,\beta) \le \max_{\alpha,\beta,\beta_i \ge 0}L(x,\alpha,\beta) =f(x)

即 D(\alpha,\beta) \le f(x),所以自然而然可得:
d^*= \max_{\alpha,\beta;\beta_i \ge 0} D(\alpha,\beta) \le \min_x f(x) =p^*

即现在通过对偶性,为原始问题引入一个下界d^* \le p^*

这个性质便叫做弱对偶性(weak duality),对于所有优化问题都成立,即使原始问题非凸。这里还有两个概念:f(x)-D(\alpha,\beta)叫做对偶间隔(duality gap), p^*-d^*叫做最优对偶间隔(optimal duality gap)。

之前提过无论原始问题是什么形式,对偶问题总是一个凸优化的问题,这样对于那些难以求解的原始问题 (甚至是 NP 问题),均可以通过转化为偶问题,通过优化这个对偶问题来得到原始问题的一个下界, 与弱对偶性相对应的有一个强对偶性(strong duality) ,强对偶即满足:d^* = p^*

强对偶是一个非常好的性质,因为在强对偶成立的情况下,可以通过求解对偶问题来得到原始问题的解,在 SVM 中就是这样做的。当然并不是所有的对偶问题都满足强对偶性 ,在 SVM 中是直接假定了强对偶性的成立,其实只要满足一些条件,强对偶性是成立的,比如说 Slater 条件与KKT条件。

Slater 条件

若原始问题为凸优化问题,且存在严格满足约束条件的点 x,这里的“严格”是指 g_i(x)\leq 0 中的“ ≤ ”严格取到“ < ”,即存在 x 满足 g_i(x)<0 ,i = 1,2,...,n ,则存在 x^*,\alpha^* ,\beta^* 使得 x^* 是原始问题的解, \alpha^* ,\beta^* 是对偶问题的解,且满足:
p^* = d^* = L(x^*,\alpha^* ,\beta^*)

也就是说如果原始问题是凸优化问题并且满足 Slater 条件的话,那么强对偶性成立。需要注意的是,这里只是指出了强对偶成立的一种情况,并不是唯一的情况。例如,对于某些非凸优化的问题,强对偶也成立。SVM 中的原始问题 是一个凸优化问题(二次规划也属于凸优化问题),Slater 条件在 SVM 中指的是存在一个超平面可将数据分隔开,即数据是线性可分的。当数据不可分时,强对偶是不成立的,这个时候寻找分隔平面这个问题本身也就是没有意义了,所以对于不可分的情况预先加个 kernel 就可以了。

KKT条件

假设x^* 与 \alpha^* ,\beta^*分别是原始问题(并不一定是凸的)和对偶问题的最优解,且满足强对偶性,则相应的极值的关系满足:
\begin{aligned} f(x^*) &= d^* = p^* =D(\alpha^*,\beta^*) \\ &=\min_x f(x)+ \sum_{i = 1}^m \alpha_i^*h_i(x) + \sum_{j=1}^n\beta_j^*g_j(x) \\ & \le f(x^*)+ \sum_{i = 1}^m \alpha_i^*h_i(x^*) + \sum_{j=1}^n\beta_j^*g_j(x^*) \\ &\le f(x^*) \end{aligned}

这里第一个不等式成立是因为 x^* 为 L(x,\alpha^*,\beta^*) 的一个极大值点,最后一个不等式成立是因为 h_i(x^*) = 0 ,且g_j(x^*) \le 0 ,\beta_j \ge 0,(\beta_j \ge 0 是之前 (*) 式的约束条件)因此这一系列的式子里的不等号全部都可以换成等号。根据公式还可以得到两个结论:

1)第一个不等式成立是因为 x^* 为 L(x,\alpha^*,\beta^*) 的一个极大值点,由此可得:
\nabla_{x^*} L(x,\alpha^*,\beta^*) = 0

2)第二个不等式其实就是之前的 (*)  式,\beta_j^*g_j(x^*) 都是非正的,所以这里有:
\beta_j^* g_j(x^*)=0, \ i=1,2,...,m

也就是说如果\beta_j^*>0,那么必定有 g_j(x^*)=0;反过来,如果 g_j(x^*)<0 那么可以得到 \beta_j^*=0 ,即:
\left \{ \begin{aligned}\beta^*_j >0 \Rightarrow g^*_j(x) = 0 \\ g^*_j(x) < 0 \Rightarrow\beta_j^*=0\end{aligned}\right .

这些条件都似曾相识,把它们写到一起,就是传说中的 KKT (Karush-Kuhn-Tucker) 条件:

总结来说就是说任何满足强对偶性的优化问题,只要其目标函数与约束函数可微,任一对原始问题与对偶问题的解都是满足 KKT 条件的。即满足强对偶性的优化问题中,若x^* 为原始问题的最优解,\alpha^* ,\beta^* 为对偶问题的最优解,则可得 x^*,\alpha^*,\beta^* 满足 KKT 条件。不知道够不够清楚,书中原话(P243)是这样的:

1

上面只是说明了必要性,当满足原始问题为凸优化问题时,必要性也是满足的,也就是说当原始问题是凸优化问题,且存在x^*,\alpha^*,\beta^*满足 KKT 条件,那么它们分别是原始问题和对偶问题的极值点并且强对偶性成立,证明如下:

首先原始问题是凸优化问题,固定\alpha^* ,\beta^*之后对偶问题 D(\alpha^*,\beta^*) 也是一个凸优化问题,x^* 是L(x,\alpha^*,\beta^*) 的极值点:
\begin{aligned} D(\alpha^*,\beta^*) &= \min_x L(x,\alpha^*,\beta^*) \\ &= L(x^*,\alpha^*,\beta^*) \\ & = f(x^*)+\sum_{i=1}^m\alpha_i^*h_i(x^*)+\sum_{j=1}^n\beta_j^*g_j(x^*) \\ &= f(x^*) \end{aligned}

最后一个式子是根据 KKT 条件中的 h_i(x) = 0 与 \beta_jg_j(x) = 0 得到的。这样一来,就证明了对偶间隔为零,也就是说,强对偶成立。 所以当原始问题为凸优化问题时,书中的原话(P244)如下:

1

 

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值