一、SVM要解决的问题
支持向量机的目标是找出能够最大化训练集数据间隔(margin)的最优分类超平面。
SVM的全称是Support Vector Machine,即支持向量机,主要用于解决模式识别领域中的数据分类问题,属于有监督学习算法的一种。
通过观察上图,我们能够发现分类这些数据是可能的。例如,我们可以描绘一条直线然后所有代表男人的点都在直线的上边,代表女人的点都在直线的下边。
这条直线被称为分类超平面,如下图所示:
如果它就是一条线,为什么我们称它为超平面呢?
超平面是平面的抽象。
- 在一维空间,超平面是一个点
- 在二维空间,它是一条线
- 在三位空间,它是一个面
- 在更高维度上,你能够称它为超平面
什么是最优分类超平面?
你能够找到一个分类超平面,但这并不意味着它是最好的那个!如果我们选择了一个靠近某一类数据点的超平面,它也许并不能很好地分类数据。
因此我们将会尝试选择一个尽可能远离每一种类别数据点的超平面:
黑色的超平面比绿色的超平面分类更准确。
这就是为什么SVM的目标是寻找最优分类超平面:
- 因为它能够正确地分类训练数据
- 同时因为它能更准确地分类尚未出现的数据。
什么是间隔和它是如何帮助选择最优超平面?
给定一个超平面,我们能够计算出超平面到最近的一个点的距离。一旦我们算出这个值,如果我们将距离乘以2我们就可以得到间隔(margin)。基本上,间隔是一个“无人区”。在间隔内不存在任何数据点。
对于另一个超平面,间隔将看起来像这样:
如图所示,间隔B比间隔A小得多。
我们能够观察到以下结果:
- 如果一个超平面十分接近某个数据点,它的间隔将很小
- 超平面距离数据点越远,间隔就越大
这意味着最优超平面将是拥有最大边距的那个超平面。
这也是为什么SVM的目标是找到最大化训练集数据间隔的最优分类超平面
https://www.svm-tutorial.com/2015/06/svm-understanding-math-part-3/
二、数学推导
1、求最大间隔?
方法一: H 0 H_0 H0和 H 1 H_1 H1是两个超平面,我们假设m为两个超平面的最大间隔, x 0 x_0 x0在 H 0 H_0 H0超平面上, z 0 z_0 z0在 H 1 H_1 H1超平面上,满足 z 0 = x 0 + k z_0=x_0+k z0=x0+k。
w ⃗ z 0 ⃗ + b = 1 w ⃗ ( x 0 ⃗ + k ⃗ ) + b = 1 w ⃗ ( x 0 ⃗ + m w ⃗ ∣ w ⃗ ∣ ) + b = 1 w ⃗ x 0 ⃗ + b = 1 − m ∣ w ⃗ ∣ = − 1 m = 2 ∣ w ⃗ ∣ \vec{w}\vec{z_0}+b=1 \\ \vec{w}(\vec{x_0}+\vec{k})+b=1 \\ \vec{w}(\vec{x_0}+m\frac{\vec{w}}{|\vec{w}|})+b=1 \\ \vec{w}\vec{x_0}+b=1-m|\vec{w}|=-1 \\ m=\frac{2}{|\vec{w}|} wz0+b=1w(x0+k)+b=1w(x0+m∣w∣w)+b=1wx0+b=1−m∣w∣=−1m=∣w∣2
方法二: 这里我们可以借鉴几何学中点到直线的距离,需要变动的是我们这里是点到超平面的距离。具体转换过程如下:
∣ A x 0 + B y + C ∣ A 2 + B 2 = = > ∣ w T + b ∣ ∣ ∣ w ∣ ∣ = 1 ∣ ∣ w ∣ ∣ \frac{|Ax_0+By+C|}{\sqrt{A^2+B^2}}==> \frac{|w^T+b|}{||w||}=\frac{1}{||w||} A2+B2∣Ax0+By+C∣==>∣∣w∣∣∣wT+b∣=∣∣w∣∣1
2、拉格朗日对偶问题
我们注意到最大化 2 ∣ ∣ w ∣ ∣ \frac{2}{||w||} ∣∣w∣∣2等价于最小化 ∣ ∣ w ∣ ∣ 2 2 \frac{||w||^2}{2} 2∣∣w∣∣2(为啥取平方呢,因为后面好求导),便可得到下面支持线性可分(线性不可分的情况后面会提到)的支持向量机的最优化问题,这是一个凸二次优化的问题,可以直接求解,但是为了简便呢,我们要应用拉格朗日对偶性,求解他的对偶问题。
min w , b ∣ ∣ w ∣ ∣ 2 2 s . t y i ( w x i + b ) − 1 > = 0 , i = 1 , 2 , . . . , N \min_{w,b} \frac{||w||^2}{2} \\ s.t\space \space \space y_i(wx_i+b)-1>=0,i=1,2,...,N w,bmin2∣∣w∣∣2s.t yi(wxi+b)−1>=0,i=1,2,...,N
其实求解对偶问题相比于原问题有一下几点好处
- 对偶问题更容易求解,因为不用求w了
- 我们可以自然引入核函数,这样可以推广到线性不可分分类问题上
拉格朗日乘子法:
引入拉格朗日乘子$\alpha_i\geq0,i=1,2,…,N $,则拉格朗日函数:
L ( w , b , α ) = ∣ ∣ w ∣ ∣ 2 2 + ∑ i = 1 N α i ( 1 − y i ( w x i + b ) ) L(w,b,\alpha)=\frac{||w||^2}{2}+\sum_{i=1}^{N}{\alpha_i(1-y_i(wx_i+b))} L(w,b,α)=2∣∣w∣∣2+