• SVM – 核函数


      核函数的起源是对于线性不可分的分类情况,其实可以通过p次方多项式,及非线性模型进行分类;然后对于这类非线性多次方的,其实可以按照广义线性模型来进行升维变形,使之成为线性模型,这样就可以放到SVM中来进行处理了(svm只能处理非线性模型)。

      但是升维之后是有维度爆炸现象的(二次方对应6维度,三次方对应19维度),为了解决这个问题,核函数出场了,简单讲核函数就是计算计算是在低维进行,但是形式却是映射到高维。

      SVM的优化目标:

      假设xi和xj都是低维非线性的函数,我们定义映射到高维的函数为φ(x),那么上面的式子可以写成:

      核函数,就是实现了计算在低维计算,返回形式是高维:

    K(x, z) = φ(x) * φ(z)

      但是这种映射并不是容易获取的,需要满足Gram矩阵K = [K(x,z)]是半正定型,也就是说,一个函数想要成为核函数,必须要满足里面任何点的集合形成的Gram矩阵是半正定矩阵。

      这里解释一下,gram矩阵是指n维欧式空间中任意k个向量内积组成的矩阵:

      关于正定矩阵:M是n阶方阵,对于非0向量,z.T *M*z > 0,矩阵的乘法还是矩阵,这里> 0,我理解是因为乘法形式的行列式的值是大于0的。

      半正定矩阵和正定矩阵就是一字之差:z.T * M * z >= 0,半正定允许等于0,所以范围更加宽广,所以血统不那么纯正,所以称之为半正定(越纯正要求越严格)。

      话题再扯回来,如果想要满足核函数,那么函数K的矩阵要满足Gram矩阵是半正定的;这个门槛其实很高的,好在我们数学大佬们已经带我们走出探索的沼泽,并且亲自指出了常用的核函数与:

      线性核函数(Linear Kernel)

      K(x, z) = x·z,线性svm就是使用这个核函数;

      多项式核函数(Polynomial Kernel)

      k(x, z) = (γx·z + r)^d,其中gamma,r以及d需要自己调参;

      高斯核函数(Gaussian Kernel),也称之为径向基和函数(Radial Basis Function,RBF):

      K(x, z)=xp(γ||xz||²)

      Sigmoid核函数:

      K(x,z)=tanh(γxz+r),其中γ和r需要自己调参;

    参考:

    https://www.cnblogs.com/pinard/p/6103615.html 

  • 相关阅读:
    什么是Spring的IOC和DI
    2021年ACP考试复习笔记-云服务器ECS知识点及练习
    个人站点搭建完成啦,欢迎前来参观~
    准备一台标准服务器(模版机)!
    正则表达式几个常用的特殊字符!
    Shell的几个重点工具
    Shell入门,关于语法的一些简单玩意儿
    Mysql for Linux的安装以及远程访问
    在学到MySQL索引时,涉及到了B树和B+树.聊一聊
    Linux的一些问题的处理(重要目录,/配置静态IP/主机名/hosts映射)
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/12053151.html
Copyright © 2020-2023  润新知