2

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

内核例如:RBF:

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

其中 x_i 和 x_j 是两个输入。在这里,我们需要更改 sigma 以适应我们的问题。

       (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?
4

3 回答 3

2

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

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

例如,MNIST 手写数字数据库包含 60K 训练示例和 10K 测试示例以及 28x28 二进制图像。

  • 线性 SVM 的测试误差约为 8.5%。
  • 多项式 SVM 的测试误差约为 1%。
于 2012-10-22T22:24:20.080 回答
2

好吧,这不仅仅是增加维度的问题。这是一般机制,但不是全部想法,如果内核映射的唯一目标是增加维度是真的,那么可以得出结论,所有内核函数都是等价的,而它们不是。

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

所以直接回答你的问题:

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

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

于 2012-10-23T12:38:59.347 回答
1

您的问题是一个非常自然的问题,几乎每个了解内核方法的人都问过一些变体。但是,我不会尝试根据线性超平面运行的隐含特征空间来理解非线性内核发生了什么,因为大多数非平凡内核具有很难可视化的特征空间。

相反,专注于理解内核技巧,并将内核视为在输入空间中引入一种特定形式的非线性决策边界。由于内核技巧,以及如果您不熟悉它的一些相当令人生畏的数学,任何满足某些属性的内核函数都可以被视为在某些特征空间中运行,但永远不会执行到该空间的映射。如果您有兴趣,可以阅读以下(相当)可访问的教程:从零到在十二页或更少的时间内再现内核希尔伯特空间

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

  1. 保证金有多大
  2. 训练集上的误差

支持向量机公式使我们能够有效地解决这个问题。一个内核或另一个内核是否更好取决于应用程序(例如,文本分类和其他语言处理问题通常使用线性内核显示最佳性能,这可能是由于输入数据的极端维度)。没有真正的替代品可以尝试一堆并查看哪个效果最好(并确保正确设置 SVM 超参数——LibSVM 作者之一的这篇演讲有血淋淋的细节)。

于 2012-10-24T14:51:09.357 回答