接上文,我们可以知道软硬间隔下的svm表达式,是一个约束最优化问题。
在约束最优化问题中,常常利用拉格朗日对偶性(Lagrange duality)将原始问题转为对偶问题,通过解决对偶问题而得到原始问题的解。
下面我们先回忆一下拉格朗日乘子算法求解的原理以及大名鼎鼎的KKT条件(这里我参考了李宏毅老师的ppt)
首先我们设置原始问题:
我们将上述问题对应的图像画出,可以看出梯度的反方向为蓝色箭头的方向
同时我们做出的梯度方向,因为梯度的方向是指向函数值增大最快的方向,的函数值可以不严谨的理解为圆的半径,因此梯度方向超外。
现在我们来看图像,首先我们看图上的红点要想实现原式的条件,红点必须在图上(即圆上),且红点移动的方向要与的夹角小于90°。
由图像可以得出,当与同向时将达到最小值,因此可以得出,即,可以取得极小值。
下面我们尝试将原问题转化为以下形式,即将转化为
你会发现当对求极值时,在关于求偏导得到 ,在关于求偏导得到。可以看到①、②两个式子涵盖了我们上面说的原问题最小值及其相应条件(ps:要想实现求得的是局部极小值,也就是保证是函数图像的波谷,还必须要求梯度的梯度矩阵必须是正定矩阵,有兴趣的朋友可以自行百度,我这里就不赘述了)。以上就是拉格朗日乘子算法的本质。
下面我们来看在条件为不等式的情况,
第一种情况
我们还是先把图像画出来
可以看到当的极小值无论是否有的约束,的极小值都是原来那个值,也就是说没有起到作用。
因此在此类情况下,当,就可以取到极小值,同时我们还可以知道,此时。
第二种情况
由图上可知,此时因为的最小值没有在可行区域内,因此的极小值必定在的边界上,设极优解为,故可得出。由上文及下图可知当满足,即可得到极小值的一系列点,又因为该点必须在的边界上,故可以得出唯一的最优解。即当,且时,即可取得极优解。
现在我们将以上两种情况总结归纳一下,
作为极优解,其中第一种情况:
上式可以等价于
其中第二种情况:
现在我们设置拉格朗日函数:
原函数
对应的
其极小值对应的极优解、应满足以下式子:
其中①式为,对lagrangian关于求偏导,即为 :。
我们将上文两种情况归纳总结,可以看到上述两种情况其对应的 、要满足一定关系,对应关系可以归纳写为③式,,这样一来就可限制死第一、二种的对应的相应条件。该式子又被称为松弛条件,可以看到当 ,一定存在,证明无约束,不对的极值起作用;当,一定存在,且一定位于的边界上。我们再看②、④显然成立。
上面的四个式子被称为KKT条件。
所谓的KKT条件就是说拉格朗日乘子算法求出的要想是最优解就必须满足KKT条件,否则就不是极优解。但反过来满足KKT条件的,不一定就是极优解。也就是说拉格朗日乘子算法求出的最优解是KKT条件的充分不必要条件。
以上就是拉格朗日乘子和KKT条件的全部内容,下面我们重返svm,进一步求解。请看svm保姆级教程---(三)svm中目标函数的拉格朗日形式