我对机器学习领域非常陌生,基本上是在自学,我正在阅读几篇与支持向量机相关的论文,因为我打算用它来解决我的文本分类问题。然而,我无法在任何一篇论文上取得太大进展,因为我一直停留在核和核方法的概念上,并将数据映射到更高的维度。
我知道这要求很高,因为我已经看过有关内核方法和内核的整本教科书,但是有人可以尝试从非常基础的层面开始发布有关内核和内核方法的解释吗,因为我看过的所有解释到目前为止,假设您对该领域有一定的先验知识。
此外,我还不清楚内核函数以及它如何用于将“数据映射到更高维度的空间”,如果有人可以为我澄清这些概念或为我指出一个基本资源来解释这些事情基础水平,我将不胜感激。
提前致谢。
最佳答案
将复杂的数学提炼成简单的水平是很困难的,但我相信这个例子有帮助。
抱歉,Stack Overflow 似乎不支持数学标记,如 Computional Science确实如此,所以你将不得不忍受一些蹩脚的基于文本的方程式。向量x = [x1, x2],所以 x1 是向量 x 的第一个分量。
为简单起见,假设每个训练示例只有两个属性,因此您的数据是二维的。您已经开发了一个映射函数来将这两个属性映射到三个属性的更高维度。您的映射函数如下:
Φ(x) = [x12, x22,x1 * x2]
在SVM拉格朗日公式中:
每个训练示例都显示为与另一个训练示例的内积(上图在第一个方程中显示了这一点)。如果您想使用映射函数,则可以将其插入到每个训练示例中。
如果您这样做,当然您必须明确计算每个训练示例的 Φ(x),然后计算高维空间中两个向量的内积。如果我们对两个向量 x 和 y 执行此操作,我们将得到:
Φ(x) * Φ(y) = [x12, x22, x1 * x< sub>2] * [y12,y22, y1 * y2] = < em>x12 * y12 + < em>x22 * y22 + < em>x1 * x2 * y1 * y2
想象一下,您使用多项式内核K(x , y) = (x * y)d 次数为 2,您将得到:
K(x, y) = (x1 * < em>y1 + x2 * y2) 2 = x12 * y12 + x22 * y22 + x1 * x2 * y 1 * y2
核函数允许您在计算内积之前避免计算高维空间,但仍然会导致该高维空间中两个向量的内积。在本例中,我们保持示例简单,以便我们可以明确地执行,但是 Mercer's Theorem表明我们可以证明对于其他函数来说也是如此,而无需知道显式映射,只要该函数遵循 Mercer's condition 。您可以看到内核参数d如何显着影响映射,d = 3将导致完全不同的映射,因此更改内核参数就是修改高维空间.
由于高维映射从未被明确使用,只是作为选择最佳 alpha 的一种方式,我们实际上不需要知道它是什么,我们可以利用它而无需计算它。
关于mapping - 机器学习中核方法和核函数的查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11007454/