rbf核函数|rbf核函数_SVM核函数的直观解释

通俗易懂的解释SVM核函数。

作者:Lili Jiang
编译:McGL
公众号:PyVision(欢迎关注,专注CV,偶尔CS)
An Intuitive Explanation of Kernels in Support Vector Machine (SVM)
https://towardsdatascience.com/an-intuitive-explanation-of-kernels-in-support-vector-machine-svm-9ef366e8d5fb

简而言之,内核(kernel)是一种捷径,可以帮助我们更快地进行某些计算,否则就会涉及到更高维空间的计算。这听起来相当抽象。在这篇博文中,我将向你们展示一个只需要基本算术的简单例子。
一个简单的例子:
有一个三维向量 x = (x1,x2,x3)。我们将操作 f (x)定义为: f (x) = (x1x1,x1x2,x1x3,x2x1,x2x2,x2x3,x3x1,x3x2,x3x3)。换句话说,它希望x每个对相乘,并生成一个9维向量。
让我们代入数字,使它更直观!假设 x = (1, 2, 3); y = (4, 5, 6)。则:
f(x) = (1, 2, 3, 2, 4, 6, 3, 6, 9)
【rbf核函数|rbf核函数_SVM核函数的直观解释】f(y) = (16, 20, 24, 20, 25, 30, 24, 30, 36)
出于某种原因,我们实际上并不关心 f(x)和 f(y)。我们只想知道点积, 。点积是指 f(x)的第一维乘以 f(y)的第一维,f(x)的第二维乘以 f(y)的第二维,...... f(x)的第九维乘以 f(y)的第九维,我们把它们加起来。所以:
= 16 + 40 + 72 + 40 + 100+ 180 + 72 + 180 + 324 = 1024
很多代数!主要是因为 f 是从三维空间到九维空间的映射。尽管最终的答案只是一个数字,但我们必须在中间“膨胀” ,在九维空间中完成所有这些乏味的计算,然后才能浓缩成单个数字。

rbf核函数|rbf核函数_SVM核函数的直观解释
文章图片

如果我告诉你有捷径呢?
我声称,“核” K(x, y ) = ()2, 达到了同样的效果。也就是说,我们在 x 和 y,而不是 f(x)和 f(y) 上做点积,然后平方。
让我们来测试一下:
备注: x = (1, 2, 3); y = (4, 5, 6)
= x1y1 + x2y2 + x3y3 = 1 x 4 + 2 x 5 + 3 x 6 = 32
K(x, y) = ()2 = 322 = 1024

瞧,同样的结果。但是这个计算要容易得多,因为我们只在三维空间中进行操作。我们从未涉足九维空间!
数学定义:
现在让我们继续讨论数学形式。
K(x, y) =
K 表示核函数。这里 x,y 是 n 维输入。f 是从 n 维到 m 维空间的映射。通常 m 比 n 大得多。内核是一个函数,它接受 x 和 y 作为输入,得到与 <f(x),f(y)> 相同的结果,而无需计算 f(x)f(y)
内核的另一个美妙之处在于: 它们允许我们在无限维中做事情!f(x)可以是从 n 维到无限维的映射,因此不可能先写出 f(x) f(y) ,然后再做点积。内核给了我们一个绝妙的捷径。其中一个例子就是径向基核函数(RBF)内核。与SVM的关系:
这与SVM有什么关系?SVM的思想是 y = w phi (x) + b,其中 w 是权重,phi 是特征向量,b 是偏差。如果 y > 0,那么我们把数据分为1类,否则分为0类。我们希望找到一组权重和偏差,使边际最大化。一些教材说,内核使SVM的数据线性可分。我认为一个更精确的说法是,内核不会使数据线性可分。特征向量 phi (x) 使数据线性可分。内核是使计算过程更快、更容易,特别是在特征向量 phi 维度很高的情况下。
为什么它也可以被理解为相似性的度量:
如果我们把以上内核的定义 放到 SVM 和特征向量的场景中,它变成了 。点积是指 phi(x)在 phi(y)上的投影,或者通俗地说,x 和 y 在特征空间中有多少重叠。换句话说,他们有多相似。点积是用来度量相似性的; 内核只是用来达到点积效果,而不需要实际上做 f(x)和f(y)之间点积的一种方法。

    推荐阅读