我正在阅读SVM的理论。在内核技巧中,我的理解是,如果我们有一个在原始维度 n 中不可线性分离的数据,我们使用内核将数据映射到更高的空间以实现线性可分离(我们必须根据数据集选择合适的内核等(。但是,当我观看Andrew ng内核SVM的视频时,我的理解是我们可以将原始数据映射到一个较小的空间,这让我感到困惑!?任何解释。
您能否解释一下 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?
假设我们在测试集中,我的理解是 x 是要分类的样本,x1 是支持向量(因为只有支持向量将用于计算超平面(。 在RBF的情况下 k(x,x1)=exp(-(x-x1)^2/2sigma)
,那么转型在哪里?
最后一个问题:承认RBF做了映射到更高维度的m,可以显示这个m吗?我想看看理论现实。
我想使用 RBF 内核实现 SVM。这里的m
是什么以及如何选择它?如何在实践中实现内核技巧?
你能解释一下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 # notice this is not a number but a function of z!
现在函数空间中的内积是整个域上乘积的积分,因此
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 一个(这是一个简单的集合论结果,任何正 n 的 R^n 都是大小连续统(。因此,就纯数学而言,m = |R|
,并使用集合论,这就是所谓的Beth_1(https://en.wikipedia.org/wiki/Beth_number(。
我想使用 RBF 内核实现 SVM。这里的m是什么以及如何选择它?如何在实践中实现内核技巧?
你不选择 m,它是由内核本身定义的。在实践中实现内核技巧需要以表单表达所有优化例程,其中训练点仅用于内部产品的上下文,并且只需用内核调用替换它们。这太复杂了,无法以SO形式描述。