支持向量机SVM核函数分析
2013-07-13 06:09
267 查看
核函数描述和分析
考虑在”回归和梯度下降“中“线性回归”中提出的问题,特征是房子的面积x,这里的x是实数,结果y是房子的价格。假设我们从样本点的分布中看到x和y符合3次曲线,那么我们希望使用x的三次多项式来逼近这些样本点。那么首先需要将特征x扩展到三维,然后寻找特征和结果之间的模型。我们将这种特征变换称作特征映射(feature mapping)。映射函数称作
。
在这个例子中
我们希望将得到的特征映射后的特征应用于SVM分类,而不是最初的特征。这样,我们需要将前面
公式中的内积从
,映射到
。至于为什么需要映射后的特征而不是最初的特征来参与计算,上面提到的(为了更好地拟合)是其中一个原因,另外的一个重要原因是样例可能存在线性不可分的情况,而将特征映射到高维空间后,往往就可分了。所以,将核函数形式化定义。如果原始特征内积是
,映射后为
,那么定义核函数(Kernel)为
。因些,我们可以得出结论,如果要实现该节开头的效果,只需先计算
,然后计算
即可,然而这种计算方式是非常低效的。
比如最初的特征是n维的,我们将其映射到
维,然后再计算,这样需要
的时间。那么我们能不能想办法减少计算时间呢?
先看一个例子,假设x和z都是n维的
展开后,得
这个时候发现我们可以只计算原始特征x和z内积的平方(时间复杂度是O(n)),就等价与计算映射后特征的内积。也就是说我们不需要花
时间了。现在看一下映射函数(n=3时),根据上面的公式,得到
。也就是说核函数
只能在选择这样的
作为映射函数时才能够等价于映射后特征的内积。
核函数1
这时,我们再看一个核函数。
对应的映射函数(n=3时)是
,更一般地,核函数
对应的映射后特征维度为
。
由于计算的是内积,我们可以想到IR中的余弦相似度,如果x和z向量夹角越小,那么核函数值越大,反之,越小。因此,核函数值是
和
的相似度。
核函数2
同时,我们再看,另外一个核函数。
这时,如果x和z很相近(
),那么核函数值为1,如果x和z相差很大(
),那么核函数值约等于0。由于这个函数类似于高斯分布,因此称为高斯核函数,也叫做径向基函数(Radial Basis Function 简称RBF)。它能够把原始特征映射到无穷维。
既然高斯核函数能够比较x和z的相似度,并映射到0到1,回想logistic回归,sigmoid函数可以,因此还有sigmoid核函数等等。
下面有张图说明在低维线性不可分时,映射到高维后就可分了,使用高斯核函数。
(Eric Xing的slides)注意,使用核函数后,怎么分类新来的样本呢?线性的时候我们使用SVM学习出w和b,新来样本x的话,我们使用
来判断,如果值大于等于1,那么是正类,小于等于是负类。在两者之间,认为无法确定。如果使用了核函数后,
就变成了
,是否先要找到
,然后再预测?答案肯定不是了,找
很麻烦,回想我们之前说过的
。只需将
替换成
,然后值的判断同上,
核函数有效性判定
问题描述
给定一个函数K,我们能否使用K来替代计算,也就说,是否能够找出一个
,使得对于所有的x和z,都有
? 比如给出了
,是否能够认为K是一个有效的核函数。
问题分析
下面来解决这个问题,给定m个训练样本,每一个
对应一个特征向量。那么,我们可以将任意两个
和
带入K中,计算得到
。可以从1到m,j可以从1到m,这样可以计算出m*m的核函数矩阵(Kernel Matrix)。为了方便,我们将核函数矩阵和
都使用K来表示。
有效地核函数定义
如果假设K是有效地核函数,那么根据核函数定义可见,矩阵K应该是个对称阵。让我们得出一个更强的结论,首先使用符号
来表示映射函数
的第k维属性值。那么对于任意向量z,得
最后一步和前面计算
时类似。从这个公式我们可以看出,如果K是个有效的核函数(即
和
等价),那么,在训练集上得到的核函数矩阵K应该是半正定的K大于等于零。这样我们得到一个核函数的必要条件:K是有效的核函数 ==> 核函数矩阵K是对称半正定的。可幸的是,这个条件也是充分的,由Mercer定理来表达。Mercer定理表明为了证明K是有效的核函数,那么我们不用去寻找
,而只需要在训练集上求出各个
,然后判断矩阵K是否是半正定(使用左上角主子式大于等于零等方法)即可。在Mercer定理证明过程中使用了
范数和再生希尔伯特空间等概念,但在特征是n维的情况下,这里给出的证明是等价的。核函数不仅仅用在SVM上,但凡在一个模型后算法中出现了< x, z >,我们都可以常使用
去替换,这可能能够很好地改善我们的算法。
关于Image Engineering & Computer Vision的更多讨论与交流,敬请关注本博和新浪微博songzi_tea.
相关文章推荐
- 小波分析 + 支持向量机(SVM)预测股票涨跌幅的实现
- 第八篇:支持向量机 (SVM)分类器原理分析与基本应用
- 机器学习--SVM(支持向量机)核函数原理以及高斯核函数
- 支持向量机SVM分析
- 基于支持向量机(SVM)的遗传疾病致病位点预测分析
- 选择支持向量机(SVM)核函数
- 机器学习——支持向量机(SVM)之核函数(kernel)
- <基础原理进阶>机器学习算法python实现【4】--文本分析之支持向量机SVM【上】
- 小波分析 + 支持向量机(SVM)预测股票涨跌幅的实现作者:k474905973
- svm(三)支持向量机之核函数
- 支持向量机SVM(一):支持向量机SVM的推倒:从logistic回归,到函数间隔,集合间隔,到寻找最优间隔分类器。
- <基础原理进阶>机器学习算法python实现【5】--文本分析之支持向量机SVM(下)
- 支持向量机 (SVM)分类器原理分析与基本应用
- 选择支持向量机(SVM)核函数
- 支持向量机(SVM)的分析及python实现
- libsvm代码阅读:关于svm_train函数分析
- 机器学习——支持向量机SVM之核函数
- 支持向量机SVM分析
- opencv机器学习 Haar特征 LBP特征 adaboost集成学习 级联分类器 支持向量机SVM 主成分分析PCA 人工神经网络(ANN) 笑脸检测 SVM分类 笑脸 检测
- 支持向量机SVM(2)之核函数