在分类中选择不同的损失函数来近似0-1损失有什么影响

机器算法验证 机器学习 分类 优化 损失函数
2022-01-26 05:48:08

我们知道有些目标函数更容易优化,有些则很难。还有很多我们想要使用但很难使用的损失函数,例如 0-1 损失函数。所以我们找到了一些代理损失函数来完成这项工作。例如,我们使用铰链损失或逻辑损失来“近似”0-1 损失。

以下情节来自Chris Bishop 的 PRML 书铰链损失用蓝色绘制,对数损失用红色绘制,平方损失用绿色绘制,0/1 误差用黑色绘制。

在此处输入图像描述

我理解我们有这样的设计(对于铰链和逻辑损失)的原因是我们希望目标函数是凸的。

通过查看铰链损失和逻辑损失,它更多地惩罚严重错误分类的实例,有趣的是,如果它们被弱分类,它也会惩罚正确分类的实例这是一个非常奇怪的设计。

我的问题是使用不同的“代理损失函数”(例如铰链损失和逻辑损失)我们需要支付的价格是多少?

3个回答

我的一些想法,虽然可能不正确。

我理解我们有这样的设计(对于铰链和逻辑损失)的原因是我们希望目标函数是凸的。

凸性肯定是一个很好的性质,但我认为最重要的原因是我们希望目标函数具有非零导数,以便我们可以利用导数来解决它。目标函数可以是非凸的,在这种情况下,我们通常只停留在一些局部最优值或鞍点。

有趣的是,如果它们被弱分类,它也会惩罚正确分类的实例。这是一个非常奇怪的设计。

我认为这样的设计建议模型不仅要做出正确的预测,还要对预测充满信心。如果我们不希望正确分类的实例受到惩罚,例如,我们可以将铰链损失(蓝色)向左移动 1,这样它们就不再受到任何损失。但我相信这在实践中往往会导致更糟糕的结果。

通过使用不同的“代理损失函数”,例如铰链损失和逻辑损失,我们需要付出什么代价?

IMO 通过选择不同的损失函数,我们为模型带来了不同的假设。例如,逻辑回归损失(红色)假设为伯努利分布,MSE 损失(绿色)假设为高斯噪声。


在 PRML 中的最小二乘与逻辑回归示例之后,我添加了铰链损失进行比较。 在此处输入图像描述

如图所示,铰链损失和逻辑回归/交叉熵/对数似然/softplus的结果非常接近,因为它们的目标函数很接近(下图),而MSE一般对异常值更敏感。铰链损失并不总是有唯一的解决方案,因为它不是严格凸的。

在此处输入图像描述

然而,铰链损失的一个重要特性是,远离决策边界的数据点对损失没有任何贡献,解决方案将与移除这些点相同。

其余点在 SVM 的上下文中称为支持向量。而 SVM 使用正则项来确保最大边距属性和唯一解决方案。

发布迟到的回复,因为有一个非常简单的答案尚未提及。

通过使用不同的“代理损失函数”,例如铰链损失和逻辑损失,我们需要付出什么代价?

当您将非凸0-1 损失函数替换为凸代理(例如铰链损失)时,您实际上正在解决与您打算解决的问题不同的问题(即最小化分类错误的数量)。因此,您获得了计算的可处理性(问题变得凸,这意味着您可以使用凸优化工具有效地解决它),但在一般情况下,实际上没有办法将最小化“代理”损失的分类器的错误与最小化 0-1 损失的分类器的错误如果你真正关心的是尽量减少错误分类的数量,我认为这确实是一个很大的代价。

我应该提到,这个陈述是最坏的情况,因为它适用于任何分布D. 对于一些“不错”的发行版,这条规则也有例外。关键示例是相对于决策边界具有较大边际的数据分布 - 参见Shalev-Shwartz、Shai 和 Shai Ben-David 中的定理 15.4。理解机器学习:从理论到算法。剑桥大学出版社,2014 年。

理想情况下,您的损失函数应该反映企业实际发生的损失。例如,如果您正在对损坏的货物进行分类,那么错误分类的损失可能是这样的:

  • 标记未损坏的货物:潜在销售利润损失
  • 未标记已损坏的损坏商品:退货处理成本