如何理解 SVM 中的功能余量?

Posted

技术标签:

【中文标题】如何理解 SVM 中的功能余量?【英文标题】:How to understand the functional margin in SVM ? 【发布时间】:2013-01-17 11:35:13 【问题描述】:

我正在阅读 Andrew NG 的机器学习笔记,但功能边距定义让我感到困惑:

我可以理解几何边距是从 x 到其超平面的距离,但如何理解功能边距?为什么他们这样定义它的公式?

【问题讨论】:

公式是这样的,因为您可以使用“内核”函数将值映射到另一个更高维空间。此函数的示例是多项式或 RBF。可能,功能边距是特定函数在映射空间上的几何边距! 这个问题较旧,但我作为副本链接的问题似乎有更好的接受答案 (***.com/questions/20058036/…)。 【参考方案1】:

关于这个问题

为什么他们这样定义它的公式?

说明:功能边距没有告诉我们不同点到分离平面/线的确切距离或测量值。

例如,只需考虑以下几行,它们是相同的,但功能边距会有所不同(功能边距的限制)。

2*x  + 3*y  + 1 = 0 
4*x  + 6*y  + 2 = 0 
20*x + 30*y +10 = 0

Functional Margin 只是给出关于我们分类的置信度的一个想法,没有什么具体的。

更多详情,请阅读以下参考资料。

Referenced Andrew NG's lecture notes, please click here for more details

如果 y(i) = 1,那么为了使函数余量很大(即,为了使我们的预测可靠且正确),我们需要 wTx + b 是一个很大的正数。相反,如果 y(i) = -1,那么要使函数余量很大,我们需要 wTx + b 是一个很大的负数。此外,如果 y(i)(wTx + b) > 0,那么我们对这个例子的预测是正确的。 (您自己检查一下。)因此,较大的功能余量代表一个自信且正确的预测。

【讨论】:

【参考方案2】:

您可以根据以下两个假设将功能边距转换为几何边距:

    ||w|| == 1,因此 (w^T)x+b == ((w^T)x+b)/||w||,即从点 x 到直线 y=(w^T) 的几何距离x+b。

    目标只有两个类别,其中 y_i 只能是 +1 和 -1。因此,如果 y_i 的符号与点 x 所在的直线的边相匹配 (y_i > 0 when (w^T)x+b > 0, y_i

【讨论】:

【参考方案3】:

功能保证金:

这给出了点相对于平面的位置,它与大小无关。

几何边距:

这给出了给定训练示例和给定平面之间的距离。

【讨论】:

【参考方案4】:

功能边距用于缩放。

几何边距 = 功能边距 / 范数(w)。

或者,当 norm(w) = 1 时,边距为几何边距

【讨论】:

【参考方案5】:

可以这样想:w^T.x_i +b 是模型对第 i 个数据点的预测。 Y_i 是它的标签。如果预测和基本事实具有相同的符号,则 gamma_i 将为正。这个实例在类边界的“内部”越远,gamma_i 就越大:这更好,因为对所有 i 求和,你的类之间会有更大的分离。如果预测和标签在符号上不一致,那么这个数量将是负数(预测器的错误决定),这将减少你的利润,并且你越不正确,它就会越减少(类似于松弛变量) .

【讨论】:

以上是关于如何理解 SVM 中的功能余量?的主要内容,如果未能解决你的问题,请参考以下文章

GridBagLayout为列提供额外的余量

帮助我理解二进制 SVM 中的线性可分性

如何分分钟理解SVM(中文版)

SVM教程:支持向量机的直观理解

R 理解来自 kernlab 的 caret train(tuneLength = ) 和 SVM 方法

SVM中核函数的理解