【问题标题】:Best loss function for multi-class classification when the dataset is imbalance?数据集不平衡时多类分类的最佳损失函数?
【发布时间】:2019-02-09 04:10:01
【问题描述】:

我目前正在使用交叉熵损失函数,但是对于不平衡数据集,性能不是很好。

还有更好的丢失功能吗?

【问题讨论】:

  • 我认为这个问题非常相关,但应该在 StackExchange Stats 中。

标签: tensorflow machine-learning deep-learning computer-vision pytorch


【解决方案1】:

这是一个非常广泛的主题,但恕我直言,您应该尝试focal loss:它是由Tsung-Yi Lin, Priya Goyal, Ross Girshick, Kaiming He and Piotr Dollar 引入的,用于处理对象检测中的不平衡预测。自引入以来,它也被用于分割的上下文中。
焦点损失的想法是为了正确(或几乎正确)预测同时减少损失和梯度,同时强调误差的梯度。

如图所示:

蓝色曲线是常规交叉熵损失:一方面,即使对于分类良好的示例,它也具有不可忽略的损失和梯度,另一方面,对于错误分类的示例,它具有较弱的梯度。
相比之下,focal loss(所有其他曲线)对于分类良好的示例具有较小的损失和较弱的梯度,而对于错误分类的示例具有较强的梯度。

【讨论】:

  • 这似乎是解决二进制类问题的好方法。然而,问题是关于一个多类问题。对于多类问题是否有任何相同想法的扩展?
  • @Tides 虽然论文指出了 binary 交叉熵上下文中的损失,但将其扩展到多标签交叉熵是非常简单的。
猜你喜欢
  • 1970-01-01
  • 2015-01-28
  • 2016-05-11
  • 2021-09-27
  • 1970-01-01
  • 1970-01-01
  • 2017-11-01
  • 2019-11-05
  • 2020-10-23
相关资源
最近更新 更多