1.KKT条件(不等式约束条件)
设目标函数f(x),不等式约束为g(x),等式约束条件h(x)。此时的约束优化问题描述如下:
则我们定义不等式约束下的拉格朗日函数L,则L表达式为:
其中f(x)是原目标函数,hj(x)是第j个等式约束条件,λj是对应的约束系数,gk是不等式约束,uk是对应的约束系数。0
此时若要求解上述优化问题,必须满足下述条件(也是我们的求解条件):
这些求解条件就是KKT条件。(1)是对拉格朗日函数取极值时候带来的一个必要条件,(2)是拉格朗日系数约束(同等式情况),(3)是不等式约束情况,(4)是互补松弛条件,(5)、(6)是原约束条件。
对于一般的任意问题而言,KKT条件是使一组解成为最优解的必要条件,当原问题是凸问题的时候,KKT条件也是充分条件。
关于条件(3),后面一篇博客中给出的解释是:我们构造L(x,λ,u)函数,是希望L(x,λ,u)<=f(x)的(min表示求最小值)。在L(x,λ,u)表达式中第二项为0,若使得第三项小于等于0就必须使得系数u>=0,这也就是条件(3)。
关于条件(4),直观的解释可以这么看:要求得L(x,λ,u)的最小值一定是三个公式项中取得最小值,此时第三项最小就是等于0值的时候。稍微正式一点的解释,是由松弛变量推导而来。
为方便表示,举个简单的例子:
现有如下不等式约束优化问题:
此时引入松弛变量可以将不等式约束变成等式约束。设a1和b1为两个松弛变量,则上述的不等式约束可写为:
则该问题的拉格朗日函数为:
根据拉格朗日乘子法,求解方程组:
则
同样 u2b1=0,来分析g2(x)起作用和不起作用约束。
于是推出条件:SVM就是据此条件推出支持向量的,支持向量和超平面有相同的W, b
2.线性可分,硬间隔的支持向量
根据KKT条件中的对偶互补条件
如果 则有 即点在支持向量上
如果 则有, 即样本在支持向量上 或者 已经被正确分类。
3.非线性可分,软间隔
根据KKT条件中的对偶互补条件
a) 如果,那么 , 即样本在间隔边界上 或者 已经被正确分类。如图中所有远离间隔边界的点。
b) 如果 , 那么 ,即点在间隔边界上。
c) 如果,说明这是一个可能比较异常的点,需要检查
i)如果, 则有 ,大于0但是小于1 , 那么点被正确分类,但是却在超平面和自己类别的间隔边界之间。如图中的样本 (2 和 4)
ii)如果 , 则有 那么点在分离超平面上,无法被正确分类。
iii)如果 , 则有 那么点在超平面的另一侧,也就是说,这个点不能被正常分类。如图中的样本 1 和 3 . 分类错误
参考:https://www.cnblogs.com/pinard/p/6100722.html
项目推荐:
Java微服务实战296集大型视频-谷粒商城【附代码和课件】