总结约束极值的基本内容以及SVM的基础知识,包含KKT条件
一般来讲,我们遇到的约束极值问题可以描述如下:
或者描述如下:
(可以理解为 gi(x)⩾0 以及 gi(x)⩽0 )
对于上述问题,我们可以假定有一个方向D,使得:
对上述公式进行Taylor展开,那么会有:
因为 λ>0 ,因此上述公式可以去掉 λ ,就变为了下面公式:
上述公式前者代表下降方向,后者代表可行方向。
我们假设一个点 X∗ 是极小值点,那么当这个点处于可行域内部,那么是无约束极值问题;如果是在可行域边界,那么就是约束极值问题了。
现假设 X∗ 只有一个起作用的约束,即 g1(X∗)=0 ,那么 ▽g1(X∗) 必然和 −▽f(X∗) 在一条直线上并且方向相反。否则,这个点就存在下降方向(图中的点 X 即为可行下降方向)。
因此在上述条件下,有:
以此类推,就会有如下内容:
上述式即为KKT条件,其中 γj 即为广义拉格朗日乘子。
▽f(X∗)−∑lj=1γj▽gj(X∗)=0 这个公式是对拉格朗日函数求微分得到的,拉格朗日函数可以表述如下:
设 xi,i=1,2,...,N 是训练集 X 中的特征向量,这些向量来自于类 o1 和类 o2 ,假设线性可分。我们的目的是得到一个超平面,将所有训练样本分类正确:
由于线性可分,所以必定能找到一个超平面,使得两类之间的间隔最大。通过点到直线距离公式,我们可以得到这个间隔的为:
我们等比例的缩放 ω ,满足下列条件即可:
其中,距离间隔最近的点的 g(x) 值为1或-1。因此根据上面的内容,可以将任务概述为计算超平面的参数 ω 和 ω0 ,约束极值问题如下:
设拉格朗如函数如下:
根据KKT条件,极小值点需要满足如下条件:
通过前两个式子,我们可以得到:
一般到这里的话就需要求得拉格朗日乘子的值就可以得到相应解了,不过从计算的角度来看,这并不容易,因此我们可以通过求凸规划问题的对偶问题来解决计算问题,即将问题等价为其Wolfe双重表示形式,即变为: