机器学习笔记(七):SVM

一、前导

1、最优化问题

最优化问题一般是指对于某一个函数而言,求解在其指定作用域上的全局最小值问题,一般分为以下三种情况(备注:以下几种方式求出来的解都有可能是局部极小值,只有当函数是凸函数的时候,才可以得到全局最小值):
无约束问题:求解方式一般求解方式梯度下降法、牛顿法、坐标轴下降法等;


等式约束条件:求解方式一般为拉格朗日乘子法

拉格朗日乘子法求解

机器学习笔记(七):SVM_第1张图片


不等式约束条件:求解方式一般为KKT条件

机器学习笔记(七):SVM_第2张图片

  • 当可行解x在g(x)<0的区域中的时候,此时直接极小化f(x)即可得到;
  • 当可行解x在g(x)=0的区域中的时候,此时直接等价于等式约束问题的求解。

KKT条件总结

1. 拉格朗日取得可行解的充要条件;
2. 将不等式约束转换后的一个约束,称为松弛互补条件;
3. 初始的约束条件;
4. 初始的约束条件;
5. 不等式约束需要满足的条件。

机器学习笔记(七):SVM_第3张图片

 

2、点到直线/平面的距离公式

假定点p(x0,y0),平面方程为f(x,y)=Ax+By+C,那么点p到平面f(x)的距离为:

从三维空间扩展到多维空间中,如果存在一个超平面f(X)=θX+b; 那么某一个点X0到这个超平面的距离为:

机器学习笔记(七):SVM_第4张图片

 

3、感知器模型

3.1  概念

对于m个样本,每个样本n维特征以及一个二元类别输出y:。目标是找到一个超平面,即:。让一个类别的样本满足:\theta \cdot x<0;另外一个类别的满足:\theta \cdot x>0

感知器模型为:机器学习笔记(七):SVM_第5张图片

3.2  损失函数

正确分类的样本:y\cdot \theta x>0;错误分类的样本:y\cdot \theta x<0。假定分类错误的样本数为k,可定义损失函数为(分类错误的样本到超平面的距离之和最小):

机器学习笔记(七):SVM_第6张图片

固定分母为1,简化损失函数:

3.3  求解θ

直接使用梯度下降法就可以对损失函数求解,不过由于这里的k是分类错误的样本点集合,样本数目不是固定的,所以我们不能使用批量梯度下降法(BGD)求解,只能使用随机梯度下降(SGD)或者小批量梯度下降(MBGD);一般在感知器模型中使用SGD来求解。

机器学习笔记(七):SVM_第7张图片

 

 

 

支持向量机(Support Vecor Machine, SVM)本身是一个二元分类算法,是对感知器算法模型的一种扩展,现在的SVM算法支持线性分类和非线性分类的分类应用,并且也能够直接将SVM应用于回归应用中,同时通过OvR或者OvO的方式我们也可以将SVM应用在多元分类领域中。在不考虑集成学习算法,不考虑特定的数据集的时候,在分类算法中SVM可以说是特别优秀的。

二、线性可分SVM

1、感知机 vs 线性可分SVM

感知机:分类错误的样本离分割平面的距离和最小

线性可分SVM:最大化支持向量到分割平面的距离和,即让离超平面比较近的点尽可能的远离这个超平面(离超平面足够远的点基本上都是被正确分类的;离超平面很近的点,这些点比较容易分错)

2、一些概念

  • 线性可分(Linearly Separable):在数据集中,如果可以找出一个超平面,将两组数据分开,那么这个数据集叫做线性可分数据。
  • 线性不可分(Linear Inseparable):在数据集中,没法找出一个超平面,能够将两组数据分开,那么这个数据集就叫做线性不可分数据。
  • 分割超平面(Separating Hyperplane):将数据集分割开来的直线/平面叫做分割超平面。
  • 间隔(Margin):数据点到分割超平面的距离称为间隔。
  • 支持向量(Support Vector):离分割超平面最近的那些点叫做支持向量。

3、线性可分SVM推导(重点!)

①支持向量到超平面的几何距离

机器学习笔记(七):SVM_第8张图片机器学习笔记(七):SVM_第9张图片

