五、拉格朗日对偶(Lagrange duality)
(1)拉格朗日算子
如果我们需要求解形如这样的优化问题:
我们定义拉格朗日算子(Lagrangian):
其中,称为拉格朗日乘数(Lagrange multipliers)。
(2)广义拉格朗日算子
在上述优化问题上引入带有不等式的约束条件:
定义广义拉格朗日算子为:
这里的拉格朗日乘数分别为和
。()
(3)拉格朗日原始问题
这里的字母P是代表“primal”。
如果w违反原始问题的约束条件(存在某些i,使得或),将使得变为无穷大:
相反,如果约束条件严格满足,那么。即:
我们的目标求的最小值,在满足约束条件的情况下,等价于求解的最小值。
为了方便讨论,定义,我们称p*的值为原始问题。
(4)拉格朗日对偶问题
令
这里的下标D,代表“dual”。
那么原始问题的对偶问题可以表示为:
为了方便讨论,定义,称d*的值为对偶问题。
与上式比较可看出,仅max和min的位置做了交换,而其他不变。因此能够得出下面的结论(对于任意函数来说,max min的值总是小于min max的值):
并且在满足一定条件的情况下等号成立,即:
因此,可以通过求解对偶问题来间接的求解原始问题。
六、KKT条件(Karush-Kahn-Tucher necessary and sufficient conditions)
如果一个最优化问题的目标函数和约束条件分别满足如下形式:
拉格朗日算子为:
假设存在,其中是原是问题的可行解,而是对偶问题的可行解。如果
满足KKT条件,那么
既是原始问题的解同时也是对偶问题的解:
KKT条件表示如下:
再加上原本约束条件和拉格朗日算子的约束KKT条件可以表示为:
留意以上约束条件的第(2)(3)(5)条,由于 ,因此当
时,
,而当
时,
。下文介绍支持向量机时将会看到,这个特殊性质,是保证SVM仅仅需要少量的“支持向量”的关键。
七、支持向量机
(1)支持向量
如下图所示,为训练样本的决策边界(超平面),A,B,C三点为和决策边界距离最近的三个点(一负两正三个样本),而超平面的确定仅仅依赖于这三个点,而与其他的点无关,这三个点就称为支持向量(support vectors)。
在KKT条件中,支持向量的,;而非支持向量
,
。
(2)优化的分类器
分类器的目标函数和约束条件为如下形式:
我们可以将约束条件改写为:
再构造拉格朗日算子:
这里构造的拉格朗日算子仅有拉格朗日乘数而没有
。
首先,固定,让
关于w,b最小:
解得:
再对b求偏导:
再将带入
又,因此有:
我们再求对偶问题,即关于
的最大值:
经过这样处理,将问题转换成仅仅和的值相关。
求出w和b的值以后,我们可以写出超平面的解析式:
从上式可以看出,最终超平面的解析式仅仅和训练样本,以及相关。对于一个新的无标记点,仅仅需要计算其与样本
的内积即可得出他的类别。
更为巧妙的是:所有非支持向量的都为0(非支持向量都在函数间隔为1的超平面后方,不决定超平面位置),因此计算仅仅设计少量的支持向量点。