553. BirdCLEF 2023 | birdclef-2023
感谢组织者今年再次举办BirdClef 2023比赛,为我们提供了宝贵的学习体验。
衷心祝贺所有获奖者以及每一位参与学习和体验的选手。
我也想向我才华横溢的队友 @ivanaerlic 和 @nischaydnk 表达感谢。
我们在最终提交中使用了 efficientnet_b0、eca_nfnet_l0 和 convnext_tiny 架构。
训练采用多轮次进行,使用了所有往届比赛的数据集。所有模型都在5秒音频片段上进行训练。
对于 eca_nfnet_l0 和 convnext_tiny:
跳跃大小 320,梅尔频谱数 64,图像尺寸 = 64x501
对于 efficientnet_b0:
跳跃大小 320,梅尔频谱数 64,图像尺寸(双线性插值放大)= 128x1002
训练分为多个轮次:
第一轮:
跳跃大小 512,梅尔频谱数 64,图像尺寸 = 64x313
(双线性插值放大)= 128x636
模型:Eca nfnet l0 (128x636),convnext tiny (128x636)
训练数据:2022 & 2023年
数据增强:HFlip、随机遮挡、粉红噪声、高斯噪声、噪声注入、随机音量
训练类型:竞赛标签
CV:约0.79(较低)
第二轮:
跳跃大小 320,梅尔频谱数 64,图像尺寸 = 64x501
模型:Efficientnet B0 (128x1002 双线性放大),Eca nfnet l0 (64x501),convnext tiny (64x501)
数据增强:HFlip、随机遮挡、粉红噪声、高斯噪声、噪声注入、随机音量
训练数据:2022 & 2023年
训练类型:知识蒸馏
CV:约0.79(略有提升)
第三轮:
跳跃大小 320,梅尔频谱数 64,图像尺寸 = 64x501
模型:Efficientnet B0 (128x1002 双线性放大),Eca nfnet l0 (64x501),convnext tiny (64x501)
训练数据:2021 & 2022 & 2023年
额外方法:AWP、SWA、注意力头
数据增强:HFlip、随机遮挡、像素丢弃
训练类型:竞赛标签
CV:约0.8
第四轮:
跳跃大小 320,梅尔频谱数 64,图像尺寸 = 64x501
模型:Efficientnet B0 (128x1002 双线性放大),Eca nfnet l0 (64x501),convnext tiny (64x501)
训练数据:2023年
数据增强:HFlip、随机遮挡、像素丢弃、粉红噪声、高斯噪声、噪声注入、随机音量
额外方法:SWA、注意力头
训练类型:伪标签
CV:约0.81(轻微泄漏)
我们的交叉验证采用音频片段的前5秒,虽然这种验证方式与公开榜单并不总是一致,但为我们提供了足够的预期参考。
伪标签显著提升了我们的得分。我们使用伪标签创建新的次要标签,并赋予它们0.5的硬概率。
对于convnext模型,我们首先进行微调以提高在存在次要标签目标上的得分,虽然这牺牲了主要标签的得分,但为我们的集成模型增加了多样性。
我们使用OpenVino来提升模型的推理速度。
我们还发现,当加载音频并进行批量推理时,第一批推理尤其缓慢。因此我们改为一次加载8个音频,为所有8个音频创建数据加载器,然后再进行模型前向传播,这使得推理速度进一步提升了20%。
因此我们成功提交了7个模型:2个efficientnet_b0 + 2个eca_nfnet_l0 + 3个convnext_tiny。
我们还注意到,权重平均后的sigmoid比权重平均前的sigmoid更有效。我们曾使用softmax激活函数,在达到0.82(公开榜单)之前表现更好,此后sigmoid开始表现更优。
我们最好的私有榜单提交结果是将我们的模型与BirdNet集成,虽然它在我们公开榜单的前10名提交中排名靠后且方差较大,但我们没有选择它,因为我们有些担心它在私有榜单上会表现不稳定。
参考去年的比赛,我们尝试将置信度因子提高1.5倍,如果某个类别在音频文件中的任何预测超过0.96。
这在许多提交上确实有效,实际上也进入了我们的顶级提交行列,但最终在私有榜单上表现不佳,由于担心过拟合公开榜单的风险,我们没有选择它。
SED模型
Q-变换
超过5秒的训练
使用前后5秒段的滚动平均
我们有超过60次提交遇到超时错误,在比赛的最后第二天,5次提交中有4次遇到超时错误,而在此之前同一笔记本中超时概率仅为20-30%。