支持向量机推导

    本文记录的目的是方便自己学习和复习,有误之处请谅解,欢迎指出。

   支持向量机(SVM)是算法工程师最耳熟能详的机器学习模型之一,这节对SVM作粗略的推导。

   SVM旨在找到一个超平面使得正负样本的距离该平面的距离最大。如下图所示,通常存在多条可划分正负样本集的超平面,为了区分效果最好,需要找到一条间隔最大化的超平面,在图中,红色超平面的划分效果最好。

       通过直线方程知道,超平面公式为:

超平面

其中,wb为超平面参数,x为样本值。通过点到直线的距离公式容易得到任意样本x到超平面的距离为:

超平面距离公式

    假设有样本集D=(X1,Y1),(X2,Y2),(X3,Y3),...,(Xn,Yn), 使用超平面对其正确分类,满足以下式子:

    等同于:

    下图中距离超平面最近的几个样本点使得等式成立,也就是常说的支持向量。通过平行直线之间的距离公式,可知,正负两类之间的距离间隔为:

    如下图:

    SVM目的是最大化样本到超平面的距离,在能够正确分类的情况下,也就是最大化间隔\gamma ,即最小化|| w||。问题转为求极值条件问题

    拉格朗日方法求极值:

    上式等价于:

    由于上式不容易求出结果,所以通过弱对偶性进行变换:

    证明弱对偶性成立(鸡头凤尾,截图来自视频,相关视频连接见文章底部)

弱对偶性

    现在两式之间的关系是小于等于,对我们的作用不是很大,我们需要取等于号。为了式子两边相等,需要证明其强对偶性,由于SVM属于凸优化,且满足Slater条件(凸优化 + Slater条件 → 强对偶性),这时我们转化为求下式:

    现在分别对L(w,b,a)w,b求偏导等于0得到:



    将上式带入L(w,b,a),消去w,b得到:

    即:

    用SMO解出a后,求出w,b的值,即可得出模型:

    由于上述过程中证明了强对偶性,因此满足KKT条件,即w,b,a之间存在一定关系

    观察发现,KKT条件成立,需要a_{i} =0y_{i}(w\cdot x_{i}+b)-1=0 。如果a_{i} =0,则此样本不会参与模型参数的计算,对超平面无影响;如果y_{i}(w\cdot x_{i}+b)-1=0 ,则此样本就是超平面上的支持向量。

    这就形成了SVM的一个重要特性——决策超平面的计算仅与支持向量有有关。

    推荐一个非常不错的SVM推导视频:https://www.bilibili.com/video/BV1Hs411w7ci?p=8

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容