为什么 SVM 中的偏差项是单独估计的,而不是特征向量中的额外维度?

机器算法验证 支持向量机 临界点
2022-02-11 11:24:17

SVM 中的最优超平面定义为:

wx+b=0,

其中代表阈值。如果我们有一些映射将输入空间映射到某个空间中定义 SVM ,其中最优 hiperplane 将是:bϕZZ

wϕ(x)+b=0.

然而,我们总是可以定义映射使得 ,,然后最优hiperplane 将被定义为 ϕϕ0(x)=1x

wϕ(x)=0.

问题:

  1. 为什么许多论文在已经有映射和估计参数和阈值wϕ(x)+b=0ϕwb

  2. 将 SVM 定义为 s.t.是否有问题?\ y_n \mathbf w \cdot \mathbf \phi(\mathbf x_n) \geq 1, \forall n并且只估计参数向量\mathbf w,假设我们定义\phi_0(\mathbf x)=1, \forall\mathbf x ?

    minw||w||2
    s.t. ynwϕ(xn)1,n
    wϕ0(x)=1,x

  3. 如果问题 2. 中的 SVM 定义是可能的,我们将有w=nynαnϕ(xn)并且阈值将简单地为b=w0,我们不会单独处理。所以我们永远不会使用像b=t_n-\mathbf w\cdot \phi(\mathbf x_n)这样的公式从某个支持向量x_nb=tnwϕ(xn)估计b对?bxn

3个回答

为什么偏见很重要?

偏置项实际上是 SVM 中的一个特殊参数。没有它,分类器将始终通过原点。因此,如果 SVM 没有恰好通过原点,则 SVM 不会为您提供具有最大边距的分离超平面,除非您有偏差项。b

下面是偏见问题的可视化。使用(不使用)偏置项训练的 SVM 显示在左侧(右侧)。尽管两个 SVM 都在相同的数据上进行了训练,但是它们看起来非常不同。

在此处输入图像描述

为什么要单独对待偏差?

正如用户逻辑所指出的,由于正则化,偏置项应该单独处理。SVM 最大化边距大小,即(或取决于你如何定义它)。b1||w||22||w||2

最大化边距与最小化相同。这也称为正则化项,可以解释为分类器复杂性的度量。但是,您不希望对偏差项进行正则化,因为偏差会将所有数据点的分类分数向上或向下移动相同的量特别是,偏差不会改变分类器的形状或其边距大小。所以, ...||w||2

SVM 中的偏置项不应该被正则化。

然而,在实践中,将偏差推入特征向量更容易,而不必作为特殊情况处理。

注意:当向特征函数推送偏差时,最好将特征向量的维度固定为一个较大的数,例如,以尽量减少偏差正则化的副作用。ϕ0(x)=10

有时,人们会忽略 SVM 中的拦截,但我认为原因可能是我们可以惩罚拦截以忽略它。IE,

我们可以修改数据所以省略截距 你说,类似的技术可以在内核版本中使用。x^=(1,x)w^=(w0,wT)T

x w+b=x^ w^

但是,如果我们将截距放入权重中,目标函数将与原始函数略有不同。这就是我们称之为“惩罚”的原因。

除了上述原因,点到由斜率和截距定义的超平面的距离是 这就是推动了 SVM 中的边距概念。如果将更改为包含截距项的范数将受到截距大小的影响,这将导致 SVM 向小截距优化,这在许多情况下没有意义。xθb

|θTx+b|||θ||
θbθ