您好!以下是翻译的结果:
您能否解释一下径向基函数(RBF)内核如何将每个原始数据样本x1(x11,x12,x13,....,x1n)映射到一个更高维度(m维)的空间中,成为X1(X11,X12,X13,...,X1m),并举一个具体例子。另外,我理解的是内核计算转换后数据的内积(因此,在RBF之前还有另一个转换,这意味着RBF隐式地将数据转换到更高的空间,但是如何进行转换呢?)。
正如您所说 - 内核是投影空间的内积,而不是投影本身。整个“技巧”在于您永远不会转换您的数据,因为这样做计算上太昂贵了。
另一件事:内核是一个函数k(x,x1):(R ^ n)^ 2-> R = g(x)。g(x1),其中g是一个变换函数,在RBF内核的情况下如何定义g?
对于RBF内核,g实际上是从R ^ n映射到连续函数空间(L2)的映射,并且每个点都被映射到具有均值x和方差sigma ^ 2的未规格化高斯分布中。 因此(我们将删除一些规范化常数A),
g(x) = N(x, sigma^2)[z] / A
在函数空间中,内积现在是整个定义域上乘积的积分。因此,有:
K(x, y) = <g(x), g(y)>
= INT_{R^n} N(x, sigma^2)[z] N(y, sigma^2)[z] / A^2 dz
= B exp(-||x-y||^2 / (2*sigma^2))
B是一个常数因子(归一化),仅取决于sigma^2,因此我们可以在计算时将其删除(因为缩放在这里并不重要),以便简化计算。
假设我们在测试集中,我的理解是x是要分类的样本,x1是支持向量(因为只有支持向量才会用来计算超平面)。在RBF的情况下k(x,x1)=exp(-(x-x1)^2/2sigma),那么转换在哪里?
如前所述——变换从未明确使用,你只需表明您的超平面与变换后的点的内积可以再次表示为与支持向量的内积,因此您无需对任何内容进行转换,只需使用核函数即可。
<w, g(x)> = < SUM_{i=1}^N alpha_i y_i g(sv_i), g(x)>
= SUM_{i=1}^N alpha_i y_i <g(sv_i), g(x)>
= SUM_{i=1}^N alpha_i y_i K(sv_i, x)
其中,sv_i
是第i个支持向量,alpha_i
是在优化过程中找到的每个样本权重(拉格朗日乘子),而y_i
是第i个支持向量的标签。
最后一个问题:承认RBF将映射到更高的维度m,是否有可能显示出这个m?我想看到理论上的现实。
在这种情况下,m
是无限大的,因为你的新空间是定义在R^n -> R域中连续函数的空间,因此单个向量(函数)被定义为一系列(实数集合)值 - 每个来自R^n的可能输入值都有一个。因此从纯数学的角度看,m = |R|
,使用集合论,这被称为Beth_1 (https://en.wikipedia.org/wiki/Beth_number)。
我想用RBF核实现SVM。这里的m是什么,如何选择?如何在实践中实现核技巧?
你不需要选择m
,它由核本身定义。在实践中实现核技巧需要将所有的优化例程表达为仅在内积上下文中使用训练点,并用核调用替换它们。这太过复杂,无法在SO形式中描述。