机器学习:SVM(支持向量机)原理推导

听说SVM是机器学习的分水岭,翻过这座大山机器学习就在眼前。本篇将详细介绍SVM的原理推导过程,包括线性、近线性、非线性、优化方法等,大量思想都源自于《统计学习方法》和刘顺祥《零基础入门python数据挖掘与分析》。python

首先咱们介绍数学中的距离公式
图片.png
d 表示 二位空间的一个点到直线 Ax+By+C=0的距离。算法

1、线性可分的SVM

引伸出函数间隔的概念
此概念是全部SVM推导的核心,咱们用式子表示:
图片.png
式子并不复杂,咱们分别介绍参数名称及含义:
等式左边表明 函数间隔,《统计学习方法》称硬间隔。
yi 为样本点类别yi={1,-1},分类用的-1和1,没有使用1和0是由于和后面计算有关。
xi 为样本点。
W'为超平面参数矩阵W的转置。
b 为超平面参数
函数间隔性质:
一、函数间隔永大于0,由于样本在超平面两侧正负号不一样,分类的正负号也不一样。
二、直线y=W'x+b为经过某同样本点的直线,同比例增长W'和b直线不变,可是函数间隔会成比例增长,所以咱们须要对原来函数间隔进行单位化处理。
图片.png
此时咱们的函数间隔就和距离公式的距离是同样的形式了。
此时的γ具备几何意义,故城几何间隔。机器学习

机器学习的关键我认为是构造目标函数,目标函数直接决定了模型的性质。函数

构造目标函数

这里咱们稍微讲一下SVM的核心思路,咱们找到一个最大限度区分样本的超平面。说的很是宽泛无数学含义,咱们能够举个例子,好比印度贫富差距大,但贫富的分布是和地理有关系的,假设某一地区能够用一条线把富人区和贫民区彻底且完美的分割开来,线是没有面积的,可是咱们但愿这条线尽量的宽,越宽咱们分的越清晰,甚至咱们能够贴着样本划线取得最宽分割带(超平面)。好比挖一条河河越宽两岸的分界线就越明显,分析预测就越可靠。放到上面就是咱们要求最大的几何间隔γ,而且咱们全部点都必须在超平面以外,即全部样本点到超平面的距离都必须大于最大几何间隔γ。
图片.png
若是超平面参数w,b同比例增加,函数间隔会成增加,可是几何间隔不会,上述关系也不会受到影响。对于函数间隔:yi类别的取值就能够定为任意值,-2,2,-0.1,0.1这种都行。这样咱们可使最近的几何间隔对应的函数间隔取1。
《统计学习方法》也只是稍微提了一下对函数优化没有影响因此取1,这里我把它细化一下,咱们取的是离超平面最近距离的点的函数间隔取1,不管你是增缩yi,仍是超平面参数w、b,均可以作到并且对优化函数没有影响。
如图下图转换函数:
图片.png
这就转化为一个凸二次规划的问题,广泛存在于机器学习问题。因此要掌握。学习

拉格朗日乘数法:

首先看一下拉格朗日乘数发的形式:
图片.png
图片展现的是最小的目标函数f(x)在受到g(x)>0的约束条件时的拉格朗日函数形式。其中,λ i 即为拉格朗日乘子,且λ i >0。上式就称为广义拉格朗日函数的极小极大问题。在求解极小值问题时,还须要利用对偶性将极小极大问题转换为极大极小问题,即
图片.png
根据如上介绍的拉格朗日数乘法,就能够将目标函数从新表示为
图片.png
看似未知变量挺多,可是是能够求最优的问题。
首先咱们求minw,b部分,知足最小的目标函数的参数值。
对w、b分别求导并令其导函数为0:
图片.png
在将求出的w值带入原式子,求max α的部分。
图片.png
原来的目标函数通过拉格朗日乘子法的变换,把二次规划的问题变成关于拉格朗日乘子α求函数最大值的问题。接下来咱们的问题就是求知足条件的α。
即:
图片.png
因为限制条件是个等式,在最优化的时候会好求的多,若是全部的解都不能知足以上条件,则表明α只能在边界取得最优化值,带入多个边界值,比较最优解。
这种算法很是繁琐,因而延伸出一种很是好用的算法SMO算法。优化