好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

径向基核函数 (radial basis function)–rbf.doc

6页
  • 卖家[上传人]:mg****85
  • 文档编号:35646040
  • 上传时间:2018-03-18
  • 文档格式:DOC
  • 文档大小:67KB
  • / 6 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 径向基核函数 (Radial Basis Function)–RBF 发表于 297 天前 ⁄ 技术, 科研 ⁄ 评论数 8 ⁄ 被围观 3526 views+ 论文中又提到了 RBF,虽然是个简单的核函数,但是也再总结 一下关于 SVM 中的核函数的选择,比较简单和应用比较广的是 RBF所谓径向基函数 (Radial Basis Function 简称 RBF), 就是某种沿径向对称的 标量函数 通常定义为空间中任一点 x 到某一中心 xc 之间欧氏距离的单调函 数 , 可记作 k(||x-xc||), 其作用往往是局部的 , 即当 x 远离 xc 时函数取值 很小最常用的径向基函数是高斯核函数 ,形式为 k(||x-xc||)=exp{- ||x- xc||^2/(2*σ)^2) } 其中 xc 为核函数中心,σ 为函数的宽度参数 , 控制了函 数的径向作用范围建议首选 RBF 核函数,因为:1. 能够实现非线性映射;( 线性核函数可以证明是他的一个特例; SIGMOID 核函数在某些参数上近似 RBF 的功能 2. 参数的数量影响模型的复杂程度,多项式核函数参数较多 3. the RBF kernel has less numerical difficulties.———–那么,还记得为何要选用核函数么?———–对于这个问题,在 Jasper’s Java Jacal 博客《SVM 入门(七)为何需要核函 数》中做了很详细的阐述,另外博主对于 SVM 德入门学习也是做了很详细的阐 述,有兴趣的可以去学习,丕子觉得这个文章写得相当好,特意转载了过来, 留念一下。

      如果提供的样本线性不可分,结果很简单,线性分类器的求解程序会无限循环, 永远也解不出来这必然使得它的适用范围大大缩小,而它的很多优点我们实 在不原意放弃,怎么办呢?是否有某种方法,让线性不可分的数据变得线性可 分呢?例子是下面这张图:我们把横轴上端点 a 和 b 之间红色部分里的所有点定为正类,两边的黑色部分 里的点定为负类试问能找到一个线性函数把两类正确分开么?不能,因为二 维空间里的线性函数就是指直线,显然找不到符合条件的直线但我们可以找到一条曲线,例如下面这一条:显然通过点在这条曲线的上方还是下方就可以判断点所属的类别(你在横轴上 随便找一点,算算这一点的函数值,会发现负类的点函数值一定比 0 大,而正 类的一定比 0 小)这条曲线就是我们熟知的二次曲线,它的函数表达式可以 写为:问题只是它不是一个线性函数,但是,下面要注意看了,新建一个向量 y 和 a:这样 g(x)就可以转化为 f(y)=,你可以把 y 和 a 分别回带一下,看看等不 等于原来的 g(x)用内积的形式写你可能看不太清楚,实际上 f(y)的形式就是:g(x)=f(y)=ay在任意维度的空间中,这种形式的函数都是一个线性函数(只不过其中的 a 和 y 都是多维向量罢了),因为自变量 y 的次数不大于 1。

      看出妙在哪了么?原来在二维空间中一个线性不可分的问题,映射到四维空间 后,变成了线性可分的!因此这也形成了我们最初想解决线性不可分问题的基本思路——向高维空间 转化,使其变得线性可分而转化最关键的部分就在于找到 x 到 y 的映射方法遗憾的是,如何找到这个 映射,没有系统性的方法(也就是说,纯靠猜和凑)具体到我们的文本分类 问题,文本被表示为上千维的向量,即使维数已经如此之高,也常常是线性不 可分的,还要向更高的空间转化其中的难度可想而知小小 TipsTips:为什么说 f(y)=ay 是四维空间里的函数?大家可能一时没看明白回想一下我们二维空间里的函数定义 g(x)=ax+b 变量 x 是一维的,为什么说它是二维空间里的函数呢?因为还有一个变量我们 没写出来,它的完整形式其实是 y=g(x)=ax+b 即 y=ax+b 看看,有几个变量?两个,二维 再看看 f(y)=ay 里面的 y 是三维的变量,再加上 f(y)成为四维的了用一个具体文本分类的例子来看看这种向高维空间映射从而分类的方法如何运 作,想象一下,我们文本分类问题的原始空间是 1000 维的(即每个要被分类的 文档被表示为一个 1000 维的向量),在这个维度上问题是线性不可分的。

      现在 我们有一个 2000 维空间里的线性函数f(x’)=+b注意向量的右上角有个 ’哦它能够将原问题变得可分式中的 w’和 x’都是 2000 维的向量,只不过 w’是定值,而 x’是变量(好吧,严格说来这个函数是 2001 维的,哈哈),现在我们的输入呢,是一个 1000 维的向量 x,分类的过程 是先把 x 变换为 2000 维的向量 x’,然后求这个变换后的向量 x’与向量 w’的 内积,再把这个内积的值和 b 相加,就得到了结果,看结果大于阈值还是小于 阈值就得到了分类结果你发现了什么?我们其实只关心那个高维空间里内积的值,那个值算出来了, 分类结果就算出来了而从理论上说, x’是经由 x 变换来的,因此广义上可 以把它叫做 x 的函数(有一个 x,就确定了一个 x’,对吧,确定不出第二个), 而 w’是常量,它是一个低维空间里的常量 w 经过变换得到的,所以给了一个 w 和 x 的值,就有一个确定的 f(x’)值与其对应这让我们幻想,是否能有这样 一种函数 K(w,x),他接受低维空间的输入值,却能算出高维空间的内积值?如果有这样的函数,那么当给了一个低维空间的输入 x 以后,g(x)=K(w,x)+bf(x’)=+b这两个函数的计算结果就完全一样,我们也就用不着费力找那个映射关系,直 接拿低维的输入往 g(x)里面代就可以了(再次提醒,这回的 g(x)就不是线性函 数啦,因为你不能保证 K(w,x)这个表达式里的 x 次数不高于 1 哦)。

      万幸的是,这样的 K(w,x)确实存在(发现凡是我们人类能解决的问题,大都是 巧得不能再巧,特殊得不能再特殊的问题,总是恰好有些能投机取巧的地 方才 能解决,由此感到人类的渺小),它被称作核函数(核,kernel),而且还不 止一个,事实上,只要是满足了 Mercer 条件的函数,都可以作为核函 数核 函数的基本作用就是接受两个低维空间里的向量,能够计算出经过某个变换后 在高维空间里的向量内积值几个比较常用的核函数,俄,教课书里都列过, 我 就不敲了(懒!)回想我们上节说的求一个线性分类器,它的形式应该是:现在这个就是高维空间里的线性函数(为了区别低维和高维空间里的函数和向 量,我改了函数的名字,并且给 w 和 x 都加上了 ’),我们就可以用一个低维空间里的函数(再一次的,这个低维空间里的函数就不再是线性的啦)来代替,又发现什么了?f(x’) 和 g(x)里的 α,y,b 全都是一样一样的!这就是说, 尽管给的问题是线性不可分的,但是我们就硬当它是线性问题来求解,只不过 求解过程中,凡是要求内积 的时候就用你选定的核函数来算这样求出来的 α 再和你选定的核函数一组合,就得到分类器啦!明白了以上这些,会自然的问接下来两个问题:1. 既然有很多的核函数,针对具体问题该怎么选择?2. 如果使用核函数向高维空间映射后,问题仍然是线性不可分的,那怎么办?第一个问题现在就可以回答你:对核函数的选择,现在还缺乏指导原则!各种 实验的观察结果(不光是文本分类)的确表明,某些问题用某些核函数效果很 好,用另一些就很差,但是一般来讲,径向基核函数是不会出太大偏差的一种, 首选。

      我做文本分类系统的时候,使用径向基核函数,没有参数调优的情况 下,绝 大部分类别的准确和召回都在 85%以上,可见虽然 libSVM 的作者林 智仁认为文本分类用线性核函数效果更佳,待考证)对第二个问题的解决则引出了我们下一节的主题:松弛变量核函数有很多种,如线性核、多项式核、Sigmoid 核和 RBF(Radial Basis function)核本文选定 RBF 核为 SVM 的核函数(RBF 核 K(x, y) = exp(-γ || x -y ||的平方),γ > 0)因为 RBF 核可以将样本映射到一个 更高维的空间,可以处理当类标签(Class Labels)和特征之间的关系是非线 性时的样例Keerthi 等[25]证明了一个有惩罚参数 C 的线性核同有参数 (C,γ )(其中 C 为惩罚因子,γ 为核参数)的 RBF 核具有相同的性能对 某些参数,Sigmoid 核同 RBF 核具有相似的性能[26]另外,RBF 核与多项式 核相比具有参数少的优点因为参数的个数直接影响到模型选择的复杂性非 常重要的一点是 01)或者 0 < γxi xj + r <1,跨度非常大。

      而且,必须注意的是 Sigmoid 核 在某些参数下是不正确的(例如,没有两个向量的内积)用交叉验证找到最好的参数 C 和 γ 使用 RBF 核时,要考虑两个参数 C 和 γ 因为参数的选择并没有一定的先验知识,必须做某种类型的模型选择(参数搜索)目的是确定好的(C,γ)使得分类器能正确的预测未知数据(即测试 集数 据),有较高的分类精确率值得注意的是得到高的训练正确率即是分类 器预测类标签已知的训练数据的正确率)不能保证在测试集上具有高的预测精 度因此,通 常采用交叉验证方法提高预测精度k 折交叉验证(k-fold cross validation)=========================参考自:1、互动百科2、Jasper’s Java Jacal–《SVM 入门(七)为何需要核函数》3、博文:svmlight 使用的几点讨论。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.