gpt4 book ai didi

machine-learning - 在 SVM 中练习核技巧

转载 作者:行者123 更新时间:2023-11-30 08:35:00 25 4
gpt4 key购买 nike

我正在阅读SVM理论。在内核技巧中,我的理解是,如果我们有一个在原始维度 n 中不可线性分离的数据,我们使用内核将数据映射到更高的空间以实现线性可分离(我们必须根据情况选择正确的内核)数据集等)。然而,当我观看Andrew ng的这段视频Kernel 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是什么?这里又该如何选择呢?如何在实践中实现内核技巧?

最佳答案

Could you explain me how does RBF kernel work to map each original data sample x1(x11,x12,x13,....,x1n) to a higher space (with dimensions m) to be X1(X11,X12,X13,...,X1m) with a concrete example. Also, what I understand is the kernel compute the inner product of the transformed data (so there is an other transformation before the RBF, which means that RBF transform implicitly the data to a higher space but How?).

正如您所说 - 内核是投影空间的内积,而不是投影本身。整个技巧是您永远不要转换数据,因为这样做计算成本太高

other thing: the kernel is a function k(x,x1):(R^n)^2->R =g(x).g(x1), with g is a transformation function, how to define g in the case of RBF kernel?

对于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,因此为了计算简单,我们可以放弃它(因为缩放在这里并不重要)。

Suppose that we are in the test set, What I understand is x is the sample to be classified and x1 is the support vector (because only the support vectors will be used to calculate the hyperplane). in the case of RBF k(x,x1)=exp(-(x-x1)^2/2sigma), so where is the transformation?

如前所述 - 从未明确使用变换,您只需表明超平面与变换点的内积可以再次表示为具有支持向量的内积,因此您永远不会变换任何东西,只需使用内核即可

<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 个支持向量的标签。

Last question: Admit that the RBF do the mapping to a higher dimension m, it is possible to show this m? I want to see the theoretical reality.

在这种情况下,m 是无穷大,因为您的新空间是 R^n -> R 域中连续函数的空间,因此单个向量(函数)被定义为连续体(实数集的大小)值 - 每个来自 R^n 的可能输入值都有一个(这是一个简单的集合论结果,任何正 n 的 R^n 都是大小连续体)。因此,就纯数学而言,m = |R|,并使用集合论,这就是所谓的 Beth_1 ( https://en.wikipedia.org/wiki/Beth_number )。

I want to implement SVM with RBF kernel. What is the m here and how to choose it? How to implement kernel trick in practice?

你不必选择m,它是由内核本身定义的。在实践中实现内核技巧需要以形式表达所有优化例程,其中训练点在内积的上下文中使用,并且仅用内核调用替换它们。这太复杂了,无法以 SO 形式描述。

关于machine-learning - 在 SVM 中练习核技巧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35447613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com