可视化SVM的超平面方程

时间:2016-06-21 13:56:16

标签: machine-learning language-agnostic svm

我一直试图理解SVM算法,但我无法完全得到超平面方程。等式为 - w x -b = 0。 我理解(有很多混淆)是 - x 是构成超平面的所有向量的未知集合, w 是超平面的法向量。我们不知道 w ,我们需要从训练集中找到最佳 w

现在,我们都知道,如果两个矢量彼此垂直,那么它们的点积为零。因此,如果 w x 正常,那么这意味着它应该 w x = 0,但为什么它是说 w x -b = 0或 w x = b?(正常和垂直相同事情,对吗?)在正常意义上,我理解的是 w x = b,然后 w x 不垂直,它们之间的角度大于或小于90度。

另一件事是,在大多数教程中(甚至是他的lecture中的麻省理工学院教授),据说 x 正在 w 投影,但是我知道如果我想将 x 投射到 w 那么它将 x w / | 瓦特 | (没有 w 的方向),不仅 w x 。我对这一点是对的吗?

我想,我错过了什么或误解了什么。任何人都可以帮我吗?

1 个答案:

答案 0 :(得分:0)

首先,排队:

  • x 投影到 w 是( x.w / | w | ²) w 。并且 x。 w / | w | x 方向 w 的组成部分(因为 w / | w | 是一个单位)方向向量 w

然后,你可能会混淆两件事:

  1. 如果 x 是超平面的矢量,则 x.w = 0是超平面的等式。不幸的是,我们不希望您的任何 x 出现在超平面上。

  2. 对于SVM,您不知道超平面上的任何向量 x 。相反,你有一套训练集{( x 1,y1),...,( x N,yN)}你要从中找到法线向量<超平面的强> w (然后你可以描述这个超平面的任何向量 x ,知道 wx = 0)。

  3. 让我们检查你有数据集的第二个点{( x 1,y1),...,( x N,yN)} 并且你想要找到超平面方程,即它的法向量 w ,这要归功于一些特定的向量(称为支持向量)。

    • 没有理由认为 x 中的任何一个 w 是正常的。此外,所有 x 都不可能与超平面垂直(如果是这样,我们考虑两个向量 x1 != x2 。然后 w.x1 = 0 = w.x2 =&gt; w。(x1-x2) = 0表示 w = 0 < / strong>或 x1 = x2

    • 但我们想要的是 wU &gt; = C如果 U 正(超平面的一侧)和 wU &LT; C如果 U 为负(超平面的另一侧)。

    • 从特定的 U 开始,我们可以选择数据集中的向量。我们期望它们在这个超平面的某个距离D(称为讲座中的阴沟)。因此,如果yi为正,我们有 w.x i&gt; = C + D. w.x i&lt; C - D if yi negative

    • 让我们把b = -C和D = 1(不失一般性)。然后 w.x i + b> = 1如果yi为正。 w.x i + b&lt; -1如果是否定的。

    • 如果乘以yi(等于1,如果 x i为正,否则为-1)会导致yi( wx i + b)&gt ; = 1。

    • 最后,通过获取支持向量,即定义装订线的支持向量,我们得到yi( w.x i + b) - 1 = 0