【问题标题】:Using softmax for multilabel classification (as per Facebook paper)使用 softmax 进行多标签分类(根据 Facebook 论文)
【发布时间】:2022-04-22 08:35:32
【问题描述】:

我在一些 Facebook 研究人员那里遇到了这个paper,他们发现在训练期间使用 softmax 和 CE 损失函数可以改善 sigmoid + BCE 的结果。他们通过更改 one-hot 标签向量来做到这一点,使得每个“1”除以给定图像的标签数量(例如,从 [0, 1, 1, 0] 到 [0, 0.5, 0.5, 0] )。

但是,他们没有提到如何在推理阶段使用它,因为选择正确标签所需的阈值尚不清楚。

有谁知道这是怎么回事?

【问题讨论】:

  • 不是编程问题,因此这里可以说是题外话;请参阅machine-learning tag info 中的介绍和注意

标签: machine-learning conv-neural-network loss-function multilabel-classification


【解决方案1】:

我也偶然发现了这篇论文,并问了自己同样的问题。以下是我的做法。

如果有一个基本实况标签,理想的预测向量将有一个 1,所有其他预测为 0。如果有 2 个标签,理想预测将有两个 0.5,所有其他为 0。排序是有意义的通过降低置信度来计算预测值,并在我们增加最终标签数量的候选者数量时查看累积概率。

我们需要区分哪个选项是(排序的)基本事实:

1, 0, 0, 0, 0, ...    
0.5, 0.5, 0, 0, 0, ...    
1/3, 1/3, 1/3, 0, 0, ...    
1/4, 1/4, 1/4, 1/4, 0, ...    
1/5, 1/5, 1/5, 1/5, 1/5, 0, ...

相同的标签位置可能具有完全不同的真实值:单独时为 1.0,与另一个标签位置一起时为 0.5,其中 10 个时为 0.1,依此类推。一个固定的阈值无法判断哪种情况是正确的。

相反,我们可以检查预测值的降序和相应的累积和。一旦该总和超过某个数字(例如 0.95),这就是我们预测的标签数量。调整累积和的确切阈值将作为影响精度和召回率的一种方式。

【讨论】:

    猜你喜欢
    • 2020-09-02
    • 2018-10-02
    • 2019-10-13
    • 2018-01-29
    • 2019-09-24
    • 2016-05-09
    • 2017-06-03
    • 2016-01-18
    相关资源
    最近更新 更多