核函数_核函数推导 - CSDN
核函数 订阅
支持向量机通过某非线性变换 φ( x) ,将输入空间映射到高维特征空间。特征空间的维数可能非常高。如果支持向量机的求解只用到内积运算,而在低维输入空间又存在某个函数 K(x, x′) ,它恰好等于在高维空间中这个内积,即K( x, x′) =<φ( x) ⋅φ( x′) > 。那么支持向量机就不用计算复杂的非线性变换,而由这个函数 K(x, x′) 直接得到非线性变换的内积,使大大简化了计算。这样的函数 K(x, x′) 称为核函数。 展开全文
支持向量机通过某非线性变换 φ( x) ,将输入空间映射到高维特征空间。特征空间的维数可能非常高。如果支持向量机的求解只用到内积运算,而在低维输入空间又存在某个函数 K(x, x′) ,它恰好等于在高维空间中这个内积,即K( x, x′) =<φ( x) ⋅φ( x′) > 。那么支持向量机就不用计算复杂的非线性变换,而由这个函数 K(x, x′) 直接得到非线性变换的内积,使大大简化了计算。这样的函数 K(x, x′) 称为核函数。
信息
应    用
随机过程,机器学习
外文名
kernel function
类    型
函数
中文名
核函数
学    科
统计学,机器学习
核函数历史
早在1964年Aizermann等在势函数方法的研究中就将该技术引入到机器学习领域,但是直到1992年Vapnik等利用该技术成功地将线性SVMs推广到非线性SVMs时其潜力才得以充分挖掘。而核函数的理论则更为古老,Mercer定理可以追溯到1909年,再生核希尔伯特空间(ReproducingKernel Hilbert Space, RKHS)研究是在20世纪40年代开始的。
收起全文
精华内容
参与话题
  • 核函数详解

    千次阅读 2019-03-21 16:01:48
    这篇博文开始的例子就很好地揭示了核函数的简单原理,写得很好! 1 核函数K(kernel function)定义 核函数K(kernel function)就是指K(x, y) = <f(x), f(y)>,其中x和y是n维的输入值,f(·) 是从n维到m维的...

    https://blog.csdn.net/kateyabc/article/details/79980880
    这篇博文开始的例子就很好地揭示了核函数的简单原理,写得很好!

    1 核函数K(kernel function)定义
    核函数K(kernel function)就是指K(x, y) = <f(x), f(y)>,其中x和y是n维的输入值,f(·) 是从n维到m维的映射(通常,m>>n)。<x, y>是x和y的内积(inner product)(也称点积(dot product))。

    举个小小栗子。
    令 x = (x1, x2, x3, x4); y = (y1, y2, y3, y4);
    令 f(x) = (x1x1, x1x2, x1x3, x1x4, x2x1, x2x2, x2x3, x2x4, x3x1, x3x2, x3x3, x3x4, x4x1, x4x2, x4x3, x4x4); f(y)亦然;
    令核函数 K(x, y) = (<x, y>)^2.
    接下来,让我们带几个简单的数字进去看看是个什么效果:x = (1, 2, 3, 4); y = (5, 6, 7, 8). 那么:
    f(x) = ( 1, 2, 3, 4, 2, 4, 6, 8, 3, 6, 9, 12, 4, 8, 12, 16) ;
    f(y) = (25, 30, 35, 40, 30, 36, 42, 48, 35, 42, 49, 56, 40, 48, 56, 64) ;
    <f(x), f(y)> = 25+60+105+160+60+144+252+384+105+252+441+672+160+384+672+1024
    = 4900.
    如果我们用核函数呢?
    K(x, y) = (5+12+21+32)^2 = 70^2 = 4900.
    就是这样!

    所以现在你看出来了吧,kernel其实就是帮我们省去在高维空间里进行繁琐计算的“简便运算法”。甚至,它能解决无限维空间无法计算的问题!因为有时f(·)会把n维空间映射到无限维空间去。

    那么kernel在SVM究竟扮演着什么角色?
    初学SVM时常常可能对kernel有一个误读,那就是误以为是kernel使得低维空间的点投射到高位空间后实现了线性可分。其实不然。这是把kernel和feature space transformation混为了一谈。(这个错误其实很蠢,只要你把SVM从头到尾认真推导一遍就不会犯我这个错。)

    这里写图片描述

    这里写图片描述
    我们成功地找到了那个分界线,这就是最直观的kernel啦!
    可能不太严谨,但是kernel大概就是这个意思,详细的数学定义楼上说的很好,就不赘述了。
    引用一句这门课的教授的话:
    “你在你的一生中可能会经历很多变故,可能会变成完全不同的另一个人,但是这个世界上只有一个你,我要怎样才能把不同的“你”分开呢?最直观的方法就是增加“时间”这个维度,虽然这个地球上只有一个你,这个你是不可分割的,但是“昨天在中国的你”和“今天在美国的你”在时间+空间这个维度却是可以被分割的。”

    We know that everything in the world can be decomposed into the combination of the basic elements. For example, water is the combination of hydrogen and oxygen. Similarly, in mathematics, basis is used to represent various things in a simple and unified way.

    In space, we can use n independent vectors to represent any vector by linear combination. The n independent vectors can be viewed as a set of basis. There are infinite basis sets in space. Among them, basis vectors that are orthogonal to each other are of special interests. For example, is a special basis set with mutually orthogonal basis vectors in the same length, where eiei is a vector that has all zero entries except the iith entry which equals 1.
    The inner product operator measures the similarity between vectors. For two vectors x and y , the inner product is the projection of one vector to the other.

    这里写图片描述

    1. Kernel Function
      A function can be viewed as an infinite vector, then for a function with two independent variables , we can view it as an infinite matrix. Among them, if and

    for any function , then is symmetric and positive definite, in which case is a kernel function.
    这里写图片描述
    这里写图片描述
    Here are some commonly used kernels:

    Polynomial kernel
    Gaussian radial basis kernel
    Sigmoid kernel
    3.1 补充知识
    The hyperbolic functions are:

    Hyperbolic sine:

    Hyperbolic cosine:

    Hyperbolic tangent:
    4. Reproducing Kernel Hilbert Space
    Treat as a set of orthogonal basis and construct a Hilbert space . Any function or vector in the space can be represented as the linear combination of the basis. Suppose we can denote as an infinite vector in : For another function , we have

    < f,g >
    这里写图片描述
    这里写图片描述

    1. A Simple Example
      这里写图片描述

    6 .
    线性核函数
    这里写图片描述

    这里写图片描述

    这里写图片描述

    二、现有的核函数统计如下:

    1. Linear Kernel

    线性核是最简单的核函数,核函数的数学公式如下:

    如果我们将线性核函数应用在KPCA中,我们会发现,推导之后和原始PCA算法一模一样,很多童鞋借此说“kernel is shit!!!”,这是不对的,这只是线性核函数偶尔会出现等价的形式罢了。

    1. Polynomial Kernel

    多项式核实一种非标准核函数,它非常适合于正交归一化后的数据,其具体形式如下:

    这个核函数是比较好用的,就是参数比较多,但是还算稳定。

    1. Gaussian Kernel

    这里说一种经典的鲁棒径向基核,即高斯核函数,鲁棒径向基核对于数据中的噪音有着较好的抗干扰能力,其参数决定了函数作用范围,超过了这个范围,数据的作用就“基本消失”。高斯核函数是这一族核函数的优秀代表,也是必须尝试的核函数,其数学形式如下:

    虽然被广泛使用,但是这个核函数的性能对参数十分敏感,以至于有一大把的文献专门对这种核函数展开研究,同样,高斯核函数也有了很多的变种,如指数核,拉普拉斯核等。

    1. Exponential Kernel

      指数核函数就是高斯核函数的变种,它仅仅是将向量之间的L2距离调整为L1距离,这样改动会对参数的依赖性降低,但是适用范围相对狭窄。其数学形式如下:

    2. Laplacian Kernel

      拉普拉斯核完全等价于指数核,唯一的区别在于前者对参数的敏感性降低,也是一种径向基核函数。

    3. ANOVA Kernel

      ANOVA 核也属于径向基核函数一族,其适用于多维回归问题,数学形式如下:

    4. Sigmoid Kernel

    Sigmoid 核来源于神经网络,现在已经大量应用于深度学习,是当今机器学习的宠儿,它是S型的,所以被用作于“激活函数”。关于这个函数的性质可以说好几篇文献,大家可以随便找一篇深度学习的文章看看。

    1. Rational Quadratic Kernel

      二次有理核完完全全是作为高斯核的替代品出现,如果你觉得高斯核函数很耗时,那么不妨尝试一下这个核函数,顺便说一下,这个核函数作用域虽广,但是对参数十分敏感,慎用!!!!

    2. Multiquadric Kernel

      多元二次核可以替代二次有理核,它是一种非正定核函数。

    3. Inverse Multiquadric Kernel

      顾名思义,逆多元二次核来源于多元二次核,这个核函数我没有用过,但是据说这个基于这个核函数的算法,不会遇到核相关矩阵奇异的情况。

    4. Circular Kernel

      这个核函数没有用过,其数学形式如下所示:

    5. Spherical Kernel

      这个核函数是上一个的简化版,形式如下所示

    6. Wave Kernel

      这个核函数没有用过,其适用于语音处理场景。

    7. Triangular Kernel

    三角核函数感觉就是多元二次核的特例,数学公式如下:

    1. Log Kernel

      对数核一般在图像分割上经常被使用,数学形式如下:

    2. Spline Kernel

    3. Bessel Kernel

    4. Cauchy Kernel

      柯西核来源于神奇的柯西分布,与柯西分布相似,函数曲线上有一个长长的尾巴,说明这个核函数的定义域很广泛,言外之意,其可应用于原始维度很高的数据上。

    5. Chi-Square Kernel

      卡方核,这是我最近在使用的核函数,让我欲哭无泪,在多个数据集上都没有用,竟然比原始算法还要差劲,不知道为什么文献作者首推这个核函数,其来源于卡方分布,数学形式如下:

    它存在着如下变种:

    其实就是上式减去一项得到的产物,这个核函数基于的特征不能够带有赋值,否则性能会急剧下降,如果特征有负数,那么就用下面这个形式:

    1. Histogram Intersection Kernel

      直方图交叉核在图像分类里面经常用到,比如说人脸识别,适用于图像的直方图特征,例如extended LBP特征其数学形式如下,形式非常的简单

    2. Generalized Histogram Intersection

      顾名思义,广义直方图交叉核就是上述核函数的拓展,形式如下:

    3. Generalized T-Student Kernel

      TS核属于mercer核,其数学形式如下,这个核也是经常被使用的

    4. Bayesian Kernel

    贝叶斯核函数还没有用到过。

    参考文献:
    [1] 机器学习里的kernel是指什么? - 算法 - 知乎. http://www.zhihu.com/question/30371867 [2016-9-6]
    [2] http://songcy.net/posts/story-of-basis-and-kernel-part-1/
    [3] http://songcy.net/posts/story-of-basis-and-kernel-part-2/

    展开全文
  • 核函数的深入浅出讲解

    万次阅读 2017-06-25 14:04:33
    前段时间热映的《星际穿越》想必大家都看过,在这部烧脑大片中,主角库珀进入到了高维度空间,在那里,时间这个维度变成实体存在,人们可以像散步一样沿着时间这个维度来回穿梭。 那么高维空间到底是什么样的?...

    前段时间热映的《星际穿越》想必大家都看过,在这部烧脑大片中,主角库珀进入到了高维度空间,在那里,时间这个维度变成实体存在,人们可以像散步一样沿着时间这个维度来回穿梭。

    那么高维空间到底是什么样的?

    有人说高位空间里其实只有数学意义,在实际中无意义,是这样的吗?

    又有人说高维空间里其实有更高级的生物,他们看我们,就像我们看在一个平面进行爬行的虫子一样。

    还有人说,若有生物能掌握高维时空领域,便能获取穿越宇宙的奥秘,取得无可估量的神秘力量!

    我们不去讨论这个玄妙的问题,也没有能力去讨论,但不管怎样,关于高维空间,至少有两点我们可以明确:

    (1)至少,我们可以用数学来表示高维空间。很简单呀,

    (x,y)是二维平面的一个点,那么(x,y,z,q)就是四维空间的一个点;

    (2)至少,低维空间一些看起来无解的数学问题,我们可以给映射到高维,从高维的视角来想解决的办法。

    关于这点,很多人不相信吧,这一集,我们要说的就是从高维空间里去解决一个低维的问题。更神奇的是,我们不仅要把一个无解的低维问题映射到高维去寻找办法,还可以用“核函数”这个东西,把解决办法再转到低维去处理。

    哦~~这实在太神奇了!

    先看下本文的大纲:

    1.回顾 

    2.回到最初的问题里——如何进行预测? 

    3.非线性问题如何预测?——向高维时空祷告 

    4.核函数——在低维时空里解决

    本集的内容其实也很简单:

    首先回顾前面的内容,前面说到问题转化为拉格朗日对偶问题,下一步就可以用SMO高效优化算法进行参数的拟合了。

    这里我们不接着讲如何使用SMO,而是假设已经用SMO拟合好了参数,现在要来预测,以及如何进行预测(即2.回到最初的问题里——如何进行预测?)。

    然后第三部分(3.非线性问题如何预测?——向高维时空祷告),我们要对非线性的预测问题进行讨论,这个非线性的问题在二维时空是无解的,我们就映射到高维时空里,让高维时空里的神仙们给我们想办法,哪买,想出了办法又怎么办?

    我们又不能开挂,接地气一点还是要回到低维空间去解决,那么就进入了第四部分(4.核函数——在低维时空里解决),核函数就是把神的旨意转化成人类语言的利器。

    1. 回顾

    用下面一张图来回顾前面的内容,

    我们前面的内容可以凝结成上面那幅图,但是最后一步SMO高效优化算法,这个我们等等再说,我们就假设已经通过SMO法拟合好了参数,现在要用这个拟合好的SVM模型去预测了。

    2. 回到最初的问题里——如何进行预测?

    假设,我们通过SMO高效优化算法,得到了最优的ai们,那么我们也就可以知道W(

    ),这条线性分类器也就出来了,它是:

    式子中< , >表示两个向量的内积。

    (注意啊,我们还没有进行SMO,只是假设做了,然后得到了所有的)

    我们就可以用它来对新点进行分类了(我靠,“假设做了”这么投机取巧的事情也能忍?——别急撒,下一集会说的,这里就当已经做了好不好?)。从这个公式可以看出,对于一个新点X,只需要计算它与训练数据点的内积即可。这一点,也是后面使用核函数进行非线性推广的前提,很重要。这也是我们为什么要先回到最初的问题的原因之一:

    (1 )预测新点X 的类别时,只需要计算它与训练数据点的内积即可;

    还有一个原因:

    (2 )在(1 )中用到的训练数据点,其实也只是那些“支持向量”的点,即,只有“支持向量”的点会被用来进行新样本的预测;

    我将用下面的这幅图进行说明:

    3. 非线性问题如何预测? ——向高维时空祷告

    还是看上面那张图,在SMO这里我们先停下来,再从另一个角度来看看前面的问题。

    第一话中我们提到过一个“非线性”的问题,当时我们给的例子是下面这张图,用线性分类器是分不开这两类样本的。

    如果还不够极端,我们再举一个例子:

    你很难用一条直线把红黑两类样本给分开,对不对?那怎么办?换个思路——谁说只能用直线的?我用一条二次曲线行不?

    处于这条曲线的下方,则为叉叉,即红类;处于这条曲线上方,则为圆圈,即黑类——分开了!

    刚才我们做了什么?

    这样,我们就把原来的一维x映射到了三维(x2,x,C)。在“1.回到最初的问题里——如何进行预测?”里,我们阐明了预测模型的形式为:

    此时X也要换成H(x)了,那么就变成:

    4. 核函数 ——在低维时空里解决

    核函数是干嘛的呢?

    在计算的时候,它可以让x和z不用通过H()映射到高维空间再计算内积,而是直接在低维空间里计算了。

    我们用K()表示核函数,那么核函数作用就是:

    K(x,z)=

    避开了X映射到H(X),Y映射到H(Y)这么一个过程。

    有这么神吗?有的,给你举个例子就知道了:

    在这个例子中,核函数在低维计算的结果完全等价于原问题:两个变量高维映射后的内积。这么一来,就避开了直接在高维空间中进行计算。那么问题来了,这个核函数是固定的吗?

    答:不是的,核函数有很多种,根据问题和数据的不同选择相应的核函数,上面的核函数正好适用于例子中的H(x),一些核函数有:

    多项式核:

    上面例子中的核函数是多项式核的一个特例,即R=1/2,d=2。

    线性核:

    高斯核:

    通过调控参数σ,高斯核具有相当的灵活性,也是使用最广泛的核函数之一。

    对于这么多核函数,只要满足了Mercer定理,都可以作为核函数,但是有些核函数效果很好,有些比较差,总体来看,高斯核是不会出太大偏差的一种。

    那么什么是Mercer定理?简单来说,

    K是有效的核函数 => 核函数矩阵K是对称半正定的

    展开全文
  • 核函数(kernel)最通俗易懂的理解

    万次阅读 多人点赞 2018-06-07 10:23:25
    我的机器学习教程「美团」算法工程师带你入门机器学习 已经开始更新了,欢迎大家订阅~ 任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑...

    我的机器学习教程「美团」算法工程师带你入门机器学习   已经开始更新了,欢迎大家订阅~

    任何关于算法、编程、AI行业知识或博客内容的问题,可以随时扫码关注公众号「图灵的猫」,加入”学习小组“,沙雕博主在线答疑~此外,公众号内还有更多AI、算法、编程和大数据知识分享,以及免费的SSR节点和学习资料。其他平台(知乎/B站)也是同名「图灵的猫」,不要迷路哦~

     

     

     

     

     

    机器学习算法中,不论是感知机还是支持向量机,在面对非线性问题时,往往都会用到一个名为“核函数”的技巧。那么到底什么是核函数呢?是否真的如听起来这样难以理解呢?

     

    核函数:是映射关系 的内积,映射函数本身仅仅是一种映射关系,并没有增加维度的特性,不过可以利用核函数的特性,构造可以增加维度的核函数,这通常是我们希望的。

    二维映射到三维,区分就更容易了,这是聚类、分类常用核函数的原因。为什么PCA这样一个降维算法也用核函数呢?

     

    左图为原数据,右图为映射到三维的数据,可以看出:同样是降到1维,先通过Kernel映射到(Kernel是映射的内积,不要弄乱了)三维,再投影到1维,就容易分离开,这就是Kernel在PCA降维中的应用,本质还是对原有数据增加维度。

     

    下面是李航的《统计学习方法》中对于核函数的定义:

    要注意,核函数和映射没有关系。核函数只是用来计算映射到高维空间之后的内积的一种简便方法。

    一般英文文献对Kernel有两种提法,一是Kernel Function,二是Kernel Trick。从Trick一词中就可以看出,这只是一种运算技巧而已,不涉及什么高深莫测的东西。

    具体巧在哪里呢?我们如果想进行原本就线性不可分的数据集进行分割,那么选项一是容忍错误分类,即引入Soft Margin;选项二是我们可以对Input Space做Feature Expansion,把数据集映射到高维中去,形成了Feature Space。我们几乎可以认为(引用Caltech的课堂用语“We are safe but not certain”)原本在低维中线性不可分的数据集在足够高的维度中存在线性可分的超平面。

     

     

    举一个知乎上霍华德的例子。假设我们的任务是要预测那些微博可以上微博热搜榜。有两个离散特征,一个代表某个微博里有“鹿晗”,一个代表某个微博里有“关晓彤”。

    两个特征单独看热度都一般,此时我们用二阶多项式核方法:

    K(鹿晗,关晓彤) = <鹿晗,关晓彤>^2

    这个核函数可以把二维空间投射到三维空间,展开之后是:

    K(鹿晗,关晓彤) =(鹿晗^2,\sqrt{2}鹿晗\times 关晓彤,关晓彤^2)

    这样就把二维特征变成了三维,多了一维 鹿晗\times 关晓彤 ,代表着某条微博里鹿晗和关晓彤同时出现。

    结果大家都知道了,鹿晗关晓彤同时出现的那条微博超级火,把新浪服务器都挤爆了。

    现实生活中有很多非线性非常强的特征 而核方法能够捕捉它们。核技巧(kernel trick)的作用,一句话概括的话,就是降低计算的复杂度,甚至把不可能的计算变为可能

    在机器学习中常用的核函数,一般有这么几类,也就是LibSVM中自带的这几类:

     

    1) 线性:K(v_1,v_2)=<v_1,v_2>
    2) 多项式:K(v_1,v_2)=(\gamma<v_1,v_2>+c)^n
    3) Radial basis function:K(v_1,v_2)=\exp(-\gamma||v_1-v_2||^2)
    4) Sigmoid:K(v_1,v_2)=\tanh(\gamma<v_1,v_2>+c)

    我举的例子是多项式核函数中\gamma=1, c=0, n=2的情况。

    在实用中,很多使用者都是盲目地试验各种核函数,并扫描其中的参数,选择效果最好的。至于什么样的核函数适用于什么样的问题,大多数人都不懂。很不幸,我也属于这大多数人,所以如果有人对这个问题有理论性的理解,还请指教。

     

    参考文章:

    知乎:核函数的定义与作用

    展开全文
  • 一、什么是“核函数” 我们都知道,机器学习(神经网络)的一个很重要的目的,就是将数据分类。我们想象下面这个数据(图1),在二维空间(特征表示为和)中随机分布的两类数据(用圆圈和叉叉表示)。 如果我们...

    我们在学习机器学习的时候,总是会看到一个概念——核,然后看到一堆公式。但是为什么要核呢?核到底是啥玩意?云里雾里。接下来,我们将要把“核”这个东西的神秘面纱一点点揭开。

    一、什么是“核函数”

    我们都知道,机器学习(神经网络)的一个很重要的目的,就是将数据分类。我们想象下面这个数据(图1),在二维空间(特征表示为\small x_1\small x_2)中随机分布的两类数据(用圆圈和叉叉表示)。

    如果我们想要将这两类数据进行分类,那么分类的边界将会是一个椭圆:

    \small \frac{x_1^2}{a_1}+\frac{x_2^2}{a_2}=1

    但是如果我们可以通过一个映射,将数据的特征\small (x_1,x_2)通过某个非线性映射\small \phi映射到三维空间,其特征表示为\small (z_1,z_2,z_3),并且映射关系为\small (z_1,z_2,z_3)==\phi (x_1,x_2)=(x_1^2,2^{1/2}x_1y_1,x_2^2)),那么我们是不是就可以用一个平面来将其分类,也即是将上述椭圆的x特征换成z特征:

    \small \frac{z_1}{a_1}+0\cdot z_2+\frac{z_3}{a_2}=1

    其实这个映射,就是将一个空间中的特征转换到另外一个空间,这就是空间转换(映射)的意义,即可以将原来线性不好分的数据转换到另外一个空间,在这个空间中可以用一个超平面线性可分。

    在机器学习中,我们要用到内积运算。而在映射后的高维空间中,内积往往是很不好求解的。所以,我们能不能找到在低维空间中的某个运算,恰好等于高维空间中的内积运算呢?

    设在原空间中有两个点\small (x_1,x_2)\small (x_1^{'},x_2^{'}),映射到高维空间中变成\small (z_1,z_2,z_3)\small (z_1^{'},z_2^{'},z_3^{'}),我们来看这个例子中的高维空间的内积运算:

    \small <(z_1,z_2,z_3),(z_1^{'},z_2^{'},z_3^{'})> =<(x_1^2,2^{1/2}x_1x_2,x_2^2),(x_1^{'}^2,2^{1/2}x_1^{'}x_2^{'},x_2^{'}^2)> =(<x,x^{'}>)^2

    我们就将低维空间中的这个对于内积的运算定义为核函数\small \kappa (x,x^{'})=(<x,x^{'}>)^2。换句话说,核函数就是低维空间中的内积的某个函数,或者写成\small \kappa (x,x^{'})=g(<x,x^{'}>),因为在别的例子中,有可能不是内积的平方。即核函数就等于就是高维空间的内积。

    二、为什么要用核函数

    因为在机器学习中,我们求解的过程要用到内积,而变换后的高维空间的内积我们不好求,所以我们定义了这个核函数,可以把高维空间的内积运算转化成内为空间的某些运算,这样求起来不是很简单吗?

    换句话说,如果我们有了核函数,我们就不再需要知道那个映射\small \phi到底是个什么鬼,我们就可以直接通过核函数,就可以求导高维空间的内积了,从而可以计算出高维空间中两个数据点之间的距离和角度。

    三、怎么用?(一个简单的分类例子)

    现在我们假设,有N个数据{\small {(x_1,y_1),(x_2,y_2),...,(x_N,y_N)}},其中\small x_i=(x_{i1},x_{i2},...,x_{ip})是第i个数据的p维特征,\small y_i是第i个数据的分类标签,现将其映射到高维空间变成\small [{(\phi(x_1),y_1),(\phi(x_2),y_2),...,(\phi(x_N),y_N)],而在这个空间中,有两个类别,所以标签可以假定为+和-,其中每一类的样本个数为\small n_+\small n_-。正样本的中心点\small C_+=\frac{1}{n_+}\sum_{y_i=+}\phi( x_i),负样本的中心点\small C_-=\frac{1}{n_-}\sum_{y_i=-} \phi(x_i),从\small C_-\small C_+有一条差向量\small w=C_+-C_-,而w的中心点为C,所以在C点垂直于w的超平面就是两类的分类边界。

    而想要把某个数据\small \phi(x)分类为+的依据为:从C点到样本点的向量差与w向量的夹角应该小于90°,也即:\small 0<cos\theta<1;反之,\small \small 0>cos\theta>-1。即,当内积为正,那就说明在分类1,内积为负,就说明在分类2。即:

    \small y=sgn(<\phi(x)-C,w>)=sgn(w^{T}\phi(x)-w^{T}C)

    于是我们来\small cos\theta的表达式:

    \small cos\theta=\frac{<\phi(x)-C,w>}{|\phi(x)-C||w|} =\frac{1}{a}<\phi(x)-C,w>= \frac{1}{a}(<\phi(x),w>-<C,w>)

     

    (PS:说到这,你应该知道为什么分类需要内积了吧?因为内积的正负代表了数据点是位于分类边界的正方向还是负方向,从而实现分类。)

    其中:

    \small w=C_+-C_-=\frac{1}{n_+}\sum_{y_i=+}\phi( x_i) -\frac{1}{n_-}\sum_{y_i=-}\phi( x_i)

    \small C=\frac{1}{2}(C_++C_-)=\frac{1}{2}(\frac{1}{n_+}\sum_{y_i=+}\phi( x_i) -\frac{1}{n_-}\sum_{y_i=-}\phi( x_i))

    \small <\phi(x),w>=<\phi(x),\tfrac{1}{n_{+}} \sum_{y_{i}\in +}\phi(x_{i})- \tfrac{1}{n_{-}} \sum_{y_{i}\in -}\phi(x_{i})> =\tfrac{1}{n_{+}} \sum_{y_{i}\in +}<\phi(x),\phi(x_{i})>+ \tfrac{1}{n_{-}}\sum_{y_{i}\in -}<\phi(x),\phi(x_{i})> =\tfrac{1}{n_{+}} \sum_{y_{i}\in +}\kappa (x,x_{i})+ \tfrac{1}{n_{-}}\sum_{y_{i}\in -}\kappa (x,x_{i})

    \small <C,w>=

    后面的就不继续写了,化简形式都一样,即:我们就可以把高维空间的内积,改写成低维空间的核函数的形式,这样在不知道映射\small \phi是个什么鬼的情况下吗,也可以轻松地进行分类工作了。

    四、补充一点

    1. 有限半正半定:给定任意有限 n个点(x1~xn),求解其矩阵是正定的:

    \small \kappa =\begin{bmatrix} \kappa(x_1,x_1) & ... &\kappa(x_1.x_n) \\ ...& ... & ...\\ \kappa(x_n,x_1)&... & \kappa(x_n,x_n) \end{bmatrix} \geq 0

    五. 核函数与机器学习的关系

    我们在机器学习中,经常看到\small f(x)=w^Tx+b,而我们看上面的公式\small y=sgn(<\phi(x)-C,w>)=sgn(w^{T}\phi(x)-w^{T}C),是不是感觉到很熟悉? 

    展开全文
  • basis function kernel),或称为RBF核,是一种常用的核函数。它是支持向量机分类中最为常用的核函数。[1] 关于两个样本x和x'的RBF核可表示为某个“输入空间”(input space)的特征向量,它的定义如下所示:[2]...
  • 径向基函数是一个取值仅仅依赖于离远点的实值函数,也就是 ϕ(x)=ϕ(∣∣x∣∣)\ \phi(x)=\phi(||x||) ϕ(x)=ϕ(∣∣x∣∣),或者还可以是任意一点c的距离,c点称为中心点,也就是 ϕ(x−c)=ϕ(∣∣x...
  • 径向基函数(RBF)在神经网络领域扮演着重要的角色,如RBF神经网络具有唯一最佳逼近的特性,径向基作为核函数在SVM中能将输入样本映射到高维特征空间,解决一些原本线性不可分的问题。 本文主要讨论: 1. 先讨论...
  • 1.核函数 ...1.1核函数的由来 ...-----------还记得为何要选用核函数么?...对于这个问题,在Jasper's Java Jacal博客《SVM入门(七)为何需要核函数》中做了很详细的阐述,另外博主对于SVM德入门学习
  • https://blog.csdn.net/huang1024rui/article/details/51510611 https://www.cnblogs.com/jerrylead/archive/2011/03/18/1988406.html(核函数
  • 机器学习-核函数(核模型)

    千次阅读 2018-09-11 12:49:14
    核函数  它是针对线性可分情况进行分析,对于线性不可分的情况,通过使用非线性映射算法将低维输入空间线性不可分的样本转化为高维特征空间使其线性可分,从而使得高维特征空间采用线性算法对样本的非线性特征进行...
  • 已知有一组向量,可用线性函数去探索其是否具有线性关系,若数据之间是非线性呢? 非线性数据是指只有利用非线性模型才能更好的预测。但非线性问题往往不好求解,所以希望用解线性分类问题的方法解决这个问题。所...
  • 核函数

    千次阅读 2015-10-15 16:28:12
    转自:... ...核函数  (2010-12-23 23:08:30) 标签:  校园 分类: 工作篇 高斯核函数 所谓径向基函数 (Radial Basis Function
  • 在一个二维空间中,具有特征空间X和特征空间Y,当其中一个点(x, y)在这个二维平面中,如果想把它映射高维空间中,那么就需要用到核函数。 关于核函数的定义是:设XXX是输入空间,YYY是特征空间。如果存在一个从XXX...
  • SVM支持向量机原理及核函数

    万次阅读 多人点赞 2018-04-07 20:21:18
    SVM支持向量机原理详解及核函数 核函数的选择 分割超平面: 支持向量: 间距: SVM算法的原理就是找到一个分割超平面,它能把数据正确的分类,并且间距最大!
  • 核函数(Kernel Function)与SVM

    万次阅读 2017-08-26 18:02:17
    1.核函数把低维空间映射到高维空间下面这张图位于第一、二象限内。我们关注红色的门,以及“北京四合院”这几个字下面的紫色的字母。我们把红色的门上的点看成是“+”数据,紫色字母上的点看成是“-”数据,它们的横...
  • svm核函数的理解和选择

    万次阅读 多人点赞 2018-08-07 19:28:40
    特征空间的隐式映射:核函数  咱们首先给出核函数的来头:在上文中,我们已经了解到了SVM处理线性可分的情况,而对于非线性的情况,SVM 的处理方法是选择一个核函数 κ(⋅,⋅) ,通过将数据映射到高维空间,来解决...
  • SVM核函数概述

    千次阅读 2019-03-27 08:55:53
    特征空间的隐式映射:核函数     咱们首先给出核函数的来头:在上文中,我们已经了解到了SVM处理线性可分的情况,而对于非线性的情况,SVM 的处理方法是选择一个核函数 κ(⋅,⋅) ,通过将数据映射到高维...
  • 总结一下遇到的各种核函数~

    千次阅读 2018-08-07 12:50:12
    由于之前做了很多核方法相关的子空间学习算法,本文打算对各种核函数进行一下简要的介绍,希望对大家能够有所帮助。   首先,再对核方法的思想进行描述,核函数的思想是一个伟大的想法,它工作简练巧妙的映射,...
  • SVM与核函数

    千次阅读 2018-12-17 23:28:34
    文章目录核函数本质核技巧 核函数 核函数 核函数本质 1.在实际数据上经常遇到线性不可分的情况 而解决方法是将特征映射到更高维的空间去(为什么低维度线性不可分的情况映射到高维度就可以分了?). 2.凡是遇到线性不...
  • SVM---通俗易懂图解高斯核函数及实现

    万次阅读 多人点赞 2018-05-12 18:40:47
    对于SVM的核函数,许多初学者可能在一开始都不明白核函数到底是怎么做到从二维空间映射到三维空间(这里我们特征空间以二维为例),因此本文主要讲解其中一种核函数——-高斯核函数作为介绍,另外感谢Andrew Ng老师...
1 2 3 4 5 ... 20
收藏数 769,751
精华内容 307,900
关键字:

核函数