机器学习笔记(2)支持向量机

(一)线性可分的情况

支持向量机是一个非常经典的二分类算法。假设有一组数据,这组数据由两种类别组成。要画一条直线将其分开,可以有无数条。那这些直线哪条是最好的呢。

机器学习笔记(2)支持向量机

如果把上面的点想象成地雷,士兵要从他们中间开辟一条道路。这条道路当然是越宽越好了(中线离雷区越远越好)。

机器学习笔记(2)支持向量机

上面这两张图,明显右边的哪条分界线要好一点。既然要选出离雷区远的边界,那就要计算点到超平面(二维空间下是直线)的距离。

机器学习笔记(2)支持向量机

超平面的方程为机器学习笔记(2)支持向量机,w为这个超平面的法向量,机器学习笔记(2)支持向量机是超平面上的一点。由此可以得出机器学习笔记(2)支持向量机。要求点X到该超平面的距离,可以先求出X到机器学习笔记(2)支持向量机的距离,然后在投影到法向量。复习一下向量投影公式

向量a·向量b=| a |*| b |*cosΘ
Θ为两向量夹角
| b |*cosΘ叫做向量b在向量a上的投影
| a |*cosΘ叫做向量a在向量b上的投影

距离公式为:

机器学习笔记(2)支持向量机

假设有数据集:(X1,Y1)(X2,Y2)… (Xn,Yn)
Y为样本的类别: 当X为正例时候 Y = +1 当X为负例时候 Y = -1

决策方程:

机器学习笔记(2)支持向量机 

(其中机器学习笔记(2)支持向量机是对数据做了变换,后面继续说)

如果决策方程大于0,将其分类为正例,反之分类为负例

机器学习笔记(2)支持向量机

因此点到超平面的距离可写为

机器学习笔记(2)支持向量机

由于 机器学习笔记(2)支持向量机所以将绝对值展开原始依旧成立,这就是几何距离,其中分子又单独称为函数距离


我们的优化目标是找到一个超平面(w,b),使得离这个超平面最近的点能够最远,这里比较难理解,但这是看懂后面内容的基础。

优化目标:

机器学习笔记(2)支持向量机


我们可以把w,b同时缩放c倍为cw,cb,这样超平面的方程也不会变的,因此我们可以将函数距离缩放为任意一个值。而且缩放后不会影响几何距离的大小。

机器学习笔记(2)支持向量机

因此我们可以通过缩放使函数距离大于等于1

机器学习笔记(2)支持向量机

此时目标函数只变为

机器学习笔记(2)支持向量机,约束条件机器学习笔记(2)支持向量机

将求最大值问题转化为求最小值问题:

机器学习笔记(2)支持向量机

由于带有约束条件,因此可以用拉格朗日乘子法求解。

机器学习笔记(2)支持向量机

    然后令

机器学习笔记(2)支持向量机

    容易验证,当某个约束条件不满足时,例如机器学习笔记(2)支持向量机,那么显然有机器学习笔记(2)支持向量机只要令机器学习笔记(2)支持向量机即可)。而当所有约束条件都满足时,则最优值为机器学习笔记(2)支持向量机亦即最初要最小化的量。

    因此,在要求约束条件得到满足的情况下最小化机器学习笔记(2)支持向量机实际上等价于直接最小化机器学习笔记(2)支持向量机(当然,这里也有约束条件,就是机器学习笔记(2)支持向量机)   ,因为如果约束条件没有得到满足,机器学习笔记(2)支持向量机会等于无穷大,自然不会是我们所要求的最小值。

具体写出来,目标函数变成了:

机器学习笔记(2)支持向量机

    这里用机器学习笔记(2)支持向量机表示这个问题的最优值,且和最初的问题是等价的。如果直接求解,那么一上来便得面对w和b两个参数,而机器学习笔记(2)支持向量机又是不等式约束,这个求解过程不好做。不妨把最小和最大的位置交换一下,变成:

