1.核心思想:在样本空间中,通过超平面的方法对样本空间进行划分,使用的是经典的线性方程的方式。W^t*X+b=0

其中W是法向量,决定了超平面的方向,b是位移项--偏移量。

可以联系神经网络算法,输入层与隐层之间的参数传递满足W^t*X+b,其中W是权值,b是偏置

假定分类正确,则认为输出结果y>0,分类错误,则认为输出结果y<0

令样本空间内的点满足如下关系::W^t*X+b>=1,y=1;W^t*X+b<=-1,y=-1 ------------式1

通过最小化样本空间的点数到超平面的距离进行超平面的参数确定。

名词解释::距离超平面最近的几个训练样本点使得式1的等号成立,这几个样本空间的点被称作“支持向量”,两个异类支持向量到超平面的距离之和为2/||W||,这个量被称作“间隔”。

支持向量机算法的目的就是找到具有“最大间隔”的超平面,也就是找到满足式1的约束条件前提下的能够使得间隔最大的参数.

要想使得2/||W||最大,可以使得||W||最小,更进一步使得0.5||W||^2最小。

2.min(0.5||W||^2)实际上是一个凸二次规划问题,可以使用拉格朗日乘子法。得到其对偶问题,将要求解的问题进行转化。

对目标函数和约束函数添加拉格朗日乘子,可以得到:

L(W,b,a)=0.5||W||^2+∑ai(1-yi((w^t)xi+b))

对w,b求偏导,得到关系等式:

w=∑aiyixi;0=∑aiyi

得到SVM的对偶问题:

goal function:  max  ∑ai-0.5∑∑aiajyiyj(xi^t)xj

boundary condation :∑aiyi=0

通过求解a,在对w,b进行求解。

f(x)=(w^t)x+b=∑aiyi(xi^t)x+b

在求解过程中要满足条件:

ai>=0;yif(xi)-1>=0;ai(yi(f(xi))-1)=0

求解这个问题可以使用二次规划的算法,问题的规模正比于训练样本数量,在实际中会造成很大的开销。

3.SMO算法

首先固定ai之外的所有参数,然后求取ai的取值上限,由于存在约束条件∑aiyi=0,如果固定ai之外的其他变量,则ai可以由其他的变量进行导出,于是,每次SMO选择两个变量ai,aj并且固定其他的参数,这样,在参数初始化之后,SMO算法会不断的执行目标函数 ∑ai-0.5∑∑aiajyiyj(xi^t)xj的求解并更新参数ai,aj,一直满足收敛条件

4.核函数

对原来的样本x进行变换,进行维度变换,使得变换后的样本满足线性可分的条件。引入核函数。

原来的方程进行变换f(x)=(w^t)x+b

变为:f(x)=(w^t)g(x)+b,其中g(x)指进行映射变换之后的样本的特征向量。其他的相应求解方法不变,还是利用拉格朗日乘子法进行对偶问题的转换。

goal function:  max  ∑ai-0.5∑∑aiajyiyj(g(xi)^t)g(xj)

boundary condation :∑aiyi=0

这里面涉及到(g(xi)^t)g(xj)的计算,这是两个映射的特征向量之间的内积运算。考虑到维度可能会很高,会到来很大的计算难度,引入核函数的方法。

k(xi,xj)=<g(xi),g(xj)>=(g(xi)^t)*g(xj)

其中k(xi,xj)就是核函数。

常见的核函数有:

支持向量机学习笔记-SVM

并且还可以对不同的核函数进行线性组合得到

5,软间隔

如果在样本空间中,有一些异常点,线性平面可以满足绝大部分的样本划分,但是存在几各异常点在超平面内部,这样就会造成,如果满足这几个异常点,就会是间隔变小,如果不满足的话,条件不收敛。提出了软间隔的概念,允许某些样本不满足约束条件。

在最大化间隔的同时,不满足约束条件的样本数要尽可能少。

优化目标改写为:

支持向量机学习笔记-SVM

其中的l0/1是损失函数。如果C是无穷大,则迫使所有的样本满足约束条件yi((Wi^t)*xi+b)>=1,如果C取得有限的值,允许存在一些不满足约束条件的值

常用的损失函数有:

支持向量机学习笔记-SVM

支持向量机学习笔记-SVM

接下来同样适用拉格朗日乘子法求解对偶问题。

6.支持向量回归SVR

回归问题,基于预测输出f(x)和真实输出y之间的差别计算损失,并使损失最小化。

假设容许的最小偏差为c,当且仅当损失大于c的时候,才会去计算损失。相当于以f(x)为中心,构建一个宽度为2c的间隔带,如果训练样本落在这个区域内,则认为预测正确。


相关文章: