SVM 中核函数的参数是什么?

What are the parameters to the kernel function in an SVM?

我正在尝试了解内核函数,尤其是 gaussian/RBF 函数 K(a,b) = exp(-gamma||a-b||**2)

据我了解,这是部分使用欧氏距离计算向量 a 和 b 的相似性度量。不过,我的问题不是关于这个内核的细节。

我不明白的是:当你在 SVM 中使用这个内核时,向量 ab 是什么?

SVM 是一种监督学习算法,因此会有一个训练阶段和一个测试阶段,您可以在其中使用收集到的数据样本。

用于训练的数据样本通常用{x_i, y_i}表示,其中x是每个数据的实值属性,y是相应的标签(见wikipedia SVM page,例如 "Linear SVM" 部分)。 对于每个内核 K(a, b)。值 "a" 和 "b" 是您拥有的数据的 x_i 和 x_j。

在测试阶段,您将只有集合 {x_i},并且您想要估计相应的 y。同样在这种情况下,"a" 和 "b" 是您拥有的数据的 x_i 和 x_j。

编辑

K(a, b) 是为每对 (a, b) = (x_i, x_j) 计算的,改变 i 和 j。内核表示点积 (Kernel trick),由所谓的函数 phi 在特征 space 上定义。 SVM 需要所有对的所有点积,因为铰链损失包含所有点积的 i 和 j 的总和(这意味着所有 K(x_i, x_j))。

例如,如果您有集合 {x_i} = {x_1, x_2} 您需要 K(x_1, x_1), K(x_1, x_2), K(x_2, x_1), K(x_2, x_2)

(对于每个内核K(a,b) = K(b,a),做点积,然后对称。最后你不需要K(x_2, x_1))