备注:SVM中支持向量到超平面的函数距离一般为1(原因:假设w^{^{T}}x+b=\pm 1等于k,w^{^{T}}x+b=\pm 1两边同时除以k,相当于w变成了\frac{w}{k},b变成了\frac{b}{k},替换掉了原来的,直接进行w和b的更新)

②SVM模型是让所有的分类点在各自类别的支持向量的两边,同时要求支持向量尽可能地远离这个超平面,用数学公式表示如下:

机器学习笔记(七):SVM_第10张图片

③SVM目标函数/损失函数为(等价于②):

机器学习笔记(七):SVM_第11张图片

④将目标函数和约束条件使用KKT条件转换为拉格朗日函数,从而转换为无约束的优化函数。备注:每个样本对应有一个β

机器学习笔记(七):SVM_第12张图片

⑤拉格朗日对偶化

等价于,即:先求优化函数对于w和b的极小值,然后再求解
对于拉格朗日乘子β的极大值。

⑥求解函数L极小化的时候w、b和β的取值:

机器学习笔记(七):SVM_第13张图片

求解出来的w和b带入优化函数L:

机器学习笔记(七):SVM_第14张图片

机器学习笔记(七):SVM_第15张图片

备注:β值的求解使用SMO算法

根据求解出的β最优解β^{*}β*计算w*和b*(一般使用所有支持向量的计算均值来作为实际的b值),(xs,ys)即支持向量:

机器学习笔记(七):SVM_第16张图片

根据KKT条件中的对偶互补条件(松弛条件约束),支持向量必须满足一下公式:

机器学习笔记(七):SVM_第17张图片

4、线性可分SVM算法流程

输入线性可分的m个样本数据{(x^{1},y^{1}),(x^{2},y^{2}),...,(x^{m},y^{m})},其中x为n维的特征向量,y为二元输出,取值为+1或者-1;SVM模型输出为参数w、b以及分类决策函数。

机器学习笔记(七):SVM_第18张图片

5、线性可分SVM案例

给定三个数据点:正例点x1=(3,3),x2=(4,3), 负例点x3=(1,1),构造此时的约束优化条件。

机器学习笔记(七):SVM_第19张图片

6、线性可分SVM总结

  • 要求数据必须是线性可分的;
  • 纯线性可分的SVM模型对于异常数据的预测可能会不太准;
  • 对于线性可分的数据,SVM分类器的效果非常不错。

 

三、SVM的软间隔模型

解决数据集存在异常点的问题(正常数据本身是线性可分的,但是由于存在异常点数据,导致数据集不能够线性可分)

1、一些概念

硬间隔:线性划分SVM中的距离度量,在线性划分SVM中,要求函数距离一定是大于1的,最大化硬间隔条件为:

软间隔:SVM对于训练集中的每个样本都引入一个松弛因子(ξ),使得函数距离加上松弛因子后的值是大于等于1。松弛因子(ξ)越大,表示样本点离超平面越近,如果松弛因子大于1,那么表示允许该样本点分错,过大的松弛因子可能会导致模型分类错误。函数中的C>0是惩罚参数,是一个超参数,类似L1/L2 norm的参数;C越大表示对误分类的惩罚越大,也就是越不允许存在分错的样本;C越小表示对误分类的惩罚越小, 也就是表示允许更多的分错样本存在;C值的给定需要调参。

机器学习笔记(七):SVM_第20张图片

2、SVM的软间隔模型推导

等价于

机器学习笔记(七):SVM_第21张图片

机器学习笔记(七):SVM_第22张图片

最终优化后的目标函数/损失函数和线性可分SVM模型基本一样,除了约束条件不同,也就是说也可以使用SMO算法来求解。

机器学习笔记(七):SVM_第23张图片

