【发布时间】:2021-10-04 04:18:16
【问题描述】:
我正在研究一个非常稀疏的多标签分类问题,需要对 1000 个标签进行预测,平均而言,很少有标签会处于活动状态。每张图片大约有 5 个正标签。
我尝试使用 BCEWithLogitsLoss,但无论使用不同的权重,结果都不是很好,但是即使将 pos 权重设置为 10、100、300、1000、3000,结果也很糟糕,最高 f1 分数需要高阈值,接近 0.95,但在训练 sigmoid 激活后阈值是 0.5。我能够达到的最高 f1 约为 0.3,前 5 名召回率约为 0.22。
我也尝试使用 pos_weight = (负例数)/(正例数)。
但是这些似乎都不起作用。
问题在于,当仍有改进空间时,损失会与这些参数收敛。
我想知道这种不平衡数据是否有更强大的损失函数。我也在研究 Focal Loss、NLL loss、Label Smoothing,但我不知道它们是否能很好地解决我的问题。任何帮助将不胜感激!
【问题讨论】:
标签: python tensorflow pytorch loss-function multilabel-classification