支持向量机SVM——原理及相关数学推导 系列一

2019-04-04  本文已影响0人  7NIC7

(一)前言

    支持向量机比较适合于高维数据,可以减缓维数灾难问题;也非常适用于小样本,建模只需要“支持向量”即可。
    支持向量机的思想非常简单,就是可以找到一个超平面使得不同类别的数据可以尽量分开,并且为了增加测试集分类的鲁棒性(robust),希望这个超平面与各类别距离最近的数据点均越远越好。

(二)线性可分的SVM

基本原理

    因为下面要计算点到超平面的距离,所以这里给出距离公式,假设超平面S为w^Tx + b = 0,某个点p到S的距离定义如下。

对偶问题

    为了求解定义2.3中的未知参数,下面我们将改问题转化为其对偶形式。
    首先,解释下定义2.3是如何和定义2.4等价的。在定义2.3中
1.当 y_i (w^Tx_i + b) < 1时,即点分类错误。那么1- y_i (w^Tx_i + b) > 0,要想让定义2.4中的 \alpha_i \geq 0 使得式子最大化,那么式子将变为无穷大,即无解。

2.当y_i (w^Tx_i + b) \geq 1时,即点分类正确。那么1- y_i(w^T x_i + b) \leq 0,此时,要想让定义2.4中的\alpha_i \geq 0使得式子最大化,那么\alpha_i (1-y_i(w^Tx_i + b))只能为零。即为最小化\frac{1}{2}w^T w
总结一下:定义2.4有解,就是在y_i(w^T x_i + b) \geq 1时去最小化\frac{1}{2}w^T w。是不是和定义2.3在处理同一个问题?

    终于推导完成了!!!最后再将最大化求解等价转化为最小化问题求解即为定义2.6。它是个关于\alpha的函数,即为一个二次规划问题,推荐大家一个软件,在做规划的时候非常实用,这个软件就是lingo啦。

1.y_i(w^T x_i + b) \geq1
2.\alpha \geq0
3.w= \sum_{i=1}^{N} \alpha_i y_ix_i,\sum_{i=1}^{N}\alpha_iy_i =0
4.\alpha_i (1 - y_i(w^T x_i + b)) = 0

超平面求解以及支持向量的解释

    根据上面得到的\alpha,我们可以反代回偏导数为0的式子中,求解| |w||b
w= \sum_{i=1}^{N}\alpha_iy_ix_i,其中b的求解需要用到KKT条件中的第4个条件,当\alpha_i > 0时,则b = y_i - w^T x_i,对于不同的\alpha_i会有不同的b的估计值,所以一般最后对于b的估计,会取这些估计值的平均值。
    那么也就是说,在求解b时,我们只用到了\alpha_i > 0的那些点,而根据KKT条件,当\alpha_i > 0时,1 - y_i(w^T x_i + b)=0,这些点均在分割线上,而这些点正是支持向量。

分割线示意图.png

如果有任何错误,欢迎批评指正!
欢迎点赞,系列二会更新非线性可分的SVM或者kernel

上一篇 下一篇

猜你喜欢

热点阅读