vlambda博客
学习文章列表

支持向量机算法学习笔记(一)


















1. 函数间隔与几何间隔


假设超平面为:



样本点

支持向量机算法学习笔记(一)


到超平面的函数间隔为:


支持向量机算法学习笔记(一)


可知,若

支持向量机算法学习笔记(一)


则该样本为正样本;反之,则为负样本。

由函数间隔公式可知,若参数w和b成倍的增加,函数间隔亦会成倍的增加,为了统一度量,我们需要对超平面的法向量w加上约束条件,即几何间隔。


几何间隔的定义为:


支持向量机算法学习笔记(一)


2. 支持向量机算法原理


支持向量机的算法原理是最大间隔分类思想,即最大化正负样本的最小间隔,如下图:


支持向量机算法学习笔记(一)


选择一个超平面,使得正负样本的最小间隔最大,假设我们找到了最优超平面,使得正负样本的间隔最大,如下图:


支持向量机算法学习笔记(一)


平移超平面往上或往下,与超平面平行线相交的样本点为支持向量,如下图表示:


支持向量机算法学习笔记(一)



3. 支持向量机的目标函数


支持向量机的原理是最大化正负样本的最小间隔,因此目标函数为:


支持向量机算法学习笔记(一)

令最小的函数间隔为1,因此所有样本的函数间隔的约束条件为:


支持向量机算法学习笔记(一)


目标函数等价为:

支持向量机算法学习笔记(一)


为了便于计算,目标函数等价为:

支持向量机算法学习笔记(一)


4. 支持向量机目标函数的优化过程


我们利用拉格朗日函数将有约束的目标函数转换为无约束的目标函数:


支持向量机算法学习笔记(一)

其中支持向量机算法学习笔记(一),m表示样本总数


由于引用了拉格朗日乘子,优化的目标函数等价为:


支持向量机算法学习笔记(一)


目标函数的最优化问题转换为对偶问题:


支持向量机算法学习笔记(一)


我们先里到外去求解模型参数。


令偏导数等于0,即:

支持向量机算法学习笔记(一)


支持向量机算法学习笔记(一)


得到:


支持向量机算法学习笔记(一)

支持向量机算法学习笔记(一)


将上述参数等式代入目标函数,得:


支持向量机算法学习笔记(一)


该等式只包含α参数,因此函数可记为:



支持向量机算法学习笔记(一)


最大化上式,可得支持向量机算法学习笔记(一)



求解支持向量机算法学习笔记(一)后,代入参数w与α的等式,得支持向量机算法学习笔记(一)


支持向量机算法学习笔记(一)


根据拉格朗日函数得KKT条件,得:


当α>0时,有:

支持向量机算法学习笔记(一)


即该样本点是支持向量,通过上式可求得参数b。


5. SVM算法过程总结


假设共有m个训练样本,如何计算SVM模型参数w和b


1) 由上节可知,最大化下式:

支持向量机算法学习笔记(一)

约束条件为:

支持向量机算法学习笔记(一)

支持向量机算法学习笔记(一)

求出参数α。


2)由参数α求出参数w:


支持向量机算法学习笔记(一)


3) 参数α大于0得样本是属于支持向量支持向量机算法学习笔记(一),根据这些样本求解对应得参数支持向量机算法学习笔记(一),有:


支持向量机算法学习笔记(一)

因此:


支持向量机算法学习笔记(一)


求所有满足α的所有样本的参数b的平均值,若α>0的样本共有M个,那么参数b的平均值为:


支持向量机算法学习笔记(一)


4)根据(2)(3),我们得到了参数w和b,因此超平面表达式为:



结果判断:


1)w*x + b >0 ,则为正样本;


2) w*x + b >0 ,则为负样本;


参考:

https://www.cnblogs.com/pinard/p/6097604.html


欢迎扫码关注: