返回列表

17th place solution

419. Rainforest Connection Species Audio Detection | rfcx-species-audio-detection

开始: 2020-11-17 结束: 2021-02-17 环境监测 数据算法赛
第17名方案

第17名方案

作者: Hidehisa Arai (Grandmaster) 及团队成员 Y.Nakama, kaerururu, Taku Hiraiwa
比赛: RFCx Species Audio Detection

恭喜所有的获胜者和金牌得主,我想那些突破 0.950 壁垒的队伍找到了这次比赛的精髓,而我们没能做到。

首先,感谢主办方举办了一场非常有趣的比赛。部分标记分类是一个具有挑战性的任务,这使得这场比赛比单纯的生物声学音频标记比赛更有趣。

我们的解决方案是图像分类模型和 SED(声音事件检测)模型的排名平均。Y.Nakamakaerururu 和我在 SED 模型上投入了大量精力,但在与 Taku Hiraiwa 合并之前,我们一直无法突破 0.90 的分数。他的模型基于图像分类,类似于 @cpmpml 的模型。我们发现效果非常好,因此在剩下的日子里我们专注于改进图像分类模型。

图像分类模型

只使用训练数据中被标注的部分是 Taku Hiraiwa 的想法。为此,我们根据 train_tp.csvtrain_fp.csv 中的 t_mint_maxf_minf_max 信息,从训练数据的 log-melspectrogram(对数梅尔频谱图)中裁剪出图像块,并将裁剪出的块调整为固定形状(例如 320 x 320 左右)。裁剪是在训练过程中即时进行的,因此我们裁剪的部分在时间轴上是随机的。
利用这些图像块,我们训练了 EfficientNet 模型,并使用阈值 0.5 监控 F1 分数。
以下是图像分类模型的其他细节:

  • 图像尺寸:不同模型间从 (244, 244) 到 (456, 456) 不等
  • 主干网络:EfficientNetB0 - B5(使用 timm 库,并使用 tf_efficientnet_b<0-5>_ns 权重)。
  • 数据增强:在原始波形上应用 audiomentations 的 GaussianNoise(高斯噪声)、Gain(增益)、PitchShift(变调)。此外,HorizontalFlip(水平翻转)对 LB(Public Leaderboard)分数也有轻微的正面影响,所以我们使用了(但不知道为什么有效)。
  • 优化器:AdamW,配合线性预热学习率调度器
  • 损失函数:BCEFocalLoss

最后,我们训练了一个堆叠模型,该模型接收以下模型的输出,这些模型在 Public LB 上达到了 0.942:

  1. tf_efficientnet_b0_ns,图像尺寸 244
  2. tf_efficientnet_b0_ns,图像尺寸 320
  3. tf_efficientnet_b0_ns,图像尺寸 456
  4. tf_efficientnet_b1_ns,图像尺寸 456
  5. tf_efficientnet_b2_ns,图像尺寸 456
  6. tf_efficientnet_b3_ns,图像尺寸 456
  7. tf_efficientnet_b4_ns,图像尺寸 456
  8. tf_efficientnet_b5_ns,图像尺寸 456

SED 模型

我们所有的 SED 模型都使用了 PANNs 仓库 中介绍的头部架构。CNN 编码器采用的是 EfficientNet 或 ResNeSt,并且它们是在弱/强监督下训练的。我们在这方面尝试了很多东西,但没能找到持续有效的因素——这意味着 LB 分数相对于 CV 分数变化非常随机。
我们最好的 SED 模型是以下 11 个模型的排名平均(Public: 0.901, Private: 0.911)——每个模型略有不同,所以我们简要描述一下差异。

2 个 kaerururu 的模型 (Public: 0.882, 0.873)

  • 基于公开的 SED starter (EffnB0) notebook (