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

(一)前言

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

  • 定义1.1:测试样本(x,y)的类别预测规则,如下:

    上面的式子可以统一为 .

(二)线性可分的SVM

基本原理

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

  • 定义2.1

        根据SVM的思想:
    1.在所有点的类都分对的条件下,即
    2.希望每类中最近的点离分割面的距离越远越好。设这个最近的距离是C,那么SVM问题可以定义如下:

  • 定义2.1:最大边缘分类器

    其中,
        对定义2.1中的不等式的左右均乘以 ,并且令,那么上述等式就可以转化为

  • 定义2.2

    其中,
        在数学中,带根号的式子不太好处理,并且处理最大化问题可以转化为处理最小化问题(定义2.2中需要最大化的式子是正数,所以与其等价的最小化问题即为其倒数),那么定义2.2可以重新定义为2.3.

  • 定义2.3

    其中,

对偶问题

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

2.当时,即点分类正确。那么,此时,要想让定义2.4中的使得式子最大化,那么只能为零。即为最小化。
总结一下:定义2.4有解,就是在时去最小化。是不是和定义2.3在处理同一个问题?

  • 定义2.4

    其中,
        那么在数学上,定义2.4有一个下限,我们可以通过这个下限去求解得到超平面。即所以将我们的问题重新定义为2.5。

  • 定义2.5

    其中,
        定义2.5里面的最小化问题很好解,即为求和的偏导数,令其为零。

        将解出的和代入到定义2.5中得到:
    \begin{align*} &\frac{1}{2}w^T w + \sum_{i=1}^{N}\alpha_i(1-y_i(w^Tx_i + b)) \\ =& \frac{1}{2}w^T w - w^T w +\sum_{i=1}^{N}\alpha_i + \sum_{i=1}^{N}\alpha_i y_i b \\ =&\sum_{i=1}^{N}\alpha_i - \frac{1}{2}w^T w \\ =& \sum_{i=1}^{N}\alpha_i - \frac{1}{2}\sum_{j=1}^{N}\sum_{i=1}^{N}\alpha_i y_i \alpha_j y_j x_i^T x_j \end{align*}

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

  • 定义2.6

        细心的你应该发现了,上述推导过程中有一系列条件,来保证有解。这些条件合在一起即为KKT条件:

1.
2.
3.,
4.

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

    根据上面得到的,我们可以反代回偏导数为0的式子中,求解和即
,其中的求解需要用到KKT条件中的第4个条件,当时,则,对于不同的会有不同的的估计值,所以一般最后对于的估计,会取这些估计值的平均值。
    那么也就是说,在求解时,我们只用到了的那些点,而根据KKT条件,当时,,这些点均在分割线上,而这些点正是支持向量。

分割线示意图.png

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

你可能感兴趣的:(支持向量机SVM——原理及相关数学推导 系列一)