机器学习之支持向量机(SVM)

一.前言

支持向量机(SVM)主要针对于线性可分和线性不可分(软间隔)和线性不可分的数据分布下使用,类似于逻辑回归(LR)是做不到线性不可分的和虽然线性可分但是需要软间隔的情况下。

二.原理流程

     1.首先需要明确的前提条件是支持向量是未知的,并且带有软间隔的情况下是有(松弛变量)的。定义训练数据集:D={(x1,y1),(x2,y2).......(xN,yN)}(

xi为数据集第i个数据,标签要么为1,要么为-1。

2.定义几何间隔(算法最终围绕思想间隔最大化):假设超平面为f(x)=w1x+b1(1),那么任意样本点的几何间隔定义为:机器学习之支持向量机(SVM)_第1张图片(2),那么如果是支持向量的几何间隔为:(3)。(注:(2)式的理解说白了就是点到直线的距离(欧式距离)):机器学习之支持向量机(SVM)_第2张图片,(2)式的yi为了得到的值为正值,||w1||为向量w1的二范数。

3.最大化支持向量的几何距离为:机器学习之支持向量机(SVM)_第3张图片(4),化简(4)式中约束条件得到:机器学习之支持向量机(SVM)_第4张图片(5);进而为了简洁令:机器学习之支持向量机(SVM)_第5张图片,得到:(6)。

4.由于最大化,等效于最小化,得到目标函数为(含约束条件):机器学习之支持向量机(SVM)_第6张图片(7)。

5.(7)式为典型的含有约束条件的凸二次规划问题,那么正面求解很难做到;所以运用拉格朗日乘子法得到拉格朗日乘子法目标函数,再利用对偶问题求解方法进行求解:机器学习之支持向量机(SVM)_第7张图片(8)。

6.(8)式中≥0,并且我们数据集样本 ≥0(9),所以得到:机器学习之支持向量机(SVM)_第8张图片

那么原约束问题等效于:(11)

这个式子并不好求,里边有拉格朗日乘子并且为约束条件。所以利用对偶求解:机器学习之支持向量机(SVM)_第9张图片

用(8)式分别对w2和b2求偏导可得:机器学习之支持向量机(SVM)_第10张图片;将这两个结果带入(8)式可得:

机器学习之支持向量机(SVM)_第11张图片

利用序列最小化算法(SMO)和之前的kkt条件及式(16)等计算先求解得到,最终计算得到w2和b2:

 机器学习之支持向量机(SVM)_第12张图片

 

 

对于任意训练样本,都会有 ;如果则有

相反,则样本不会出现在算法参数求解式子中,这也就说明了SVM最终的训练结果只与支持向量相关(求解模型参数过程也会得到前边刚开始所未知的支持向量)。

7.加入软间隔,也就是在训练样本中允许出现几何间隔小于支持向量的几何间隔:

机器学习之支持向量机(SVM)_第13张图片

用式(17)代替式(7)。

8.梳理一下大概流程:

输入数据集:D,设定惩罚参数C且

构造凸优化问题(包括拉格朗日乘子法、对偶求解等):

也就是式子(16);

利用SMO进行求解得到:

机器学习之支持向量机(SVM)_第14张图片

 

最终求解得到超平面:

附上最终的图:

机器学习之支持向量机(SVM)_第15张图片

此图为示意图,并且三个方程等号右边的不是标签值,也不是特征值,只是表示几何间隔大小还是相对支持向量来说的。

三.非线性不可分SVM原理 

      对于非线性不可分来说,那么一种重要的途径就是降维或者升维,显然这个问题可以去升维试一下,通过非线性变换在高维进行线性可分;由于线性可分低纬状态下目标函数(16)是样本向量的内积,所以不需要在训练开始就进行非线性变换,而是用核函数(核技巧)等效代替并在式(16)直接替换,这里边为什么用核函数代替我想大家了解,在求解过程中就会求解出高纬的模型参数;由于特征直接含有了低纬特征的二次幂等,所哟得到的模型也就是曲面,那么就解决了线性不可分问题。大致流程为:

1.输入训练集:D

2.选取适当的核函数K(x,z)和惩罚项参数C,构造最终类似式(16)的凸二次规划问题:

机器学习之支持向量机(SVM)_第16张图片

3.找到 的一个分量并满足

得到:

 

4.最终得到分类器函数为:

机器学习之支持向量机(SVM)_第17张图片

注意此表达式中核函数为高斯核。

你可能感兴趣的:(机器学习,基础算法模型,机器学习,支持向量机,人工智能)