489. BirdCLEF 2022 | birdclef-2022
首先,感谢 Kaggle 团队、@stefankahl 以及所有参赛者。
正如大家所知,在我们的最终融合模型中,除了 BirdNet 之外,还使用了我、@ivanpan、@realsleim 和 @selimsef 提供的其他模型。
在这篇文章中,我将介绍我的模型和方法。
我使用了 SED(声音事件检测)架构,该架构由 @tattaka 提出并使用 - 帖子链接。
作为主干网络,我使用了:
我将第一个步幅从 (2,2) 改为 (1,1),以便获得更大(在长度和频率数量方面)的 CNN 编码器输出(我从 @ilu000 的 SETI 方法学到了这个技巧)。
我在 15 秒的音频块上训练模型,并使用了次要标签。
我使用了以下数据增强方法:
在 @selimsef 的建议下,我为数据加载器和损失函数使用了权重(通过 primary_label 计算),以应对数据集不平衡的问题(特别是针对 scored_birds)。
至于损失函数,我在 clipwise logits 上使用了简单的 BCE(二元交叉熵)。
我跟踪 LB 指标和验证损失最好的 3 个检查点,然后平均这 3 个模型的权重(类似于朴素的 SWA 随机权重平均)。
我采用了两阶段训练:
选取 primary_label 或 secondary_labels 中包含 scored_bird 的样本。针对 SED 模型,我尝试了两种推理方案:
long 和 short clipwise 预测使用 AND 规则。short 预测 - 5 秒,long - 15 秒。总体而言,第二种方案对我来说效果更好。
这里我也尝试了两种方案: