很难将复杂的数学提炼成简单的水平,但我相信这个例子对我有所帮助。
抱歉,Stack Overflow 似乎不像Computional Science那样支持数学标记,所以你必须忍受一些基于文本的糟糕方程式。向量x = [ x 1 , x 2 ],所以x 1是向量x的第一个分量。
为简单起见,假设每个训练示例只有两个属性,因此您的数据是二维的。您开发了一个映射函数来将这两个属性映射到三个属性的更高维度。您的映射功能如下:
Φ( x ) = [ x 1 2 , x 2 2 , x 1 * x 2 ]
在 SVM 拉格朗日公式中:
每个训练示例都显示为与另一个训练示例的内积(上图在第一个等式中显示了这一点)。如果您想使用您的映射功能,您可以为每个训练示例插入它。
如果你这样做,当然你将不得不为每个训练样本显式计算 Φ( x ),然后在你的高维空间中计算两个向量的内积。如果我们对两个向量x和y这样做,我们将有:
Φ( 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 的一种方式,我们不需要知道它是什么,我们可以利用它而无需计算它。