• SVM算法 机器学习


    目录

    梯度下降法、拉格朗日乘子法、KKT条件回顾
    感知器模型回顾
    SVM线性可分
    SVM线性不可分
    核函数
    SMO

    SVM线性可分,SVM线性不可分,核函数,要求会推导

    ————————————————————————————

     

     

    学习率(步长)可以是任何数,如果是二阶偏导数的话,则为牛顿法

     

     优化问题:

      给定一个目标函数,给定一些约束条件,就构成了一个优化模型。迭代必须是无约束的目标函数才可迭代。

     

     

     对偶问题举例:1、求最小值然后求最大值,转化为求最大值再求最小值。。2、求一个数的最大值转化为求此数的相反数的最小

     KKT条件的三种证明方法对自己看优化问题大有裨益,在此扩展一下

     为了不改变原来的约束条件,β只能>=0,因为β如果大于0的话,g(x)可就<=0不了了。

    而要求目标函数L的最小值的话,如果f(x)之后的东西都等于0的话,那么求f(x)的最小值也就是求L的最小值了。,很明显,后面的东西不等于0,既然不等,我们就要想办法证明什么情况下等于0。

    因此,证明方式一:βg=0

      如下图,假如 ,一开始不考虑g(x)<=0这个约束条件,只求f(x)的极小值,求极小就是求导等于0,就能得到一个最优解x*,

      ①如果x*代入约束条件g(x)<=0(也就是下图的有g(x)<=0构成的约束区域),恰好小于0,那么说明本来就在约束区域内,既然没有起作用,原函数f(x)后面的东西是不是就是没用的?没用的自然就是0咯,g(x)<0,那么只能是β=0咯

      ②如果x*代入约束条件g(x)<=0后,x*没在约束区域内,它是在区域外(>0)或者在区域边缘(=0)上,大于0不满足咱们的g(x)<=0的约束条件,pass掉,那只能找咱们等于0的时候了,在圆上,那就是g(x*)=0,那完了,g(x)=0了,βg也等于0 了。

      证明完毕。

     证明方式二:

      如下图,转化为了从最大值里面挑一个最小值的问题。引入了上界的概念,比如cosx,1,2,3,所有1的倍数都是它的上界,但是1是最小的上界。

     最终目的是求x与β的,求β最大值可不好求啊,无数个啊朋友们,所以这里用到对偶了,先求最小再 求最大值

     

     最后βg=0.

    证明方式三:

      求minf(x),在约束条件g(x)<=0下,加入松弛变量a2,使得g(x)+a2=0,本来是加a的,为了保证它是正的,所以平方了一下。

    原函数成了这样:L=f(x)+λ(g(x)+a2);为了不改变原来的约束条件,λ>=0

    接下来求导就可以了

    可知 

     因此,λg=0

    三种证明条件的方法完毕。

    所有求不等式的条件

     感知器模型:

      感知器算法是最古老的分类算法之一,原理比较简单,不过模型的分类泛化能力比较弱,不过感知器模型是SVM、神经网络、深度学习等算法的基础。
    感知器的思想很简单:比如班级有很多的同学,分为男同学和女同学,感知器模型就是试图找到一条直线,能够把所有的男同学和女同学分隔开,
    如果是高维空间中,感知器模型寻找的就是一个超平面,能够把所有的二元类别分割开。
    感知器模型的前提是:数据是线性可分的

     

     

    SVM

     SVM硬间隔

    前提:所有样本均分类正确

    目的:在该前提下,搭建一个(让离超平面比较近的点离超平面尽可能的远(也就是最大化硬间隔))的分类器

     

     

     wtx+b=0是超平面,假设所有样本都分类正确,设xs为距离较近的那些点,那么分类正确的离超平面比较近的点要尽可能的离超平面远。wTxs+b/w的二范数为最近的点到超平面的距离,假设wTxs+b的绝对值为1,得到上式

    如果所有样本点都分类正确,那么最近的那些点yiwTxs+b>=0(感知器知识)分对的时候,自然同号。

    而y是±1,wTxs+b也是±1,所以,yiwTxs+b=1,既然最近的那些点=1,那么其他远的点,就是大于1了.

    所以其他的远的点就是yiwTxi+b>=1

     

    m个约束条件,引入的超参也就有m个,每个样本都有对应的参数βi

     

     求J(w)的最小值,找L和J(w)的关系,这部分是<=0的,所以J(w)是L关于β的最大值(只有关于β,其他都是我们要求的参数),求J(w)最小,再套个min就好。

     求最小值,就是求偏导咯

    算到这里是用β表示w和b,把这两个表达式代入目标函数L中去,此时还有一个未知参数β

     

    那么到这一步最小值求完了,外面还套着一层max,接着求max值

    来源于,于是把此带进去作为约束条件

     该问题通过一系列转化:

     这里要求的未知参数是m个β值,非常麻烦,所以后续会有SMO算法收拾它

     

     

     

     

     

     SVM软间隔

     

     

     

     

     

     

     

     

     

     非线性可分SVM模型

    升维后再内积的话维度实在太多太多。我们设法使一个函数来代替升维后的内积,此类函数即为核函数,共三个参数可调,除了图中框起来的,还有相关的系数可调,如下图

     例子:0.8476即为相关的系数,也是第三个可调的参数

     

     

     

     SMO算法

    核心原理:迭代与优化原理:θnew=f(θold),用自己,表示自己

                 θnewold=Δθ

    作用:求下列约束优化问题的最优解β*

    等价于

     分离超平面为g(x)=wTx+b

    推导过程太复杂,不再作多阐述,这里给出结果与算法的实现

     

    SMO不适合大批量数据,参数太多,计算太复杂

     SVR算法其实就是线性回归的对偶问题,本质还是线性回归问题罢了

     

     

  • 相关阅读:
    网络游戏
    嘎嘎
    Failed to install *.apk on device 'emulator-5554': timeout
    安卓开发真机遇到Failed to install Spaceassault.apk on device 'HT1CKV205198': timeout 测试机没有问题
    java匿名内部类
    TextView tv01=(TextView)this.findViewById(R.id.TextView01); tv01.setText("设置文字背景色");
    android 项目中出现红色感叹号的解决方法
    使用block来解决实现switch解决字符串
    oc中的block
    不可变数组或者可变数组进行排序
  • 原文地址:https://www.cnblogs.com/qianchaomoon/p/12130129.html
Copyright © 2020-2023  润新知