返回列表

5th place solution

553. BirdCLEF 2023 | birdclef-2023

开始: 2023-03-07 结束: 2023-05-24 环境监测 数据算法赛

第五名解决方案

首先,感谢康奈尔鸟类学实验室和Kaggle团队举办这场比赛。这是一个学习新知识的好机会。

在本文中,我将总结我的解决方案。

数据集

  • 2023/2022/2021比赛数据
  • 额外的Xeno-Canto数据(包含2023比赛物种作为前景和背景音)
  • ESC50噪声数据集
  • 2021比赛数据中的无呼叫噪声

模型

我使用了SED架构(与@tattaka在2021年第4名解决方案中使用的相同),采用以下骨干网络:

  • tf_efficientnet_b1_ns
  • tf_efficientnet_b2_ns
  • tf_efficientnet_b3_ns
  • tf_efficientnetv2_s_in21k

训练过程

我分两个步骤训练所有模型:

  • 使用2022/2021数据进行预训练。此阶段仅使用白噪声(p=0.5)
  • 在2023数据上进行微调,采用以下增强方法:
    • 波形处理:Mixup(p=1)和多种噪声混合(白噪声、粉红噪声、棕噪声、噪声注入、ESC50噪声、无呼叫噪声)(p=0.5)
    • 语谱图处理:两个时间掩码(各p=0.5)和一个频率掩码(p=0.5)

训练细节:

  • 所有模型均使用5秒音频片段训练
  • 4折分层交叉验证
  • 同时使用主要标签和次要标签
  • 带样本权重(基于评分)的BCEWithLogitsLoss损失函数
  • AdamW优化器:学习率5e-4,权重衰减1e-3(大多数模型)
  • 余弦退火学习率调度器(默认参数)
  • 训练40个epoch - 最佳分数通常出现在最后一个epoch。因此除了4折验证外,我还使用全部数据训练了第5个模型。该全量训练版本比单折模型在公开和私有排行榜上稳定高出0.002-0.003分
  • 部分模型通过软/硬伪标签进行了微调

我的最佳模型结合了比赛数据的真实标签和Xeno-Canto数据的硬伪标签进行训练,在私有/公开排行榜上分别达到0.72714/0.81836分,提交耗时为10分钟。

推理过程

将15个模型(各折)的概率结果进行平均(其中6个模型共享骨干网络的前三层,因此模型数量并不完全均衡)。

我还使用了ONNX Runtime和ThreadPoolExecutor来加速推理,感谢@leonshangguan分享的优化笔记

同比赛其他方案