【SVM】Some refined knowledge points about Support Vector Machines [part 1]

支持向量机(SVM)定义


●在一个二分类数据集中,存在着多个划分“超平面”,这些超平面可以用以下方程表示:

w^Tx+b=0

w=(w1;w2;...;wd) 为法向量,决定了超平面的方向

b 为位移项,决定了超平面与原点之间的距离

●样本空间中任意点 到超平面的距离可写为:

r=\frac{|w^Tx+b|}{||w||}

●距离超平面最近的几个样本点组成“支持向量(support vector)”,两个异类支持向量到超平面的距离之和(间隔)为:

r=\frac{2}{|w|}

证明附后

从上面的式子看,间隔似乎只与 w 有关,但事实上 b 通过约束隐式地影响着 w 的取值

●为了最大化间隔,需要最大化 ||w||^{-1} ,这等价于最小化 ||w||^2 ,于是,出来吧,皮卡丘!(SVM基本型)

min\frac{1}{2}||w||^2

s.t.y_i(w^Tx_i+b)\geq1,i=1,2,...,m


对偶问题&拉格朗日乘子

使用拉格朗日乘子法可以得到上述问题的“对偶问题”,具体做法是为每条约束添加拉格朗日乘子 a_i\geq0 ,通过令拉格朗日函数关于 wb 的偏导为零,化简得到对偶问题:

max\sum_{i=1}^{m}{a_i}-\frac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}a_ia_jy_iy_jx_i^Tx_j

s.t.\sum_{i=1}^{m}a_iy_i=0,

a_i\geq0,i=1,2,...,m

设上述对偶问题的解为 a^*=(a_1^*,a_2^*,...,a_l^*,)^T (可求解得到)

则原模型 y=w^Tx+b 中的参数

w=\sum_{i=1}^{m}a_iy_ix_i

b=y_i-\sum_{i=1}^{m}a_iy_i(x_ix_j)

证明后附

●通过求解对偶问题得到原始问题的最优解,这就是线性可分支持向量机的对偶算法。这样做的优点,一是对偶问题往往更容易求解,二是自然引入核函数,进而推广到非线性分类


KKT条件

a_i\geq0

y_if(x_i)-1\geq0

a_i(y_if(x_i)-1)=0

这个条件很精妙,它可以使得对于任意训练样本 (x_i,y_i) ,总有 a_i=0y_if(x_i)=1

a_i=0 时,表示样本点不会在求和式 w=\sum_{i=1}^{m}a_iy_ix_i 中出现

a_i>0 时,则必有y_if(x_i)=1 ,即所对应的样本点位于最大间隔边界上,是一个支持向量(请务必认真体会这两句话)


证明:已知 a,如何求出 w b

根据⑴拉格朗日函数 L 关于wb 的偏导⑵KKT条件,得:

\sum_{i=1}^{m}a_iy_ix_i=w

\sum_{i=1}^{m}a_iy_i=0

a_i(y_i(wx+b)-1)\geq0

y_i(wx_i+b)-1\geq0

a_i\geq0

首先证明 a 中至少存在一个 a_j>0

假设 a=0 ,由 \sum_{i=1}^{m}a_iy_ix_i=w\Rightarroww=0 ,即间隔为0,这显然不成立

\Rightarrow 至少存在一个 a_j>0

a_i(y_i(wx+b)-1)\geq0 ,对此 jy_i(wx_j+b)-1)=0

\sum_{i=1}^{m}a_iy_ix_i=w 代入得:

\sum_{i=1}^{m}a_iy_i(x_ix_j)+b=\frac{1}{y_i} ,又 y_i=\frac{1}{y_i}y 只能为+1或-1)

\Rightarrow b=y_j-\sum_{i=1}^{m}a_iy_i(x_ix_j)

(这里可以看出,由于 j 不止一种取法, b 也就有了多种可能。理论上可以选取任意支持向量来求解b,但现实情况往往采用一种更为鲁棒的方法——使用所有支持向量求解的平均值)

猜你喜欢

转载自blog.csdn.net/qq_28038873/article/details/79972587