两个边际比较和一个结论?

机器算法验证 机器学习 分类 支持向量机 模式识别 边际分布
2022-04-03 20:40:56

我阅读了以下注释,但无法理解。任何想法或提示将不胜感激。

使用二阶多项式内核的 SVM 分类器。第一个多项式内核将每个输入数据 x 映射到ϕ1(x)=[x,x2]. 第二个多项式内核将每个输入数据 x 映射到ϕ2(x)=[2x,2x2]

我的问题是我们如何得出以下结论?

一般来说,是我们将使用的保证金ϕ2(x)与使用产生的余量相比 更大ϕ1(x).

1个回答

由于价值ϕ2是的两倍ϕ1, 中的所有距离ϕ2-空间是距离的两倍ϕ1-空间。这意味着边距(大致是 SVM 学习的分离超平面的“厚度”)也是两倍大。我们可以用一对更简单的核函数来证明这一点,ϕ1(x,y)=(x,y)ϕ2(x)=(2x,2y)--原理与您建议的一对内核完全相同。

如果您有一个带有正点的数据集(0,0),(0,1)和负点(1,0),(1,1),然后使用ϕ1您将学习以下 SVM:

身份图上的 SVM

另一方面,ϕ2将每个坐标乘以 2 相对于ϕ1,因此您将学习以下超平面:

2*identity map 上的 SVM

如您所见,因为所有距离都被放大了 2 倍,所以边距也更大。

附录:绘图的 R 代码

do.plot <- function(D, main, sub) {
    plot(NA, xlim=c(-0.5, 2.5), ylim=c(-0.5, 2.5), xlab='x', ylab='y', main=main, sub=sub)
    points(c(0, 0), c(0, D), pch='+')
    points(c(D, D), c(0, D), pch=4)
    abline(v=0, lty=2)
    abline(v=D, lty=2)
    abline(v=D/2)
}
do.plot(1, 'phi1', 'margin=1')
do.plot(2, 'phi2', 'margin=2')