机器学习笔记(2)支持向量机

    交换以后的新问题是原始问题的对偶问题,这个新问题的最优值用机器学习笔记(2)支持向量机来表示。而且有机器学习笔记(2)支持向量机机器学习笔记(2)支持向量机,在满足某些条件的情况下,这两者相等,这个时候就可以通过求解对偶问题来间接地求解原始问题。分别对w和b求偏导,分别得到两个条件

机器学习笔记(2)支持向量机

机器学习笔记(2)支持向量机

继续对ɑ求极大值:

机器学习笔记(2)支持向量机

约束条件:

机器学习笔记(2)支持向量机

这样,求出了机器学习笔记(2)支持向量机,根据机器学习笔记(2)支持向量机即可求出w,然后就可求出b,最终得出分离超平面和分类决策函数。

此时分类函数为机器学习笔记(2)支持向量机,由这个式子可知,只有机器学习笔记(2)支持向量机不等于0的点对分类函数起作用,这些点称为支持向量。这就是这个算法叫支持向量机的原因。那为什么支持向量的机器学习笔记(2)支持向量机不等于0,而非支持向量上的点等于0呢?

回忆一下我们上面通过 Lagrange multiplier得到的目标函数

机器学习笔记(2)支持向量机

     注意到如果  是支持向量的话,上式中红颜色的部分是等于 0 的(因为支持向量的函数距离等于 1 ),而对于非支持向量来说,函数距离会大于 1 ,因此红颜色部分是大于零的,而机器学习笔记(2)支持向量机又是非负的,为了满足最大化,机器学习笔记(2)支持向量机必须等于 0 。这也就是这些非Supporting Vector 的点的局限性。

机器学习笔记(2)支持向量机

从上图可以看出,无论有多少数据,只要支持向量不变,最终得到的超平面也不会变。


(二)软间隔

有时候数据中有一些噪音点,如果考虑它们咱们的线就不太好了

机器学习笔记(2)支持向量机

之前的方法要求要把两类点完全分得开,这个要求有点过于严格了,我们来放松一点!为了解决该问题,引入松弛因子 :

机器学习笔记(2)支持向量机

新的目标函数:

机器学习笔记(2)支持向量机

当C趋近于很大时:意味着分类严格不能有错误
当C趋近于很小时:意味着可以有更大的错误容忍

机器学习笔记(2)支持向量机

发现目标函数还是没变,知识约束条件机器学习笔记(2)支持向量机多了一个上界。

(三)现行不可分的情况

在有的情况下是无法找出一个超平面将数据分为两类的,但是我们可以将特征从低纬度通过一定的变换映射到高纬度,这样就能够把他们分开了。

机器学习笔记(2)支持向量机

机器学习笔记(2)支持向量机

K(x,y)就称为核函数,作用就是将低维空间向量的内积机器学习笔记(2)支持向量机作为核函数的自变量,求出来的值和将向量映射到高维空间后的内积机器学习笔记(2)支持向量机相等。 这样一来计算的问题就算解决了,避开了直接在高维空间中进行计算,而结果却是等价的!当然,因为我们这里的例子非常简单,所以我可以手工构造出对应于机器学习笔记(2)支持向量机的核函数出来,如果对于任意一个映射,想要构造出对应的核函数就很困难了。通常人们会从一些常用的核函数中选择。

高斯核

机器学习笔记(2)支持向量机

这个核就是最开始提到过的会将原始空间映射为无穷维空间的那个家伙。不过,如果机器学习笔记(2)支持向量机选得很大的话,高次特征上的权重实际上衰减得非常快,所以实际上(数值上近似一下)相当于一个低维的子空间;反过来,如果机器学习笔记(2)支持向量机选得很小,则可以将任意的数据映射为线性可分——当然,这并不一定是好事,因为随之而来的可能是非常严重的过拟合问题。不过,总的来说,通过调控参数机器学习笔记(2)支持向量机,高斯核实际上具有相当高的灵活性,也是使用最广泛的核函数之一。

参考博文:https://blog.****.net/v_july_v/article/details/7624837