美文网首页
支持向量机SVM——原理及相关数学推导 系列一

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

作者: 7NIC7 | 来源:发表于2019-04-04 19:52 被阅读0次

    (一)前言

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

    • 定义1.1:测试样本(x,y)的类别预测规则,如下:
      y=\begin{cases} 1 \ \ \ \ ,w^T x + b >0 \\ -1 \ ,w^T x + b <0 \end{cases}
      上面的式子可以统一为 y(w^Tx+b) > 0.

    (二)线性可分的SVM

    基本原理

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

    • 定义2.1
      distance(p, S) = \frac{|w^Tx + b|} {||w||}
          根据SVM的思想:
      1.在所有点的类都分对的条件下,即y_i(w^Tx_i + b) > 0
      2.希望每类中最近的点离分割面的距离越远越好。设这个最近的距离是C,那么SVM问题可以定义如下:

    • 定义2.1:最大边缘分类器
      \begin{align*} &\max_{w,b}\ C \\ &s.t. y_i(w^Tx_i + b)/||w|| \geq C \end{align*}
      其中,i=1,2, \dots,N
          对定义2.1中的不等式的左右均乘以 ||w||,并且令C=1/||w||,那么上述等式就可以转化为

    • 定义2.2
      \begin{align*} &\max_{w,b} \ 1/||w|| \\ &s.t.y_i(w^Tx_i + b) \geq 1 \end{align*}
      其中,i=1,2,\dots,N
          在数学中,带根号的式子不太好处理,并且处理最大化问题可以转化为处理最小化问题(定义2.2中需要最大化的式子是正数,所以与其等价的最小化问题即为其倒数),那么定义2.2可以重新定义为2.3.

    • 定义2.3
      \begin{align*} &\min_{w,b} \ \frac{1}{2}w^Tw \\ &s.t. y_i(w^T x_i + b) \geq 1 \end{align*}
      其中,i =1,2,\dots,N

    对偶问题

        为了求解定义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.4
      \min_{w,b}\max_{\alpha_i \geq 0}L(w,b) = \min_{w,b}\max_{\alpha_i \geq 0}\frac{1}{2}w^T w + \sum_{i=1}^{N} \alpha_i(1-y_i(w^Tx_i + b))
      其中,i =1,2,\dots,N
          那么在数学上,定义2.4有一个下限,我们可以通过这个下限去求解得到超平面。即\min_{w,b} \max_{\alpha_i \geq 0} L(w,b) \geq \max_{\alpha_i \geq 0}\min_{w,b}L(w,b,\alpha)所以将我们的问题重新定义为2.5。

    • 定义2.5
      \max_{\alpha_i \geq 0} \min_{w,b}L(w,b,\alpha)=\max_{\alpha_i \geq 0}\min_{w,b}\frac{1}{2}w^Tw + \sum_{i=1}^{N} \alpha_i(1-y_i(w^Tx_i + b))
      其中,i =1,2,\dots,N
          定义2.5里面的最小化问题很好解,即为求||w||b的偏导数,令其为零。
      \begin{align*} & \frac{\partial L(w,b,\alpha)}{\partial w} = w - \sum_{i=1}^{N}\alpha_iy_ix_i=0 \\ &\frac{\partial L(w,b,\alpha)}{\partial b} = -\sum_{i=1}^{N}\alpha_iy_i = 0 \end{align*}
          将解出的||w||b代入到定义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^Tw - w^Tw +\sum_{i=1}^{N}\alpha_i + \sum_{i=1}^{N}\alpha_iy_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。它是个关于\alpha的函数,即为一个二次规划问题,推荐大家一个软件,在做规划的时候非常实用,这个软件就是lingo啦。

    • 定义2.6
      \min_{\alpha \geq 0} \frac{1}{2} \sum_{j=1}^{N}\sum_{i=1}^{N}\alpha_i y_i \alpha_j y_j x_i^T x_j - \sum_{i=1}^{N}\alpha_i
          细心的你应该发现了,上述推导过程中有一系列条件,来保证有解。这些条件合在一起即为KKT条件:

    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

    相关文章

      网友评论

          本文标题:支持向量机SVM——原理及相关数学推导 系列一

          本文链接:https://www.haomeiwen.com/subject/wqlqiqtx.html