详解SVM模型

来源:互联网 发布:网络黑客头像 编辑:程序博客网 时间:2024/06/06 00:55

SVM 详解

首先SVM的来源于最早的线性分类器,所谓线性分类器,就是找出一个线性超平面将空间样本点分为两部分。

简单的线性分类器

如下图,

我们发现一个线性分类器将一个train data 上的样本空间分为两部分,有几户无数种这样的平面存在。我们需要求一个confidence最大的超平面,这样这个超平面的才能准确分类总体(或者说实际空间)

他的兄弟—–感知机

感知机算法
感知器是输入样本的线性二分类器,

f(x)=sign(w.x+b)

他的损失函数为

即所有错误分类点到超平面的距离之和

一般的,这样的感知机有无数个,这时候,感知器的置信度高低就会决定其对总体的估计能力了,所以,需要一种更优秀的线性分类器。
这时候支持向量机(另一种机,诞生啦!)

支持向量机

先看支持向量机的定义,
找到一个超平面将样本空间正确分类(机的概念来了),并且所有点到该平面的距离(集合距离)最大(这就是在说支持向量的意思)
表述成公式就是,
正确分类(无间隔考虑)

yi(w.xi+b)>0

间隔最大:
margin=maxw,byi(wi.xi+b)1||w||

然后我们根据这两个公式我们相当于有

maxw,bγ||w||

s.t.yi(wi.x+b)>γ

然后到这一步我们还是\gamma这个问题,这里gamma表述为函数距离,我们发现函数距离两边乘以相同的值,其实并不影响超平面,所以优化问题等同于只需要优化\dfrac{1}{||w||},这里将\gamma变化成了1,不影响优化,
所以有:
maxw,b1||w||

s.t.yi(w.xi+b)>1

到此其实就是一个svm的模型基本了,但是一般形式这样很少,原因两个:
1. 这个函数对于进一步求解不方便,因为优化数字在分母
2. 其实我觉得最早形式可能大家更愿意把他写成一个正则化参数+经验风险函数两部分在优化参数的时候

为了进一步进行计算,我们变化为:

minw,b||w||22

s.t.yi(wi.x+b)>1

对于一个带约束条件的优化问题一般使用拉格朗日对偶法进行解决,则有:

maxαminw,bL(w,b,α)=12||w||2i=0Nαiyi(w.xi+b)+iNαi

其中要求KTT条件为
1. 每一个参数都可以导,
2. 拉格朗日乘子大于等于0

首先对min的w,b做处理,其实也就是对w,b求偏导。则会有,

i=0Nαi.yi=0

代入有
变为求max 拉格朗日橙子的问题,变为min,有

软间隔问题

对于线性不可分的问题,指的是无论如何就是有一些点不满足到该超平面的间隔大于等于1(或者说都不大于等于最大间隔),则引入一个松弛变量$\xi$,意思就是加上一个这个松弛变量让他变成>=1.(其实就是加上某一个值后,让他输出正确)则为:

s.t.yi(wi.x+b)>=1ξi

那么对于支持向量的变化为,每个松弛变量要付出一个代价$\xi_i$,则现在需要优化的问题变为:
12||w||2+Ci=1Nξi

其中加个约束ξi>0