非线性svm内核维度

时间:2012-10-22 14:47:14

标签: machine-learning computer-vision svm libsvm pattern-recognition

我在理解非线性SVM的内核时遇到了一些问题。 首先,我对非线性SVM的理解是:使用内核将输入转换为一个非常高的维度空间,其中转换后的输入可以用线性超平面分隔。

内核,例如:RBF:

         K(x_i, x_j) = exp(-||x_i - x_j||^2/(2*sigma^2));

其中x_i和x_j是两个输入。在这里我们需要改变西格玛以适应我们的问题。

       (1) Say if my input dimension is d, what will be the dimension of the 
           transformed space?

       (2) If the transformed space has a dimension of more than 10000 is it 
           effective to use a linear SVM there to separate the inputs?

3 个答案:

答案 0 :(得分:2)

转换通常会增加数据的维度,但不一定非常高。这取决于。 RBF内核是最流行的内核函数之一。它在每个数据点周围添加了“凹凸”。相应的特征空间是无限维度的希尔伯特空间。

如果不知道数据的具体背景,很难判断10000维度的转换是否有效进行分类。但是,为您的问题选择一个好的映射(编码先验知识+获得正确的函数类复杂性)可以改善结果。

例如,MNIST database of handwritten digits包含60K训练样例和10K测试样本,包含28x28二进制图像。

  • 线性SVM测试误差约为8.5%。
  • 多项式SVM测试误差约为1%。

答案 1 :(得分:2)

这不仅仅是增加维度的问题。这是一般机制,但不是整个想法,如果确实内核映射的唯一目标是增加维度,可以得出结论,所有内核函数都是等价的而不是。

如何进行映射将使新空间中的线性分离成为可能。 谈到你的例子,只是为了扩展一下格力所说的内容,RBF内核会根据超球面对特征空间进行排序,其中输入向量需要靠近现有球体才能产生激活。

所以直接回答你的问题:

1)请注意,您不能直接使用功能空间。相反,优化问题是使用特征空间中向量的内积来解决的,因此计算上你不会增加向量的维数。

2)这将取决于您的数据的性质,具有高维度模式将以某种方式帮助您防止过度拟合但不一定是线性可分离的。同样,新空间中的线性可分性将得以实现,因为制作地图的方式不仅仅因为它处于更高的维度。从这个意义上说,RBF会有所帮助,但请记住,如果您的数据不是在本地封闭的话,它可能在泛化方面表现不佳。

答案 2 :(得分:1)

你的问题很自然,几乎每个了解内核方法的人都会问过一些变种。但是,在线性超平面运行的隐含特征空间方面,我不会尝试理解非线性内核的情况,因为大多数非平凡内核都具有难以可视化的特征空间。

相反,专注于理解kernel trick,并将内核视为在输入空间中引入特定形式的非线性决策边界。由于内核技巧,以及一些相当令人生畏的数学,如果你不熟悉它,任何满足某些属性的内核函数都可以被视为在某个特征空间中运行,但是从不执行到该空间的映射。如果您感兴趣,可以阅读以下(相当)可访问的教程:from zero to Reproducing Kernel Hilbert Spaces in twelve pages or less

还要注意,由于松弛变量的表述,超平面不必精确地分离点:有一个目标函数被最大化,其中包含对错误分类实例的惩罚,但是如果边界可以容忍一些错误分类大多数情况下生成的分类器更好。基本上,我们根据以下某些标准优化分类规则:

  1. 保证金有多大
  2. 训练集上的错误
  3. 和SVM公式允许我们有效地解决这个问题。一个内核或另一个内核是否更好是非常依赖于应用程序的(例如,文本分类和其他语言处理问题通常表现出线性内核的最佳性能,可能是由于输入数据的极端维度)。没有真正的替代品可以尝试一堆,看看哪一个效果最好(并确保SVM超参数设置正确--- this talk by one of the LibSVM authors has the gory details)。