支持向量机之公式推导 (一)

1 认识向量机

支持向量机是处理数据分类问题,目的是学会一个二分类的函数模型,属于监督式学习的方法,被广泛应用于统计分类和回归分析。通过建立一个超平面对样本数据进行分类,超平面涉及到凸优化及核函数的应用。

2 线性分类

假设数据样本集是线性可分,即存在一个超平面将其分成两类。以下推导的过程都是基于线性可分,非线性分类是在线性分类加上一个松弛因子,下面开始线性分类的推导。

2.1 线性分类的标号

为了方便公式推导将样本集分为2类,+1和-1。分类函数为
在这里插入图片描述
其中w=(w1,w2,w3,…wn),x=(x1,x2,x3,…xn)。通俗的讲支持向量机解决的问题是找到最好的分类超平面。在二维平面中就是一根直线,在三维空间里就是一个分类面。在能分类的情况下,样本点到分类线和分类面的距离越远,说明分类越佳。SVM扮演的是最大间隔分类器的角色。
在这里插入图片描述

2.2 函数间隔和几何间隔

一般而言,一个点距离超平面的远近可以表示为分类预测的确信或准确程度。在超平面 wTx+b=0确定的情况下,|wTx+b| 能够相对的表示点x到距离超平面的远近,而 wTx+b 的符号与类标记 y 的符号是否一致表示分类是否正确,所以,可以用量 y(wTx+b) 的正负性来判定或表示分类的正确性和确信度。即,y(wTx+b) > 0 时分类正确;y(wTx+b) < 0 时分类错误。

2.2.1函数间隔

函数间隔定义为:
在这里插入图片描述
可以看到,函数间隔其实就是类别标签乘上了f(x)的值,可以看到,该值永远是大于等于0的,正好符合了距离的概念,距离总不能是负的吧。那么为什么该值可以表示数据点到超平面的距离呢?我们不妨这样想,假设y=1,f(x)=1,其实就是将原来的分类超平面f(x) 向右平移了1个单位,而y=1,f(x)=2是将原来的分类超平面f(x) 向右平移了2个单位,所以f(x)值越大的点到分类超平面的距离当然越远,这就解释了我们之前提出的问题。

但是函数间隔存在一定的问题,上述定义的函数间隔虽然可以表示分类预测的正确性和确信度,但在选择分类 超平面时,只有函数间隔还远远不够,因为如果成比例的改变 w 和 b,如将他们改变为 2w 和 2b,虽然此时超平面没有改变,但函数间隔的值 yf (x) 却变成了原来的 4 倍。

所以在实际中,我们定义点到超平面的距离时,采用的是几何间隔。

2.2.2 几何间隔

在这里插入图片描述

如图所示,样本点A的坐标为 x (i) ,A 到超平面的垂直距离为 γ(i) ,超平面的单位法向量是 ω / || ω || ,B点是超平面上一点且是A点的投影,则 B 点的坐标 x(i) - γ(i) ω / || ω || 。推导过程如下图。

在这里插入图片描述

将B点坐标代入超平面方程,得几何间隔为:
在这里插入图片描述

如上所述,函数间隔与几何间隔的关系有
在这里插入图片描述

几何间隔的计算就相当于点到平面的距离公式。
在这里插入图片描述

2.3 支持向量

支持向量即满足最大间隔的样本点。

在这里插入图片描述

两条虚线上的样本点即为支持向量点。

要想间隔最大化,即max
在这里插入图片描述
对于所有数据点必然满足下面条件
在这里插入图片描述
其中
在这里插入图片描述
根据我们刚才的讨论,即使在超平面固定的情况下,γˆ 的值也可以随着 ∥w∥ 的变化而变化。由于我们的目标就是要确定超平面,因此可以把这个无关的变量固定下来,固定的方式有两种:一是固定 ∥w∥ ,当我们找到最优的 γ时 γˆ 也就可以随之而固定;二是反过来固定 γˆ ,此时 ∥w∥ 也可以根据最优的 γ得到。处于方便推导和优化的目的,我们选择第二种,令 γˆ=1 ,则我们的目标函数化为:
在这里插入图片描述
这里为什么可以把γˆ固定为1呢?很多教材上没有解释而是一笔带过,在july大神的博客下面的回复中看到了一个比较好的回复,截图如下:
在这里插入图片描述

个人理解:函数间隔可以根据w和b的值的伸缩随意变动,但是二者的伸缩不会带来超平面的变化。通过将w和b缩小为原来的1/γˆ倍,从而将γˆ缩小为原来的1/γˆ倍,变为1。方便了后面的计算,同时还没有改变超平面。

2.4 向对偶问题转化

由上面的式子经过变化,得到凸优化问题,即将max 1/|| ω ||转化成求 min 1/2 || ω || ^2 ,两者是等价的。
在这里插入图片描述
转化到这个形式后,我们的问题成为了一个凸优化问题,或者更具体的说,因为现在的目标函数是二次的,约束条件是线性的,所以它是一个凸二次规划问题。这个问题可以用任何现成的QP的优化包进行求解,归结为一句话即是:在一定的约束条件下,目标最优,损失最小。
除了用解决QP问题的常规方法之外,还可以通过求解对偶问题得到最优解,这就是线性可分条件下支持向量机的对偶算法,这样做的优点在于:一者对偶问题往往更容易求解;二者可以自然的引入核函数,进而推广到非线性分类问题。
现在要对凸优化进行求解,现在给出的经验求解方法是,通过求解对偶问题得到最优解。对偶问题是什么?这就要引出拉格朗日函数,将约束条件融合到目标函数中,通过给每个约束条件加上一个拉格朗日乘子α 。
在这里插入图片描述
然后令:
在这里插入图片描述
现在目标函数变成了:
在这里插入图片描述
对这个公式的理解:在满足约束条件(即样本点为支持向量)下,最大的几何间隔中取最小的值。max L(w,b,a) 是得到支持向量的样本点,然后再这些样本点中找到min 1/2 || w ||2 的最小值(最大间隔)。
注意了,对偶问题出来了(p* 是原来的问题,d* 是对偶问题),将最小最大的位置交换,得到下面的式子:
在这里插入图片描述
交换之后的问题就不等价了,有以下关系:d* <= p* 。但在满足某些条件下(KKT条件),两者是相等的。现在我们把对偶问题得出了,接下来对偶问题进行求解。

2.5 求解对偶问题

上述可知,原来问题与对偶问题的等价条件是满足某些条件,条件就是KKT 。(上面这一部分公式推导涉及到KKT条件和不等式约束条件下的优化问题,下一节介绍)而求解这个对偶学习问题,分为3个步骤:1、让L(ω, b, α)关于 ω 和 b 的最小化;2、求 α 的极大;3、利用SMO算法求解对偶因子(α)。这里主要讲1 和 2 ,步骤 3 在第三节讲。
在这里插入图片描述
在这里插入图片描述
如果我们把对偶因子a求出,那么我们就可以得到最佳的超平面 f (x) = ωT x + b ;
在这里插入图片描述
b 根据KKT条件 ,αi [ y(i)(ωTx(i) + b ) -1] =0, i =1, 2 ,…, m ,其中必然存在一个αj 不等于0 ,y(j)(ωTx(j) + b )=1 ,两边同乘以 y(j) 可得:
在这里插入图片描述
也可以对所有满足条件的b加权平均。
到这里我们把目标函数 f(x) 的求解转化成对对偶因子的求解,正如 July 大神总结的一样。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/FUCCKL/article/details/84349206