489. BirdCLEF 2022 | birdclef-2022
我的方案主要包含以下几个特点:
StratifiedGroupKFold(按 author 分组)。StratifiedGroupKFold 分为3折。为了观察域偏移(domain shift)的影响,我确保同一作者不会同时出现在训练集和评估集中 [1]。
模型由 PANNs 和 PaSSTs 的集成组成。
PANNs 的代码改编自2020年第6名的方案 [2]。主要改动如下:
源代码改编自官方实现 [4]。主要改动如下:
损失函数是以伪标签为标签计算的损失与以原始正确标签计算的损失的平均值。
loss(pred, y, y_pseudo_label) = 0.5 * (loss(pred, y) + loss(pred, y_pseudo_label))
总共 8 个模型(PANNs x4 + PaSST x4)的预测结果通过 GeM pooling (p=3) 进行聚合。
参考2021年第二名的方案 [5],我固定了预测值的分位数并设定阈值 [6]。
我的不同之处在于,我将计分物种分为以下四组,并为每组分别设定阈值:
最终提交模型各组的阈值如下。这些是针对 Public LB 优化后的结果。
top5, mid_top5, mid_low5, low6 = [0.100, 0.550, 0.350, 0.334]
以下是包括最终提交在内的顶级提交的评估结果。
更新:后期提交(sub10)的结果显示,不包含 PaSST 的集成效果略好于包含 PaSST 的集成(0.7626 -> 0.7645)。因此,在我的实验中,PaSST 并未产生正面效果。