3、支持向量(硬间隔vs软间隔)

  • 在硬间隔最大化的时候,支持向量比较简单,就是离超平面的函数距离为1的样本点就是支持向量。
  • 在软间隔中,根据KKT条件中的对偶互补条件: β(y(wx+b)-1+ξ)=0和μξ=0,从而有:
    • 当0<βi≤C的时候,并且ξi=0的样本点均是支持向量(即所有的0<βi
    • 当0<βi

4、SVM的软间隔模型算法流程

输入线性可分的m个样本数据{(x1,y1),(x2,y2),...,(xm,ym)},其中x为n维的特征向量,y为二元输出,取值为+1或者-1;SVM模型输出为参数w、b以及分类决策函数。

机器学习笔记(七):SVM_第24张图片

 

四、非线性可分SVM(针对完全不可以线性可分的数据)

1、多项式回归回顾

在线性回归中,通过多项式扩展将低维度的数据扩展成为高维度的数据,从而可以使用线性回归模型来解决问题。也就是说对于二维空间中不是线性可分的数据,将其映射到高维空间中后,变成了线性可分的数据。

机器学习笔记(七):SVM_第25张图片机器学习笔记(七):SVM_第26张图片机器学习笔记(七):SVM_第27张图片

启发:

将SVM线性不可分的数据映射到高维空间中,数据就会变成线性可分的,从而就可以使用线性可分SVM模型或者软间隔线性可分SVM模型。

2、非线性可分SVM的优化目标函数

机器学习笔记(七):SVM_第28张图片

Ф为从低维特征空间到高维特征空间的映射函数

可以看到,只需要将原来的低维空间中的两个向量的点积转换为高维空间中两个向量的点积即可。

问题:

如果原始空间是n维,那么我们会得到一个n(n+3)/2维的新空间;这个数目是呈爆炸性增长的,这给计算带来了非常大的困难,而且如果遇到无穷维的情况,就根本无从计算。

3、核函数

3.1  概念

假设函数Ф是一个从低维特征空间到高维特征空间的一个映射,那么如果存在函数K(x,z), 对于任意的低维特征向量x和z,都有:K(x,z)=\o (x)\cdot \o (z),称函数K(x,z)核函数(kernal function)。

核函数在解决线性不可分问题的时候,采取的方式是:使用低维特征空间上的计算来避免在高维特征空间中向量内积的恐怖计算量;也就是说此时SVM模型可以应用在高维特征空间中数据可线性分割的优点,同时又避免了引入这个高维特征空间恐怖的内积计算量。即:用低维空间中少的内积的计算量来让模型具有高维空间中的线性可分的优点。

3.2  实例

两个向量x_{1}=(\mu _{1},\mu _{2})^{T}x_{2}=(\eta_{1},\eta _{2})^{T},映射到五维空间后的内积为:

公式:。可以发现两者之间非常相似,所以我们只要乘上一个相关的系数,就可以让这两个式子的值相等,这样就可以将五维空间的一个内积转换为两维空间的内积的运算。

机器学习笔记(七):SVM_第29张图片

计算量对比:

映射到高维:11次乘法+4次加法;

近似计算:3次乘法+2次加法;

加系数后的近似计算:4次乘法+2次加法;

3.3  核函数的种类

  • 线性核函数(执行速度快)

  • 多项式核函数(用得较多):其中γ、r、d属于超参,需要调参定义

  • 高斯核函数(用得较多,比较适合成团的数据一般先用线性核函数做(因为线性执行速度快),效果不好再用高斯核函数。多项式核函数能做的高斯核函数都能做,高斯可以把低维的数据映射到无穷大的高维空间):其中γ属于超参,要求大于0,需要调参定义

  • Sigmoid核函数(基本不用):其中γ、r属于超参,需要调参定义

 

机器学习笔记(七):SVM_第30张图片

3.4  高斯核函数证明(扩展)

机器学习笔记(七):SVM_第31张图片

3.5  核函数总结

  • 核函数可以自定义;核函数必须是正定核函数,即Gram矩阵是半正定矩阵;
  • 核函数的价值在于它虽然也是将特征进行从低维到高维的转换,但核函数它事先在低维上进行计算,而将实质上的分类效果表现在了高维上,也就如上文所说的避免了直接在高维空间中的复杂计算;
  • 通过核函数,可以将非线性可分的数据转换为线性可分数据;

机器学习笔记(七):SVM_第32张图片

 

五、SMO

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(机器学习,机器学习笔记)