但是,问题来了,如果有很多的超平面可以分割这两类点,那么应该选择哪一条呢
答案是找最佳超平面,以最大间隔把两类样本分开的超平面,也称之为最大间隔超平面。
二维空间点 (x,y) 到直线 Ax+By+C=0 的距离为:
于是我们有:
即:
||w||d是正数,且令其为任何值都不会对优化结果有影响
——>不妨令||w||d=1
所以有
将方程组合并,有:(等于1的地方就是支持向量)
通过上一小节我们知道:
点到直线
的距离为:
——>支持向量到超平面的距离是
——>margin=
我们希望最大化margin,即;
分子分母调换位置,有:
此时计算||w||时要带根号,为了方便计算,我们将上式改写成
所以最优化问题是
目前SVM问题是一个带不等式的最优化问题
数学知识笔记:拉格朗日乘子_UQI-LIUWJ的博客-CSDN博客
根据KKT条件,我们有
根据数学知识笔记:拉格朗日乘子_UQI-LIUWJ的博客-CSDN博客
我们可以写出原始问题的对偶形式:
(λ≥0)
——>去掉min一层,对偶问题就转化为:
之后利用SMO(Sequential Minimal Optimization) 算法求解各个λ,然后通过λ求W
W求得后,可以求解b:(S为支持向量的集合)
完全线性可分的样本是很少的,如果遇到了不能够完全线性可分的样本,应该怎么办?
相比于硬间隔的苛刻条件,软间隔允许个别样本点出现在间隔带里面
引入松弛变量从原来硬间隔的
变成
分别对主问题参数w、b 和 ξi 求偏导数,并令偏导数为 0,得出如下关系:
将这些关系带入拉格朗日函数中,得到:
最小化结果只有 λ 而没有 μ ,所以现在只需要最大化 λ 就好:
这个和硬间隔的一样,只是多了个约束条件。
同样地, 之后利用SMO(Sequential Minimal Optimization) 算法求解各个λ,然后通过λ求W
W求得后,可以求解b:(S为支持向量的集合,这里间隔内的那部分样本也是支持向量)
前面讨论的硬间隔和软间隔都是在说样本的完全线性可分或者大部分样本点的线性可分。
但我们可能会碰到的一种情况是样本点不是线性可分的,比如:
这种情况的解决方法就是:将二维线性不可分样本映射到高维空间中,让样本点在高维空间线性可分,比如:
对于在有限维度向量空间中线性不可分的样本,我们将其映射到更高维度的向量空间里,再通过间隔最大化的方式,学习得到支持向量机,就是非线性 SVM。
我们用 x 表示原来的样本点,用 ϕ(x) 表示 x 映射到特征新的特征空间后到新向量。那么分割超平面可以表示为: f(x)=wϕ(x)+b 。
对于非线性 SVM 的对偶问题就变成了:
可以看到与线性 SVM 唯一的不同就是:之前的 (xi⋅xj) 变成了 (ϕ(xi)⋅ϕ(xj)) 。
参考内容:【机器学习】支持向量机 SVM(非常详细) - 知乎 (zhihu.com)