0

我对机器学习领域非常陌生,基本上是在自学,我正在阅读一些与支持向量机相关的论文,因为我打算用它来解决我的文本分类问题。然而,由于我一直停留在内核和内核方法的概念并将数据映射到更高维度,因此我无法在任何论文中取得很大进展。

我知道这要求很多,因为我已经看过关于内核方法和内核的整本教科书,但是有人可以尝试从一个非常基本的级别开始发布关于内核和内核方法的解释,因为到目前为止我所看到的所有解释都假设对该领域有一定的先验知识。

另外,如果有人可以为我澄清这些概念或指出我从基本层面解释这些事情的基本资源,我对内核函数以及如何使用它来将“数据映射到更高维空间”有点不清楚,我会很感激。

提前致谢。

4

2 回答 2

4

很难将复杂的数学提炼成简单的水平,但我相信这个例子对我有所帮助。

抱歉,Stack Overflow 似乎不像Computional Science那样支持数学标记,所以你必须忍受一些基于文本的糟糕方程式。向量x = [ x 1 , x 2 ],所以x 1是向量x的第一个分量。

为简单起见,假设每个训练示例只有两个属性,因此您的数据是二维的。您开发了一个映射函数来将这两个属性映射到三个属性的更高维度。您的映射功能如下:

Φ( x ) = [ x 1 2 , x 2 2 , x 1 * x 2 ]

在 SVM 拉格朗日公式中:

拉格朗日 SVM 公式

每个训练示例都显示为与另一个训练示例的内积(上图在第一个等式中显示了这一点)。如果您想使用您的映射功能,您可以为每个训练示例插入它。

如果你这样做,当然你将不得不为每个训练样本显式计算 Φ( x ),然后在你的高维空间中计算两个向量的内积。如果我们对两个向量xy这样做,我们将有:

Φ( x ) * Φ( y ) = [ x 1 2 , x 2 2 , x 1 * x 2 ] * [ y 1 2 , y 2 2 , y 1 * y 2 ] = x 1 2 * y 1 2 + x 2 2 * y 2 2 + x 1 * x 2 * y 1 *2

想象一下,您使用了多项式内核K ( x , y ) = ( x * y ) d的次数为 2,您将拥有:

K ( x , y ) = ( x 1 * y 1 + x 2 * y 2 ) 2 = x 1 2 * y 1 2 + x 2 2 * y 2 2 + x 1 * x 2 * y 1 * y 2

核函数允许您在计算内积之前避免计算高维空间,但仍会导致该高维空间中两个向量的内积。在这种情况下,我们使示例保持简单,因此我们可以明确地完成它,但默瑟定理表明,我们可以证明这对于其他函数是正确的,而无需知道显式映射,只要该函数服从默瑟的条件。您可以看到内核参数d如何显着影响映射,d = 3将导致完全不同的映射,因此更改内核参数正在修改高维空间。

由于从不明确使用高维映射,而只是作为选择最佳 alpha 的一种方式,我们不需要知道它是什么,我们可以利用它而无需计算它。

于 2012-06-13T16:27:17.997 回答
0

由于您的应用程序是文本分类,因此您无需为非线性内核操心。文本已经“存在”在高维(和稀疏)空间中,无需进入更高维空间。

您可以安全地尝试仅线性内核。

阅读 SVMLight 的作者 Joachims 关于文本分类的经典论文和论文,以更深入地了解这一点。

于 2012-07-18T23:42:25.423 回答