支持向量机(SVM)的数学原理

来源:互联网 发布:中美进出口数据 编辑:程序博客网 时间:2024/05/16 04:52

支持向量机(SVM)的数学原理


线性可分数据

  
  数据抽象为不同特征值作为不同维度的向量后,将分布在高维空间中,高维空间中的数据,如果能用一个维平面分开不同标签的数据,则称这组数据线性可分。


高维空间中的距离

  
  如果高维空间中的数据线性可分,我们希望尽量用一个平面把两组数据分得开一点,那么我们需要引入度量,下面推导高维空间中的距离。
  
这里写图片描述


求解分隔平面的优化问题

  
  考虑线性可分的数据,我们为了分得开一点,需要转化为以下优化问题,由于优化问题是一个带约束的最值问题,所以可以考虑使用拉格朗日乘子法求出平面参数符合的必要条件。
  
这里写图片描述

  求解时,可以转化为对偶问题求解。(对偶问题以及KKL条件可以参考拉格朗日乘子法)

这里写图片描述


用SMO算法求解对偶问题

  当优化变量很多的时候,可以先固定某些变量仅仅允许两个变量变动,且由于约束条件,事实上变成了一元函数,再对这个一元函数求最大值,而这个求解的难度会小很多,有闭合形式的代数解。
  那么一次固定调整过程后,优化值变大。重复迭代这一过程即可。

  当然,因为我学习的时候仅仅关心数学原理,并不关心实现细节。所以没有深究选择变量的原则,事实上选择变量需要用启发式搜索,也就是说有某种原则,使得选择的变量可以令值上升尽量多。每次更新还需要更新阈值b保证KKT条件。


选择核函数处理线性不可分数据

  当线性不可分的时候,需要选择合适的核函数,即认为分隔在核函数作用后的平面中进行:wTΦ(x)+b=0

  那么我们实际不必求解Φ(x),只需要求解Φ(xi)TΦ(xj)即可。

  关于核函数的选择,不同选择对应不同核,有线性核,多项式核,高斯(对应RBF神经网络),拉普拉斯核,sigmoids核(对应单层MLP神经网络)。
  


软间隔和正则化

  因为允许的噪音和反例存在,所以约束不应该是硬约束,而是软约束,也就是违反会获得惩罚,但是违反这个0/1函数不可导,所以用对应的可导函数代替。这就是软间隔。
  
  正则化为了降低结构风险,构造关于参数大小的惩罚项。
  
  这两个技术是SVM中常见的技术。
  


支持向量

  事实上由于很多点比较远,所以在KKT条件中,λi对应取0,而分隔平面不会经过它们,所以可以忽略它们降低复杂度。也就是说,学习的时候只学习最容易混淆的,最靠近分隔面的。那么这些留下来的向量称为支持向量。支持向量的思想可以减少运算量和复杂度。


结语

  我学习的时候着重关注支持向量机的数学原理,所以前面部分推导总结较仔细,后面具体实现的知识简单地过一遍。
  
  下面解释一下,支持向量机名字,顾名思义:
  支持向量(Support Vector): 高维空间内平面分隔数据点向量,保留支持向量。
  机(Machine): 二分判定机器