精华内容
下载资源
问答
  • 问题:怎么分类非线性可分的样本的分类? 目的是样本分类,采用的方法:按一定规律统一改变样本的特征数据得到新的样本,新的样本按新的特征数据能更好的分类,由于新的样本的特征数据与原始样本的特征数据呈一定...

     

     

     

     

     

     

    问题:怎么分类非线性可分的样本的分类?

    目的是样本分类,采用的方法:按一定规律统一改变样本的特征数据得到新的样本,新的样本按新的特征数据能更好的分类,由于新的样本的特征数据与原始样本的特征数据呈一定规律的对应关系,因此根据新的样本的分布及分类情况,得出原始样本的分类情况

    高斯核和多项式核干的事情截然不同的,如果对于样本数量少,特征多的数据集,高斯核相当于对样本降维;

    高斯核的任务:找到更有利分类任务的新的空间

    高斯核本质是在衡量样本和样本之间的“相似度”,在一个刻画“相似度”的空间中,让同类样本更好的聚在一起,进而线性可分。

    展开全文
  • 我们知道,有时候在原...那么,我们究竟该怎么理解k(xi, xj)呢? 1.首先根据k(xi, xj)的定义,我们给出一个具体的例子 k(xi, xj)的定义为:   eg: 假设原特征空间为二维的(x1, x2),映射到三维后为(x1*x1, ...

    我们知道,有时候在原样本空间内并不能很好的给训练样本分类,但是把原样本空间映射到一个更高维空间后,就可以得到较好的分类,例如异或函数的取值。

    相应的

     

    那么,我们究竟该怎么理解k(xi, xj)呢?

    1.首先根据k(xi, xj)的定义,我们给出一个具体的例子

    k(xi, xj)的定义为:

     

    eg:

    假设原特征空间为二维的(x1, x2),映射到三维后为(x1*x1, 2^{1/2}*x1*x2, x2*x2),那么,我们就可以取核函数k(x, y) = <x, y>*<x, y>

    验证:设x = (x1, x2),y = (y1, y2),映射后X = (x1*x1, 2^{1/2}*x1*x2, x2*x2), Y = (y1*y1,  2^{1/2}*y1*y2, y2*y2)。

    则内积<X, Y> = x1*x1*y1*y1 + 2*x1*x2*y1*y2 + x2*x2*y2*y2。

    k(x, y) = (x1*y1 + x2*y2) ^ 2 = x1*x1*y1*y1 + 2*x1*x2*y1*y2 + x2*x2*y2*y2 = <X,Y>

    2.现在考虑一下,为什么要令核函数等于内积?

    Answer:

    两个特征向量的角度不同,模数不同,内积就不同,换句话说,内积可以显示出两个特征向量的相似度,那么核函数就是为了表示

    两个特征向量的核函数。

    3.以高斯核函数为例,结合以上两点作具体分析

    高斯核函数的||xi - xj||项就是衡量两个特征向量的相似度的,相似度越高,||xi - xj||越接近0,核函数的值越接近1,反之,核函数的

    值就越接近0。来看下图,

     

    x轴和y轴各代表一个一维向量,z轴代表k(x,y)的值,可以看出,在xy平面的对角线上,x = y,对应的k(x, y)为1,离对角线越远

    代表x和y的相似度越低,k(x,y)越小。

     

    下面给出高斯核函数将数据映射到高维甚至无穷维的原理,为了便于计算,我们令高斯核的带宽为1。

     

     

     

     

          

     

     

     

    展开全文
  • jQuery是什么(What): 一个JS函数库:write less,do more 封装简化DOM操作(CRUD)/Ajax 为什么要用jQuery(Why): 强大的选择器:方便快速查找DOM元素 隐式遍历(迭代):一次操作多个元素 ...怎么使用jQery(How):...

    jQuery是什么(What):
            一个JS函数库:write less,do more
            封装简化DOM操作(CRUD)/Ajax
        为什么要用jQuery(Why):
            强大的选择器:方便快速查找DOM元素
            隐式遍历(迭代):一次操作多个元素
            读写合一:读写数据用的是一个函数
            事件处理
            链式调用
            DOM操作(CUD)
            样式操作

     怎么使用jQery(How):
            引入jQuery库
                本地引入与CDN远程引入
                测试版和生产版(压缩版本)
     jQuery核心函数
            简称:jQuery函数($/jQuery)
            jQuery库向外直接暴露的就是$/jQuery
            引入jQuery库后,直接使用$即可
                作为一般的函数用时:$(param)
                    param是function:相当于window.onload = function(文档加载完成的监听)
                    param是选择器字符串:查找所有匹配的DOM元素,返回包含所有DOM元素的jQuery对象
                    param是DOM元素:将DOM元素对象包装为jQuery对象返回 $(this)
                    param是标签字符串:创建标签DOM元素对象并包装为jQuery对象返回
                作为对象用时:$.XXX()
        jQuery核心对象
            简称:jQuery对象
            即执行jQuery函数返回的对象
            jQuery对象内部包含的是dom元素对象的伪数组(可能只有一个元素)
            jQuery对象拥有很多有用儿点属性和方法,更方便操作dom
            注意:伪数组是object对象,有length属性,数值下标属性
                但不能使用数组特有的方法,例:forEach(),puch(),pop()等
            属性/方法:
                基本行为:
                    size()/lenght:得到jQuery内部包含dom元素的个数
                    [index]:根据下标得到对应位置的dom元素
                    each():遍历内部的dom元素
                    index():得到其在所有兄弟元素中的下标

    展开全文
  • 透彻理解高斯核函数背后的哲学思想与数学思想

    万次阅读 多人点赞 2019-02-03 10:27:51
      数据点转换到高维空间后,原始特征无关紧要。仅仅计算测试数据与支持向量的点积,支持向量由...你怎么向这个人解释大海是什么?也许可以通过将海水中的水量与人们已经知道的水体中的水量相关联来解释。 简...

    https://www.toutiao.com/a6653427986718523917/

     

    数据点转换到高维空间后,原始特征无关紧要。仅仅计算测试数据与支持向量的点积,支持向量由SVM优化算法选择的特殊数据点。在此,作一个类比如下:一个人看过湖泊,河流,溪流,浅滩等,但从未见过大海。你怎么向这个人解释大海是什么?也许可以通过将海水中的水量与人们已经知道的水体中的水量相关联来解释。

    简单与复杂的辩证:从线性模型到非线性模型

    简单性是一个古老朴素的哲学观念。认识论和自然科学,对于世界的认识经历了由简单到复杂的过程。

    复杂的事物与现象,背后存在简单的规律或过程;

    现实世界中,纯粹线性的模型是几乎不存在的,正如你在初中学习匀速运动一样,但在实际中,匀速运动的情况几乎很难找到,即使是定速,也会因外界的扰动而发生改变。在机器学习实践中,也是如此,很多情况下需要非线性模型。

    然而要构建复杂的非线性模型,往往是从简单的线性模型出发的。

    线性模型很棒,因为它们易于理解且易于优化。 缺点是因为他们只能学习非常简单的决策边界。 神经网络可以学习更复杂的决策边界,但会丢失许多线性模型的漂亮凸性。

    使线性模型表现为非线性的一种方法是转换输入。 例如,通过添加特征对作为附加输入。 在这样的表示上学习线性模型是凸的,但在除了非常低维空间之外的所有情况下都是计算上很难实现的。 你可能会问:不明确地扩展特征空间,是否可以在保留原始数据的同时,隐藏地处理特征扩张?

    令人惊讶的是,答案是肯定的,这就是核方法

    透彻理解高斯核函数背后的哲学思想与数学思想

     

    这是一个在当前空间下不可分的情况,我们的目标不是直接在当前维度寻找一个曲线来非线性划分类别,变换空间直接线性可分,这是哲学上简单性原则的应用:

    透彻理解高斯核函数背后的哲学思想与数学思想

     

    这个线性平面,返回到原来空间就是一个形状类似椭圆的决策边界。这样就把问题解决了,从而找到了原空间的非线性分类边界。这个原空间的复杂,实质上是由高维空间的简单演绎过来的。

    透彻理解高斯核函数背后的哲学思想与数学思想

     

    通过核方法,可以很好的处理线性不可分问题。简单性的哲学思想实质上就是,我们坚持寻找线性可分的转换问题,即变换数据,让它们线性可分,而变换数据的方法就是由低维到多维特征的一个特征空间变换。

    从有限到无限的哲学思想

    哲学中的有限和无限是对立统一的,①无限由有限构成、无限不能脱离有限而独立存在 。② 有限包含着无限 ,有限体现着无限。有限在一定条件下可以转变为无限,而反之亦成立。

    高斯核函数可以把低维空间转化为无限维空间,同时又在实现了在低维计算高维点积。

    第一、把有限空间映射到无限空间

    核方法是一种将数据空间放入更高维向量空间的方式,这样数据空间与高维空间中超平面的交点决定了数据空间中更复杂、弯曲的决策边界。

    举一个例子,通过将坐标为(x,y)的每个点发送到坐标为

    透彻理解高斯核函数背后的哲学思想与数学思想

     

    的五维点,将二维数据空间变换为到五维空间。

    如果我们想获得更多的灵活性,我们可以选择更高维度的核,例如通过将点 (x,y) 发送到九维空间中的点:

    透彻理解高斯核函数背后的哲学思想与数学思想

     

    更有甚者,可以超越更高维向量空间,然后变换到无限维向量空间。你可以看到上面的九维核是如何成为五维核的扩展,只是在最后添加了四个维度。如果我们继续以这种方式处理更多维度,我们将获得越来越高的维度内核。如果我们要继续这样做,我们最终会有无限多的维度。

    请注意,我们只能抽象的执行此操作。计算机只能处理有限的事物,因此无法在无限维向量空间中存储和处理计算。

    第二、从无限返回有限

    我们需要把事情转化回有限的世界,不光是因为我们想看看什么,更主要的是在现实中只有通过有限形式的计算才能完成表示无限维度的计算,避免维度灾难。

    我们将通过将每个点发送到无限向量来定义无限多项式核

    透彻理解高斯核函数背后的哲学思想与数学思想

     

    我们可以通过忘记除前五项之外的所有内容来恢复原始的五维内核。

    实际上,原始的五维空间包含在这个无限维空间中。原始的五维核是我们通过将无穷多项式核投影到这个五维空间中得到的。

    两个矢量(高斯斑点)的密度函数和相加的结果如下图所示。

    透彻理解高斯核函数背后的哲学思想与数学思想

     

    将原始数据空间中的核定义到这个无限维空间,最常见的选择是高斯函数。我们将每个数据点发送到以某点为核的高斯函数。请记住,我们将每一个这些函数都视为向量(高斯核函数的泰勒级数展开),因此这个内核可以完成所有内核的工作:

    它将原始数据空间中的每个点放入更高(实际上是无限)的维向量空间。

    为了带回计算世界,我们需要选择一个位于这个无限维向量空间中的有限维向量空间,并将无限维空间投影到有限维子空间中。我们将通过选择数据空间中的点(有限)来选择有限维空间,然后采用以这些点为中心的高斯斑点所跨越的向量空间。这相当于由无限多项式核的前五个坐标定义的向量空间。

    投影:实现无限维空间返回到有限维

    对于有限维向量,定义投影的最常用方法是使用点积:这是我们通过将两个向量的相应坐标相乘,然后将它们全部加在一起得到的数字。

    例如,三维向量的点积(1,2,3)和(2,5,4)的1·2+2·5+3·4=15

    我们通过两个函数相乘来对函数执行类似的操作,实现数据集点的对应特征值相乘。由于我们不能将所有这些无数个数字加在一起,所以,我们采用积分。如果我们将两个高斯函数相乘并积分,则该数字等于中心点之间距离的高斯函数。注:这个在后面的数学思想部分会加以证明)。

    换句话说,高斯核将无限维空间中的点积转换为数据空间中点之间距离的高斯函数。

    因此如果数据空间中的两个点在附近,则在核空间表示它们的矢量之间的角度会很小。如果点相距很远,则相应的矢量将接近"垂直"。

    从有限维到无限维空间的思想,帮助我们更好的理解高维空间的线性可分思想;而从无限维返回到有限维,又让我们更好的理解其几何意义、更好的实现计算。

    泰勒级数:实现维度的无限延展和有限维度的计算

    泰勒级数(Taylor series)用无限项连加式——级数来表示一个函数,这些相加的项由函数在某一点的导数求得。

    透彻理解高斯核函数背后的哲学思想与数学思想

     

    高斯核函数会用到以下泰勒级数

    透彻理解高斯核函数背后的哲学思想与数学思想

     

    先看一个维度下的泰勒级数展开,同时给出映射函数φ,熟悉了这个后,我们比较容易产生转换到高维度的想法。

    透彻理解高斯核函数背后的哲学思想与数学思想

     

    从上面的泰勒级数展开式,我们得到高维空间的每一个元素为:

    透彻理解高斯核函数背后的哲学思想与数学思想

     

    这个高斯核实现了:将无限维空间中的点积转换为数据空间中点之间距离的高斯函数而这个距离的高斯函数正比例于两个高斯函数相乘并积分的结果。与上文中哲学思想所讲完美契合。我们不需要、也不可能直接在在无限空间中来计算点积。非常精妙的是有高斯函数的泰勒级数帮我们这现了由高维空间返回到低维空间的计算。

    下面图示是将2维特征投影到3维空间上,也就是泰勒级数取到2阶就好。

    透彻理解高斯核函数背后的哲学思想与数学思想

     

    指数衰减函数:揭示分类的精妙

    用支持向量计算的高斯核是输入特征空间中的指数衰减函数,其最大值在支持向量处获得并且在支持向量周围的所有方向上均匀衰减,导致超球面轮廓。如下图所示。

    透彻理解高斯核函数背后的哲学思想与数学思想

     

    具有高斯核的SVM分类器简单地是在数据点和每个支持向量之间计算的核函数的加权线性组合。支持向量在数据点分类中的作用通过α(支持向量的全局预测有用性)和K(x,y)(支持向量在特定数据点的预测中的局部影响)来调和的。

    为了定义一个N维高斯核,我们首先选择数据空间中的N个点。然后,我们可以通过计算与每个所选数据点的距离,并采用距离的高斯函数来计算数据空间中任何点的内核坐标。

    数据点转换到高维空间后,原始特征无关紧要。仅仅计算测试数据与支持向量核的高斯函数值,支持向量是由SVM优化算法选择的特殊数据点。在此,进行一个松散类比如下:一个人看过湖泊,河流,溪流,浅滩等,但从未见过大海。你怎么向这个人解释大海是什么?也许可以通过将海水中的水量与人们已经知道的水体中的水量相关联来解释。

    为了更好地理解这个内核是如何工作的,让我们弄清楚超平面与数据空间的交叉点是什么样的。

    平面由以下形式的等式定义

    透彻理解高斯核函数背后的哲学思想与数学思想

     

    其中(x1,...,xN)是在更高维的内核空间中点的坐标,并且是定义超平面的参数。所以这里的x是高维空间的f(x)。如下图所示。如果我们使用的是高斯内核,那么,由于点积,这些值(x1,...,xN)会测量到我们所选N个点的距离。

    透彻理解高斯核函数背后的哲学思想与数学思想

     

    因此,决策边界是到这些N个点距离的高斯函数满足该等式的点集。

    这仍然似乎很难理解,所以让我们看一下每个值(a1,...,aN)为1或-1 的示例。然后在带有标签ai=1的每个数据点附近,该值xi将非常接近1,而其他值xj将很小,因此总和:

    透彻理解高斯核函数背后的哲学思想与数学思想

     

    将为正。同样,在一个点附近ai=-1,总和将是负数。因此,如果b=0,则决策边界将正点与负点分开。事实上,它将开辟出一个让人想起定义内核的高斯球的区域。下图中左侧显示了一个示例,其中颜色指示系数是正还是负。结果看起来像最近邻算法的平滑版本。

    透彻理解高斯核函数背后的哲学思想与数学思想

     

    如果我们调整参数(a1,...,aN),这会改变围绕点的高斯球的大小,从而将决策边界移向或远离它们,如图的右侧所示。如果一个系数从正切换为负,则决策边界将从一个点的一侧移动到另一侧。

    如果我们有一个标记数据集,那么在内核空间中训练线性分类算法(如或)对应于移动此决策边界,以最大化有多少数据点位于正确的一侧。

    因此,这为我们选择决策边界提供了更大的灵活性,但最终结果将非常依赖于我们选择的N个向量。如果我们选择太多的点,那么我们将可能过拟合,类似于最近邻算法往往导致过度拟合的风险。我们真正想要的是在整个集合中均匀分布的少量点,理想情况是每个点都接近同一类中的大多数点。

    展开全文
  • 吴恩达机器学习笔记——十二、SVM关于核函数的补充1 为什么要用核函数2 怎么应用核函数2.1 核函数反应高纬度空间的几何性质2.2 内积矩阵/核矩阵2.3 一个二分类的例子2.4 核函数应具有的性质2.5 常用的核函数3 Dual ...
  • SVM---通俗易懂图解高斯核函数及实现

    万次阅读 多人点赞 2018-05-12 18:40:47
    许多初学者可能在一开始都不明白核函数到底是怎么做到从二维空间映射到三维空间(这里我们特征空间以二维为例),因此本文主要讲解其中一种核函数——-高斯核函数作为介绍,另外感谢Andrew Ng老师在网易云课堂深入浅...
  • 最近在学习多核学习,但是一直不理解为什么exmklclass.m中核函数的数量和权重和数据有什么样的关系,又怎么可以进行输入多特征的样本,学习核函数的权重。求指导呀!着急! ...
  • 上一篇博客画了一张密度函数,但是搜了半天也没找到怎么分析这个图。求人不如求自己,这篇来分析一下这个密度函数密度图。说的不对的地方还请大神指出。 概率密度 从数学上看,分布函数F(x)=P(X<x),...
  • 博客来源: ... 这个博客个人觉得写的真的...因为我比较小白,直接看《西瓜书》有点不知所云,不知道公式怎么就到下一步了,所以觉得这样的博客真的很赞,后面对偶问题KTT条件什么的自己再查查其他资料,然后再结合《...
  • 而且多出提到高斯是构建尺度空间的唯一卷积。 Lowe(2004)也提到: It has been shown by Koenderink (1984) and Lindeberg (1994) that under a variety of reasonable assumptions the only possible scale-...
  • 一、消费者接口 经典案例代码,怎么样,懵逼不? @Test public void test1 () { consumerTest(500, (x) ->...那么,看一下小编自己的消费者接口模拟实现,为了使大家能够深入理解,我们都会将一个函数式接口
  • 注意:本篇博客的重点是介绍g2o,所以不会去为非线性化方法做太多的铺垫,因此要想理解以下代码和思路,需要你具备一些非线性优化的理论知识,至少要明白什么是非线性优化,它主要是为了做什么,它是怎么实现的?...
  • 上篇原型的特点 接下来,我们来谈谈原型继承。 首先,我们来简单回顾一下构造函数、原型对象、实例三者之间的关系。...那么,原型链怎么实现呢?我们来看例子: //父类 function SuperType(){ this.property=tr
  • 面向对象是把构成问题的事物分解成多个模块,用来描述某个事物在解决问题中的步骤的行为。核心是抽象思想,强调的是功能性需求。...面向过程强调的是分析解决问题的步骤,然后将它们封装成一个个的函数,一次进行调用。
  • 其实题目有些哗众取宠,主要想表达的是对chunk_alloc函数中两个地方存在疑问,想问问诸位怎么理解这两处的。 下面先给出chunk_alloc代码实现,同时大概说明一下函数的功能以及每一处代码的作用。 SGI的内存配置器...
  • 能够搞清楚,怎么实现强化学习,看源码 看论文其实就可以做到。 但是要真正的抓住核心部分的知识,还是要多做自己的仿真实验,然后认认真真的多看论文。 本系列文章,主要是针对当前主流深度强化学习的各种算法和...
  • 如果只是从了解怎么用这几函数的角度看,直接看官方发布的文档即可!但是要了解这些函数怎么被ThinkPHP框架定义调用的,那需要另外一番讨 论了。还好,ThinkPHP官方在源码力做了很好的注释,通过一步步探索我发现...
  • 函数学习

    2016-08-15 11:18:13
    最近参加几次笔试都考到了虚函数,但是这个东西我并不怎么理解。偶然间在网上看到这篇写得不错的东西,所以在学习之余转回来和大家共享。谢谢作者的工作。   一.简介  虚函数是C++中用于实现多态...
  • 最近读勒基本关于前端的数据《JavaScript核心技术开发解密》,《webpack从入门到进阶》…这几本书帮助到我更好的理解JS、webpack在前端技术领域中的作用。以前可能更多的是知道怎么使用,但从未从更深的层面去思考...

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 301
精华内容 120
关键字:

核函数怎么理解