笔记迎来了机器学习目前最难的一个知识点。
SVM有几大难点,首先是模型最优化的标准,其次是优化问题的变形,最后则是二次规划的求解。
本文参考了很多篇博客,给出笔者自己的理解,从头推导,最后以一个可以手动计算的实例来讲解SVM求解的全过程。
注意本篇博客的目的在彻底理解,弄清每一步的推导,因此可能对于初识SVM的朋友不那么友好。
最大间隔
首先需要明确的是,svm的形式。
和第二节介绍的逻辑回归相似,svm也有相同的函数表现形式: y=wx+b 。其中w和x都为向量的形式。
但不同的是,两者的优化目标。
逻辑回归追求的是错误率最小
这句话有一层隐含的意思:逻辑回归本身有对于不可分情况的处理能力,即使有些噪音,逻辑回归也可在不改变其自身属性的情况下得到较好的训练模型。
但支持向量机不同,对于svm家族最基本的分类模型——线性可分支持向量机来说,它只能分类完全可分的样本,并在此基础上最大化分类的间隔。
说白了,两者的优化目标不同。
那么支持向量机的优化目标是什么呢?如下:
如上图(摘自数据挖掘导论),即寻求不同样本间的最大间隔边缘。
方程的形式
接下来,从数据方面做些推导。
样本点为 (xi,yi) ,其中 xi=(xi1,xi2,...,xim),yi∈−1,1
上面对于svm的数据做了基本的形式约束,即二分类问题。
svm的决策边界可以表达如下:
y=wx+b,x=xi
对于二维数据点来说(即m=2)上述形式就是一条直线。
对于二类线性可分的情况,我们总可以找到两条直线:
b1:wx+b=1b2:wx+b=−1
使得当 yi=1时 对应的有 wxi+b≥1 ,当 yi=−1时 ,有 wxi+b≤−1 。
对于于面的理解,建议动手举例理解。
比如两个样本点((1,1),1),((0,0),-1),这两条直线可以是 (1,1)xi−1=1和(1,1)xi−1=−1
以上是svm推到的基础,请务必理解。
有了上述的分类边缘,则两个边缘线间的距离就出来:
d=