zoukankan      html  css  js  c++  java
  • 一些知识点的初步理解_6(核函数,ing...)

                                                                                                                   

           在SVM中经常听说核函数,关于各种核函数的推导公式写得天花乱坠。SVM大概意思是说将低维不可分的样本映射到高维空间中后就线性可分了,由于最后用训练出来的模型进行分类预测  时需要求高维空间中映射特征间的内积,而核函数的功能就是我们计算时不需要考虑高维空间的具体形式,降低了其计算复杂度。

          下面就简单讲讲核函数的作用,当然这里是以2分类器为例。

          首先我们需要了解我们的目的是用训练样本学习到一个线性的表达式,即下面的公式:

            

        (1)

          通过训练数据可以学校到其中的权值向量w和阈值向量b,对于新来的特征向量x代入到上式中,求出y,如果y>0则为正例,y<0则为负例。

          上面过程看起来很简单,比较自然,且有核函数的相关理论可以知道,求出的w表达式为:

        (2)代入到上面那个公式就可以得到

                 (3)

          到目前为止,我们新来一个样本,只需让它与所有的训练样本做内积,然后线性相加等操作即可,比较幸运的是,只有当为支持向量时才不为0,其它位置的都为0,所以只需要进行少数的线性组合计算即可。

          现在还没有必要使用核函数,那是因为用上面的方法进行预测时,样本本身具有线性可分的特点。如果我们在样本空间下不能够线性可分呢?那么这样求出的w和b用来预测就是错误的了。

         如果低维线性不可分,但在高维中线性可分,这样就需要将低维的x映射到高维的了,因此在公式(3)中的内积映射为

      我们把映射后的内积用一个函数表示K(x,z)表示,这个函数就是我们这里讲的核函数了。即

      (4)

      因为公式(4)左边的计算复杂度为核函数的计算复杂度,核函数是由为映射过的特征x和z构成的,所以复杂度比较低,不像公式(4)的右边,由高维的特征向量构成,复杂度高。

    因此我们的问题转化成了,当来了一个新的向量x,对其分类时使用下面的公式:

      (5)

      公式(5)后面的内积我们就用核函数代替了,那么我们为什么这么有必要用核函数去代替呢?除了开始说的的为了减轻运算复杂度(也就是运算量)外,另外一个原因就是我们的映射函数很难确定,不好寻找。

      到此为止,我们已经知道了核函数的部分作用了。

      当然了,至于什么样的核函数K能够代替,这就是核函数的有效性另一套理论了,不是本次所讲述的重点。

     

     

      参考文献:网友JerryLead的博客:http://www.cnblogs.com/jerrylead/  

     

     

     

     

     

    作者:tornadomeet 出处:http://www.cnblogs.com/tornadomeet 欢迎转载或分享,但请务必声明文章出处。 (新浪微博:tornadomeet,欢迎交流!)
  • 相关阅读:
    Python列表List增删改查、拷贝
    面向对象之继承——python篇
    面向对象——python篇
    异常——python基础篇
    函数进阶
    文件操作——python基础篇
    函数(一)——python基础篇
    字典——python基础篇
    特有的字符串格式化函数format——python篇
    webdriver对应谷歌版本下载地址
  • 原文地址:https://www.cnblogs.com/tornadomeet/p/2597675.html
Copyright © 2011-2022 走看看