【问题标题】:Why do we calculate the margin in SVM?为什么我们在 SVM 中计算保证金?
【发布时间】:2018-05-08 11:10:09
【问题描述】:

我正在学习 SVM(支持向量机):有几个点仍然模棱两可:(线性可分,原始情况)

我知道如何找到权重w 和超规划方程,但是如果我们可以从中推导出支持向量,我们为什么要计算边距?我需要先计算什么?在这种情况下 ? (很抱歉这些混杂的问题,但我真的迷路了)

我在一些例子中看到边距是以这种方式计算的:

1 / ||w||

而在其他人中,则这样:

2 / ||w||

那么这两种情况有什么区别呢?

谢谢

【问题讨论】:

  • SVM 的关键是找到可以描述最大化边距的超平面的权重。因此,这是一个使用边距来找到这些权重的优化问题。
  • 如何使用边距来查找这些权重?感谢您的回答。

标签: vector svm


【解决方案1】:

SVM 的优化目标是减少 w,b,使我们与超平面有最大的边距。

从数学上讲, 这是一个非线性优化任务,由 KKT (Karush-Kunn-Tucker) 条件解决,使用拉格朗日乘子。

以下视频简单地解释了线性可分情况

https://www.youtube.com/watch?v=1NxnPkZM9bc

对于线性和原始情况,这里更​​好地解释了这是如何计算的。

https://www.csie.ntu.edu.tw/~cjlin/talks/rome.pdf

【讨论】:

    【解决方案2】:

    分离超平面与 SVM 的类边界之间的边距是该算法的基本特征。

    看,你有两个超平面(1) w^tx+b>=1, if y=1(2) w^tx+b<=-1, if y=-1。这表示任何带有标签y=1 的向量都必须位于超平面(1) 之上或之后。这同样适用于带有标签y=-1 和超平面(2) 的向量。

    注意:如果可以满足这些要求,则意味着数据集是线性可分的。这是有道理的,因为否则无法构建这样的边距。

    所以,SVM 试图找到的是位于(1)(2) 之间的决策边界。让我们将此边界定义为(3) w^tx+b=0。您在这里看到的是(1)(2)(3) 是平行超平面,因为它们共享相同的参数wb。参数w 保存这些平面的方向。回想一下,向量总是有一个方向和一个大小/长度。

    现在的问题是:如何计算超平面(3)?方程(1)(2) 告诉我们,任何带有标签y=1 且最接近(3) 的向量正好位于超平面(1) 上,因此(1) 对于这样的x 变为w^tx+b=1。类似的情况适用于带有负标签和(2) 的最近向量。平面上的那些向量称为“支持向量”,而决策边界(3) 仅取决于这些向量,因为可以简单地从支持向量的(1) 中减去(2) 并得到:

    w^tx+b-w^tx+b=1-(-1) => wt^x-w^tx=2
    

    注意:x 表示两个平面是不同的支持向量。

    现在,我们想要获取w 的方向,但忽略它的长度以获取(3) 和其他平面之间的最短距离。这个距离是从(3) 到其他的垂直线段。为此,可以将w 的长度除以得到垂直于(3) 的范数向量,即(wt^x-w^tx)/||w||=2/||w||。通过忽略左侧站点(它相等),我们看到两个平面之间的距离实际上是2/||w||。这个距离必须最大化。

    编辑: 正如其他人在这里所说,使用拉格朗日乘数或 SMO 算法来最小化术语 1/2 ||w||^2 s.t. y(w^tx+b)>=1 这是原始 svm 优化问题的凸形式。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-10-17
      • 1970-01-01
      • 2015-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-18
      相关资源
      最近更新 更多