【SVM】Some refined knowledge points about Support Vector Machines [part 1]
支持向量机(SVM)定义
●在一个二分类数据集中,存在着多个划分“超平面”,这些超平面可以用以下方程表示:
为法向量,决定了超平面的方向
为位移项,决定了超平面与原点之间的距离
●样本空间中任意点 到超平面的距离可写为:
●距离超平面最近的几个样本点组成“支持向量(support vector)”,两个异类支持向量到超平面的距离之和(间隔)为:
证明附后
从上面的式子看,间隔似乎只与 有关,但事实上
通过约束隐式地影响着
的取值
●为了最大化间隔,需要最大化 ,这等价于最小化
,于是,出来吧,皮卡丘!(SVM基本型)
对偶问题&拉格朗日乘子
使用拉格朗日乘子法可以得到上述问题的“对偶问题”,具体做法是为每条约束添加拉格朗日乘子 ,通过令拉格朗日函数关于
和
的偏导为零,化简得到对偶问题:
设上述对偶问题的解为 (可求解得到)
则原模型 中的参数
证明后附
●通过求解对偶问题得到原始问题的最优解,这就是线性可分支持向量机的对偶算法。这样做的优点,一是对偶问题往往更容易求解,二是自然引入核函数,进而推广到非线性分类
KKT条件
这个条件很精妙,它可以使得对于任意训练样本 ,总有
或
● 时,表示样本点不会在求和式
中出现
● 时,则必有
,即所对应的样本点位于最大间隔边界上,是一个支持向量(请务必认真体会这两句话)
证明:已知
,如何求出
和
?
根据⑴拉格朗日函数 关于
和
的偏导⑵KKT条件,得:
首先证明 中至少存在一个
假设 ,由
,即间隔为0,这显然不成立
至少存在一个
,
由 ,对此
有
将 代入得:
,又
(
只能为+1或-1)
(这里可以看出,由于 不止一种取法,
也就有了多种可能。理论上可以选取任意支持向量来求解b,但现实情况往往采用一种更为鲁棒的方法——使用所有支持向量求解的平均值)