如何理解支持向量机(support vector machines)?
一、Hard-Margin SVM
1、问题引入
假设一组数据,三个线性分类器分别给出了如下三条决策边界:
哪一根直线是最好的?
一般情况下我们会认为,L2较L1和L3更好,为什么?
假设,当有一个蓝色类别的测试数据,如果是L1的这种分法,那它就会把这个蓝色的点归回,紫色三角形那一类。对与L3同理会有这种情况。如图:
那如何使我们的模型在无数条线中确定一条如L2这种,分的完美,抗干扰性强的决策边界呢?
L2直线有什么特点?
换句话说就是b线之上的区域都是蓝色类别的地盘,a线下面的都是紫色类别的地盘。本着公平公正的原则,
类似于拔河,双方队伍中离绳子中点最近的那两个人,到中点的距离要一样。(可能是不恰当的比方)这样才不会使得算法有偏向于某一对的嫌疑!
拓展到高维:
对于二维的数据就是找一条线,三维数据要找的就变成面了。一般数据都是高维的,所以我们要求解的不是一条直线而是一个高维的超平面(hyperplane)
2、如何把几何条件转化为公式表达
把上面求 max d表示为:
max margin(W,b)
max margin(W,b)满足以下两个条件:
(1)离超平面最近的样本点到超平面的距离:margin(W,b)
数学回忆:
对应到超平面就是系数矩阵W,即W就是超平面的一个法向量
(2)超平面要能正确分类
所以令 WXi + b = 1可以得出:
合并条件1和上面的约束条件再进一步转化:
在约束条件下求最值,可以利用拉格朗日乘数法
是不是好像在哪学过?高数二
拉格朗日乘数法:
几何意义:
λ \lambda λ
**拓展到高维:**约束条件变成一个向量
通俗点理解就是,高维的约束就是一个超平面,即目标函数f(x)的约束是一个区域范围,
只有在高维空间中目标函数的某个梯度方向,刚好和某些约束条件的合梯度方向相反时,调整 λ \lambda λ
使得梯度抵消为0.
换句话说就是在约束条件的范围内,并不是所有的约束都能起作用,只有某些约束的梯度的合梯度
刚好和目标函数的某个取值的梯度方向相反。所以,这些起作用的约束的 λ \lambda λ才不为0,其他的其实都为0
优化问题:
这是一个带约束的原问题。通过拉格朗日函数的直观理解,我们可以把这个带约束的问题转化为一个无约束的原问题:
上面那个带约束的原问题其实就是在约束W,b的取值,不然W,b的取值使得1 - yi(wxi + b)>0 ! 根据上面的拉格朗日数乘就是说这些约束是不起作用的,我们把它过滤了。
而这个不带约束条件的问题,本质上也是在过滤不起作用的、无效的W,b的取值
所以,综上
对偶问题:
上面的无约束问题和它的对偶问题是强对偶关系,所以求它对偶问题的解相当于求它的解
求最小值----> 求偏导=0
由KKT条件求b的解
根据互补松弛条件:
这就是支持向量机,W,b的值取值仅和支持向量(xk,yk)有关
所以最终我们的超平面终于找到了:
二、Soft-Margin SVM
1、问题引入
当样本数据有一个点如上分布的化,就难以分开了,此时可以修改一下约束条件,来允许这种点情况的出现,允许他犯点小错。
用loss损失来量化这种错误:
原问题:
把loss加到原问题可以表示为:
C超参数用来调整允许犯多大的错
一般是如下表示:
2、软间隔
这就是软间隔,允许我们的决策边界有波动的空间来调整,容忍数据的分布