489. BirdCLEF 2022 | birdclef-2022
首先,感谢 Kaggle 和康奈尔鸟类学实验室组织这次比赛。
我很幸运能与 UEMU 组队,这是一次富有成果的合作,双方都提出了很多想法。我们一直努力到最后,正因为如此,我们成功获得了第3名,祝贺所有的获胜者!
考虑到目前的情况,似乎有必要提一下,我们没有使用 BirdNet 模型。
我们使用的外部数据:
freefield1010, aicrowd2020 和 BirdCLEF 2021 soundscapes 中的 nocall 部分,用于将 2022 年的样本与背景噪声混合以提高鲁棒性。
现在谈谈我们的方法,构建强大且可靠流程的关键点如下:
当我们合并在一起时,我们查看了模型产生的 OOF(袋外)预测,发现带有 Focal Loss 的 SED 模型与带有 BCE Loss 的 CNN 模型相比,表现因训练样本数量的不同而有很大差异。
根据我们的观察,带有 Focal Loss 的 SED 模型倾向于做出更保守的预测,并且由于损失函数的设计,它们不会漏掉小样本类别:
下图中蓝色代表带有 Focal Loss 的 SED 模型,粉色代表带有 BCE Loss 训练的 CNN 模型

同样,对于大样本类别,使用 BCE Loss 训练的模型优于使用 Focal Loss 的模型

因此,我们根据数据数量和上述目标数据分布图的手动检查将鸟类分为两组,并为它们使用不同的模型。
事实证明,将训练样本数 >= 10 的鸟类归入 Group1,将所有其他鸟类归入 Group2 是最佳的。
Group1: 14种鸟 ['jabwar', 'yefcan', 'skylar', 'akiapo', 'apapan', 'barpet', 'elepai', 'iiwi', 'houfin', 'omao', 'warwhe1', 'aniani', 'hawama', 'hawcre'],
对于它们,我们最终使用了使用 BCE Loss 训练的 CNN + SED 模型。
Group2: 7种鸟 ['crehon', 'ercfra', 'hawgoo', 'hawhaw', 'hawpet1', 'maupar', 'puaioh'],
对于这一组,我们选择使用带有 Focal Loss 的 SED 模型。
关于 CNN 模型架构的详细信息,请参考 BirdCLEF 2021 第2名解决方案。
值得注意的是,我们没有使用该解决方案中提到的时间混合。
由于 CNN 模型仅用于对足够大的类别进行推理,这使我们能够建立可靠的验证并仅针对 Group1 鸟类监控指标。对于这些模型,我们使用 BCE Loss 在验证集上选择最佳模型,但是使用了 mix-up 增强的模型在最后一个 epoch 收敛,这一事实使我们能够在最终集成中包含一些在全量数据上训练的模型。