机器学习--⽀持向量机(六)径向基核函数(RBF)详解
前⾯讲解了什么是核函数,以及有效核函数的要求,到这⾥基本上就结束了,很多博客也是如此,但是呢这些只是理解⽀持向量机的原理,如何使⽤它讲解的却很少,尤其是如何选择核函数更没有⼈讲,不讲也是有原因的,因为核函数的选择没有统⼀的定论,这需要使⽤⼈根据不同场合或者不同问题选择核函数,选择的标准也没有好的指导⽅法,⼀般都是尝试使⽤,所以选择核函数就需要看使⽤者的经验了,研究者们也在⼀直研究这种⽅法,这⽅⾯的研究称为核⼯程,因为核函数不仅仅使⽤在⽀持向量机中,只要满⾜多维数据的內积即可使⽤核函数进⾏解决,因此核函数可以和很多算法结合,能产⽣意想不到的效果,,但是核函数因为太过庞⼤,我在这⾥只是引导的讲解⼀下,以后有时间专门开⼀个栏⽬专讲核函数的选择,在这⾥只简单的讲解⼀下核函数,同时深⼊讲解径向基核函数,通过讲解这⼀个核函数,希望⼤家可以通过这种⽅法去学习如何选择核函数,当然最后我会把sklearn的核函数的api接⼝也讲解⼀下,虽然还没使⽤过,但是当理解径向基核函数后,还是可以很容易使⽤的,好,废话不多说了,下⾯就开始进⼊正题:
在讲径向基核函数之前,先给⼤家讲解⼀下,核函数构造⽅法:
为了利⽤核替换,我们需要能够构造合法的核函数。⼀种⽅法是选择⼀个特征空间映射 ϕ(x) ,然后使⽤这个映射寻对应的核,这⾥,⼀维空间的核函数被定义为:
其中 ϕ i (x) 是基函数。
上图从对应的基函数集合构建核函数的例⼦。在每⼀列中,下图给出了由上⾯公式定义的核函数 k(x,x ′ ) ,它是 x 的函数, x ′ 的值⽤红⾊叉号表⽰,⽽上图给出了对应的基函数,分别是多项式基函数(左列)、⾼斯基函数(中列)、 logistic sigmoid 基函数(右列)。
另⼀种⽅法是直接构造核函数。在这种情况下,我们必须确保我们核函数是合法的,即它对应于某个(可能是⽆穷维)特征空间的标量积。作为⼀个简单的例⼦,考虑下⾯的核函数:
如果我们取⼆维输⼊空间 x = (x 1 ,x 2 ) 的特殊情况,那么我们可以展开这⼀项,于是得到对应的⾮线性特征映射:
我们看到特征映射的形式为  ,因此这个特征映射由所有的⼆阶项组成,每个⼆阶项有⼀个具体的系数。但是,更⼀般地,我们需要到⼀种更简单的⽅法检验⼀个函数是否是⼀个合法的核函数,⽽不需要显⽰地构造函数 ϕ(x) 。核函数 k(x,x ′ ) 是⼀个合法的核函数的充分必要条件是 Gram 矩阵(元素由 k(x n ,x m ) 给出)在所有的集合 {x n } 的选择下都是半正定的。注意,⼀个半正定的矩阵与元素全部⾮负的矩阵不同。
构造新的核函数的⼀个强⼤的⽅法是使⽤简单的核函数作为基本的模块来构造。可以使⽤下⾯的性质来完成这件事。
给定合法的核 k 1 (x,x ′ ) 和 k 2 (x,x ′ ) ,下⾯的新核也是合法的 :
通过上⾯核函数的性质就可以构造出不同的核函数了,但是最好还是验证⼀下是否是有效的核函数 ,即核矩阵是对称的半正定矩阵,下⾯简单证明⼀下径向基核函数是有效的,然后再详解径向基核函数的来源和应⽤:
这个经常被称为⾼斯核。但是注意,在我们现在的讨论中,它不表⽰概率密度,因此归⼀化系数被省略了。这是⼀个合法的核,理由如下。我们把平⽅项展开 :
从⽽:
通过上⾯的性质以及线性核 的合法性,即可看到⾼斯核是⼀个合法的核。注意,对应于⾼斯核的特征向量有⽆穷的维数。那么你可以在此基础继续变化构造适合⾃⼰的核函数:
⾼斯核并不局限于使⽤欧⼏⾥得距离。如果我们使⽤公式|x-x‘|中的核替换,将 x T x ′ 替换为⼀个⾮线性核 κ(x,x ′ ) ,我们有
核观点的⼀个重要的贡献是可以扩展到符号化的输⼊,⽽不是简单的实数向量。核函数可以定义在多种对象上,例如图⽚、集合、字符串、⽂本⽂档。例如,考虑⼀个固定的集合,定义⼀个⾮向量空间,这个空间由这个集合的所有可能的⼦集构成。如果 A 1 和 A 2 是两个这样的⼦集,那么核的⼀个简单的选择可以是:
其中 A 1 ∩ A 2 表⽰集合 A 1 和 A 2 的交集, |A| 表⽰ A 的元素的数量。这是⼀个合法的核,因为可以证明它对应于⼀个特征空间中的⼀个内积。
当然还有其他的⽅法构造核函数例如从⼀个概率⽣成式模型开始构造,有兴趣的同学可以研究⼀下.
下⾯就详解什么是径向基核函数,将对他的由来和使⽤进⾏全⾯阐释:
什么是径向基函数?
理解RBF⽹络的⼯作原理可从两种不同的观点出发:①当⽤RBF⽹络解决⾮线性映射问题时,⽤函数逼近与内插的观点来解释,对于其中存在的不适定(illposed)问题,可⽤正则化理论来解决;②当⽤RBF⽹络解决复杂的模式分类任务时,⽤模式可分性观点来理解⽐较⽅便,其潜在合理性基于Cover关于模式可分的定理。下⾯阐述基于函数逼近与内插观点的⼯作原理。
false是什么函数
1963年Davis提出⾼维空间的多变量插值理论。径向基函数技术则是20世纪80年代后期,Powell在解决“多变量有限点严格(精确)插值问题”时引⼈的,⽬前径向基函数已成为数值分析研究中的⼀个重要领域。
考虑⼀个由N维输⼈空间到⼀维输出空间的映射。设N维空间有P个输⼈向量平,P=1,2,....,P,它们在输出空间相应的⽬标值为,P对输⼈⼀输出样本构成了训练样本集。插值的⽬的是寻⼀个⾮线性
映射函数F(X),使其满⾜下述插值条件:
式⼦中,函数F描述了⼀个插值曲⾯,所谓严格插值或精确插值,是⼀种完全内插,即该插值曲⾯必须通过所有训练数据点。
那么到底什么是差值,在这⾥简单的解释⼀下,就是通过训练集数据,我到⼀个曲⾯,这个曲⾯可以完全覆盖这些训练点,那么到这个曲⾯后就可以通过这个曲⾯取寻其他的值了,下⾯画个图给⼤家看看:
画图不是很好啊,意思差不多,就是我通过⼀些数据样本点 ,每个样本都有⽬标值,通映射⾼维空间去到⼀个曲⾯F(x),这个曲⾯需要经过所有的数据,⼀旦这个曲⾯确定以后,我就可以通过这个曲⾯去⽣成更多的数据⽬标值,就是这个意思了,好,我们继续往下:
采⽤径向基函数技术解决插值问题的⽅法是,选择P个基函数个训练数据,各基函数的形式为:
式中,基函数为⾮线性函数,训练数据点是的中⼼。基函数以输⼈空间的点x与中⼼的距离作为函数的⾃变量。由于距离是径向同性的,故函数被称为径向基函数。基于径向基函数技术的差值函数定义为基函数的线性组合:
在这⾥需要解释⼀下这是范数,在平⾯⼏何的向量来说就是模,然⽽⼀旦维度很⾼就不知道是什么东西了,可能是衡量距离的⼀个东西,那么这个代表什么意思呢?简单来说就是⼀个圆⽽已,在⼆维平⾯,就是圆⼼,x就是数据了,这个数据距离圆⼼的距离,因为和数据的位置和⼤⼩⽆关,只和到圆⼼的半径有关,况且同⼀半径圆上的点到圆⼼是相等的因此取名为径向,代⼊映射函数就是径向基函数了,我们看看径向基函数有什么特点:
将(1)式的插值条件代⼊上式,得到P个关于未知系数,的线性⽅程组:
令则上述⽅程组可改写为:
令表⽰元素的PxP阶矩阵,和分别表⽰系数向量和期望输出向量,(5)式还可以写成下⾯的向量形式:
式中,称为插值矩阵,若为可逆矩阵,就可以从(6)式中解出系数向量,即:
通过上⾯⼤家可以看到为了使所有数据都在曲⾯还需要系数调节,此时求出系数向量就求出了整个的映射函数了,下⾯在看看⼏个特殊的映射函数:
(1)⾼斯径向基函数
横轴就是到中⼼的距离⽤半径r表⽰,如上图,我们发现当距离等于0时,径向基函数等于1,距离越远衰减越快,其中⾼斯径向基的参数在⽀持向量机中被称为到达率或者说函数跌落到零的速度。红⾊=1,蓝⾊=5,绿⾊
=0.5,我们发现到达率越⼩其越窄。
(2) 反演S型函数
这个和径向基类似,只是极值为0.5.前⾯乘上系数就好了 ,红⾊=1,蓝⾊=5,绿⾊=0.5
(3)拟多⼆次函数
红⾊=1,蓝⾊=5,绿⾊=0.5,横轴为距离r。
径向基函数就讲完了,后⾯就是如何使⽤径向基函数进⾏机器学习分类呢?在这⾥以sklearn为例进⾏讲解:
核函数 可以是以下任何形式::
此时⼤家应该能看懂径向基中的函数是什么意思吧,这⾥我们着重讲解径向基核函数
初始化时,不同内核由不同的函数名调⽤:
>>> linear_svc = svm.SVC(kernel='linear')
>>> linear_svc.kernel
'linear'
>>> rbf_svc = svm.SVC(kernel='rbf')
>>> rbf_svc.kernel
'rbf'
当⽤径向基(RBF)内核去训练SVM,有两个参数必须要去考虑:C惩罚系数和gamma。参数C,通⽤在所有SVM内核,与决策表⾯的简单性相抗衡,可以对训练样本的误分类进⾏有价转换。较⼩的C会使决策表⾯更平滑,同时较⾼的C旨在正确地分类所有训练样
本。Gamma定义了单⼀训练样本能起到多⼤的影响。较⼤的gamma会更让其他样本受到影响。
直观地,该gamma参数定义了单个训练样例的影响达到了多远,低值意味着“远”,⾼值意味着“接近”。所述gamma参数可以被看作是由模型⽀持向量选择的样本的影响的半径的倒数。
该C参数将训练样例的错误分类与决策表⾯的简单性相对应。低值C使得决策表⾯平滑,⽽⾼度C旨在通过给予模型⾃由选择更多样本作为⽀持向量来正确地对所有训练样本进⾏分类。
代码就不贴了,后⾯有时间使⽤sklearn进⾏分类实践其实主要想说的是如果使⽤我们如何选择参数值,这个官⽅给了⽰例:
官⽅使⽤的数据是iris数据分类,通过交叉验证给出了热图,下⾯分析⼀下,代码下⾯贴,或者直接去官⽹复制
这个图分别是径向基两个参数的关系是如何影响正确率的,右边的颜⾊条书⾯正确率的,最下⾯即暗⿊⾊正确率只有0.2,黄⾊接近0.98,⽽⽩⾊说明是1即百分百正确,⼤家可以看看⼀般参数在在哪些位置位置合适, 是c在1到100,gamma在0.001到0.1这些参数的的准确率为100%,具体的请参考官⽅⽂档。
我们再看这个数据图:
这个是通过参数选择⼯具进⾏帮助选择的, ,
具体参考这篇⽂章

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。