• 机器学习:SVM公式推导


       

    引言

       

    对于SVM的大致原理之前已经讲过了,但是对于公式的推导,很多书都并未做要求,而且在实际应用过程中并未涉及过深,但鉴于台大机器学习课程中讲到了,自己为了巩固自己的学习,也梳理一遍SVM中公式的推导

       

    此处考虑了C,也就是惩罚因子,不再是之前的hard-margin

       

    推导过程

       

    如果是soft-margin,那就说明我们能容忍一些错误,那么目标问题转化为

       

       

    其中C比较大的时候,对离群点重视,越不要犯错越好,C比较小的时候,不是很看重离群点,重点在于找出margin越大越好

       

    对于上面的问题我们无法求解,那么我们不妨转变一下思维,不去看犯了多少错误,而去看一共犯的错误有多大,用ξ记录违规了多少

       

       

    此时的问题已经转换为二次规划问题了,对于二次规划问题又可以用之前的方法转换为对偶的二次规划问题了

       

    同样是利用拉格朗日算法,由于有两组条件,所以需要两个参数α和β来作为拉格朗日乘子

       

       

    为了求L的极值,我们得对这些变量求偏微分,首先我们对ξ做偏微分

       

       

    得到β和C和α的关系,这样我们可以把β换掉,这样只考虑α

       

    将β带进去得到:

       

       

    这个式子如果不看条件的话跟hard margin的一样,这样的话我们可以对bw做偏微分

       

       

    这样我们得到α和yn的关系,以及w和α和yn以及zn的关系,带入式子中

       

    问题就转换为跟原来差不多,只是α的条件多了一个C

       

       

    然后把二次规划问题丢到QP解中可以解得到α,但是b的算法跟原来不一样,KKT条件已经变了

       

       

    主要是b怎么算,hard margin SVM中与soft的对比

       

       

    主要是y和ξ那一项比较麻烦

       

    可以发现用free SV就可以消掉,于是b的计算方式还是用支持向量来算,也就是free SV

       

    α的三种情形

       

  • 相关阅读:
    MongoDB + Spark: 完整的大数据解决方案
    07对象字面量
    05JavaScript中数组的使用
    04JavaScript中函数也是对象
    03JavaScript中的函数预解析
    02通过arguments实现方法重载
    01函数重名问题
    mxGraph 学习笔记 --mxGraph常用功能代码
    mxGraph学习笔记--设置节点鼠标事件
    mxGraph 学习笔记 --右键菜单
  • 原文地址:https://www.cnblogs.com/keedor/p/4463396.html
Copyright © 2020-2023  润新知