这一讲要开始讲SVM(Support Vector Machine)了,在深度学习流行以前,SVM占据着很重要的位置,它的理论推导是非常优美的。
SVM也是硬分类的一种,因为是直接给出具体分类的, 并不是概率。
SVM一共可以分为三种 hard-margin SVM ,soft-margin SVM, kernel SVM,分别对应于线性可分, 线性可分(存在一些错误点), 非线性问题
Hard-margin SVM
首先定义数据集
SVM和感知机一样,也是在寻找超平面进行分割,
但是和感知机不一样的地方在于,感知机找可分的超平面,只要实现可分即可,所以超平面有无限种可能(可分的前提下)
而SVM,是最大间隔分类器, 即max margin(w,b),margin的定义是所有样本点到超平面的最短距离
同时需要满足
样本点到超平面的最短距离
我们希望这个最短距离最大, 即
, 即
所以
请注意一点,等比例放大和缩小w,b, 超平面是同一个,但是会影响的值,即会影响r的值, 所以我们不妨把r确定下来,假设r等于1,即,这样问题就变成了
把最大化问题改成最小化问题, 即
(A)
目标函数是二次项,然后存在n个约束,是一个凸优化问题
使用拉格朗日乘子法,
问题就变成了, (B)
这边做一个逻辑上的解释,为什么新的问题(B),等价于原来的问题(A)呢
如果, 则
如果, ,
所以, 可以理解为丢弃了的部分,相当于起到了原问题中的约束作用
至此, 我们的问题就是, , 我们称之为原问题
接下来, 我们引入对偶问题的概念,原问题的对偶问题是 , (C)
我们针对这个问题再做一些简单的理解, (看到过一个哲学解释,min max是凤尾,max min是鸡头, 凤尾还是要大于鸡头)
这是弱对偶关系, 强对偶关系就是
现在我们来求对偶问题的解, 先求
将次这个结果带入L,
现在来求w,
, 所以
现在把w再带入到L中,
这个式子就是的结果,现在求剩下的 ,即max部分
,
老样子,max可以写成min, 即
,
(D)
暂时先写到这边, SVM内容比较多,后续会慢慢补充。