使用softmax进行多标签分类(根据Facebook论文)



我看到了一些脸书研究人员的这篇论文,他们发现在训练中使用softmax和CE损失函数可以比sigmoid+BCE提高成绩。他们通过改变一个热标签矢量来实现这一点,使得每个"1"除以给定图像的标签数量(例如从[0,1,1,0]到[0,0.5,0.5,0](。

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

有人知道这是怎么回事吗?

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

如果存在一个地面实况标签,则理想预测向量将具有单个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(,这就是我们预测的标签数量。调整累积总和的确切阈值数量将成为影响准确性和召回率的一种方式。

最新更新