如何为SVM选择内核?


95

使用SVM时,我们需要选择一个内核。

我不知道如何选择内核。关于内核选择的任何标准?


问题的大小是多少?(#变量,观察)?
2011年

我只是在寻求一种通用的解决方案,未指定任何特殊问题
xiaohan2012 2011年

Answers:


54

内核实际上是一种相似性度量,因此根据Robin(+1)提出的不变性的先验知识选择内核是一个好主意。

在缺乏专业知识的情况下,“径向基函数”内核会成为一个很好的默认内核(一旦您确定这是一个需要非线性模型的问题)。

内核和内核/正则化参数的选择可以通过优化基于交叉验证的模型选择(或使用半径范围或跨度边界)来自动进行。最简单的方法是使用Nelder-Mead单纯形法来最小化连续模型选择标准,该方法不需要进行梯度计算,并且对于合理数量的超参数都适用。如果要调整的超参数超过几个,由于模型选择标准的差异,自动模型选择可能会导致严重的过度拟合。可以使用基于梯度的优化,但是通常不值得为提高性能而付出努力。

内核和内核/正则化参数的自动选择是一个棘手的问题,因为容易过度拟合模型选择标准(通常基于交叉验证),并且最终可能会得到比开始时更糟糕的模型。自动化的模型选择也可能会影响绩效评估,因此请确保绩效评估会评估拟合模型的整个过程(培训和模型选择),有关详细信息,请参阅

GC Cawley和NLC Talbot,通过超参数的贝叶斯正则化防止模型选择过拟合,《机器学习研究杂志》,第8卷,第841-861页,2007年4月。(pdf)

GC Cawley和NLC Talbot,模型选择中的过拟合和性能评估中的后续选择偏差,《机器学习研究杂志》,第1卷。2010年7月,第11页,第2079-2107页。(pdf)


我知道径向基是如何进行相似性度量的,因为相距较远的向量几乎为零,并且在相同向量上达到最大值。但是,我没有看到这个想法如何应用于线性算法(使用点积作为内核)。我们如何将点积解释为相似性度量?
巴南宁

@Bananin点积可以写成两个向量的大小乘以两个向量之间夹角的余弦的乘积,因此您可以将其视为测量向量方向的相似度(但显然也取决于他们的大小)
Dikran子母

34

如果您不确定哪种方法最好,则可以使用自动选择技术(例如,交叉验证等)。在这种情况下,您甚至可以使用从不同内核获得的分类器组合(如果您的问题是分类)。

但是,使用内核的“优势”是您可以更改常规的“欧几里得”几何形状,以使其适合您自己的问题。另外,您应该真正尝试理解内核对您的问题的兴趣,以及对您的问题的几何形状特别感兴趣的内容。这可以包括:

  • 不变性:如果有一系列的转换不能从根本上改变您的问题,则内核应反映出这一点。高斯核包含旋转不变性,但是您可以想到很多其他方面:平移,同位,任何组表示,...。
  • 什么是好的分隔符?如果您对分类问题中的分隔符(即良好的分类规则)有所了解,则应将其包括在内核选择中。谨记SVM将为您提供以下形式的分类器

f^(x)=i=1nλiK(x,xi)

K(x,xi)=x,Axi+c


在回答中,您提到使用内核的“优点”是您更改了通常的“ Euclidian”几何形状以适合您自己的问题。另外,您应该真正尝试理解内核的目的是什么对于您的问题,问题的几何形状是什么。” 您能否提供一些参考开始。谢谢。
莱哈纳2012年

11

我总是有一种感觉,对于SVM的任何超级参数选择都是通过交叉验证结合网格搜索来完成的。


2
我有同样的感觉
xiaohan2012 2011年

2
网格搜索是一个坏主意,您会花费大量时间在性能较差的区域进行搜索。使用无梯度优化算法,例如Nelder-Mead单纯形法,在实践中效率更高(例如MATLAB中的fminsearch())。
Dikran有袋动物2011年

不可以,结合预期信息使用图形模型或高斯过程进行全局优化。(请参阅Bergstra等人的“用于超参数优化的算法”,即将出版的NIPS)
bayerj 2011年

2

通常,RBF内核是一个比较合理的选择。此外,线性内核是RBF的一种特殊情况,特别是当特征数量很大时,可以只使用线性内核。


1
这取决于您的数据是否可线性分离,而不取决于您拥有多少维。当特征数量非常
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.