对铰链损失和 SVM 的混淆

机器算法验证 机器学习 支持向量机 损失函数
2022-03-28 10:01:17

我正在阅读一本关于数据科学的书,并且对这本书如何描述 SVM 的铰链损失感到困惑。这是书中第 94 页的图:

在此处输入图像描述

此图显示了 NEGATIVE 实例的损失函数。如果实例位于边距内,即使在积极的一面,似乎也不会受到惩罚。同样在第 95 页,作者解释说:

在此处输入图像描述

但是,根据我对 SVM 的了解,只要负实例位于负边距内或位于错误的一侧,就应该受到惩罚。我用橙色更新了如下的损失函数:

在此处输入图像描述

有人可以告诉我我是否正确吗?谢谢!

更新:在Wikipedia中,它说:

位于支持向量边缘边界之外的正确分类点不会受到惩罚,而边缘边界内或超平面错误一侧的点与其与正确边界的距离相比以线性方式受到惩罚

2个回答

搜索引用的文本,这本书似乎是商业数据科学(Provost 和 Fawcett),他们正在描述软边距 SVM。他们对铰链损失的描述是错误的问题是它不会惩罚位于边距内的错误分类点,正如您所提到的。

在 SVM 中,较小的权重对应较大的边距。因此,使用这种铰链损失的“版本”会产生病态后果:我们可以通过选择足够小的权重来实现最小可能的损失(零),以使所有点都位于边缘内。即使每个点都被错误分类因为 SVM 优化问题包含一个鼓励小权重(即大边距)的正则化项,所以解决方案将始终是零向量这意味着解决方案完全独立于数据,没有学到任何东西。不用说,这不会成为一个非常好的分类器。

软边距 SVM的铰链损失的正确表达式是:

max(0,1yf(x))

其中是给定输入的 SVM 的输出,是真正的类(-1 或 1)。当真正的类是-1(如您的示例中)时,铰链损失如下所示:f(x)xy

在此处输入图像描述

请注意,对于错误分类的点以及落在边距内的正确分类的点,损失是非零的。

有关使用铰链损失公式的软边距 SVM 的正确描述,请参阅统计学习的要素(第 12.3.2 节)或维基百科文章

(A) 铰链函数可以表示为

yi=γmax(xiθ,0)+εi,

在哪里:

  • γ是铰链后斜率的变化。在您的示例中,这相当于铰链之后的斜率,因为您的仅铰链模型(见下文)假设的影响为零,直到铰链。xy

  • θ铰链所在的点(在x中) ,是模型估计的参数。我相信你的问题是通过考虑到铰链的位置是由损失函数来回答的。

  • εi是一些带有某种分布的误差项。

铰链功能也可用于更改任何线:

yi=α0+βxi+γmax(xiθ,0)+εi,

在哪里:

  • α是模型常数,是曲线在铰链之前的截距(即)。当然,如果,则曲线在铰链后与轴相交,因此不一定是弯曲线的截距。x<θθ<0yαy
  • β相关的直线的斜率yx
  • γ是铰链后斜率的变化

此外,铰链可用于模拟之间的函数关系如何变化形式,如在此模型中关系变为四边形yx

yi=α0+βxi+γmax(xiθ,0)2+εi,