返回列表

4th place solution (5th public LB)

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

开始: 2020-11-17 结束: 2021-02-17 环境监测 数据算法赛
第4名方案 (公共LB第5名)

第4名方案 (公共LB第5名)

作者: Kupchanski, Yauhen Babakhin, Pavel Iakubovskii (qubvel)
比赛: RFCx Species Audio Detection

首先,我要感谢我的队友、Rainforest Connection 和 Kaggle 提供了这个有趣且充满挑战的比赛!

本次比赛的主要问题显然是标签质量。真阳性(TP)和假阳性(FP)音频包含大量未标记区域,这给模型增加了太多噪声。因此,直到比赛结束,我们都未能建立可靠的本地验证策略,主要依赖公共 LB 分数。

此外,TP 音频中的标记区域是平衡的,即每个类别具有相同数量的标签。然而,我们注意到测试预测中主要包含第3类作为最高概率。随着第3类比例的增加,LB 分数往往更好。其他某些类别也存在类似情况(例如,概率第二高的大多是第18类)。这让我们想到,测试文件的类别分布可能与 TP 数据完全不同。因此,我们对第3类和第18类应用了额外的乘数来人为增加它们的概率(我们称之为类别平衡)。

我们的最终方案包含3个阶段。

第1阶段

  • 数据:仅使用26个类别的 TP 标签(针对每个 song_type)。
  • 模型:SED 分类器(EfficientNet-B1 和 EfficientNet-B3)。
  • 裁剪策略:在 TP 区域周围进行随机裁剪。
  • 损失函数:BCE。
  • 数据增强:频谱图增强(SpecAugment, Noise)和 CutMix:将 TP 区域剪切并粘贴到其他 TP 和 FP 音频中的随机时间区域。
  • 公共 LB 分数:0.909 -> 0.940(平衡后)。
  • 私有 LB 分数:0.915 -> 0.938。

第2阶段

利用第1阶段的模型,我们为 TP(OOF)、FP 和测试数据生成了一组伪标签。伪标签是使用 SED 逐帧输出生成的。此时,与初始 TP 数据相比,音频文件拥有更多的标记区域。在这个阶段,模型仅基于伪标签进行训练。我们采用了两种方法:

SED 分类
  • 数据:TP 伪标签 + 每折从 FP 伪标签中随机抽取的 2000 个样本。对伪标签使用软标签(0.9)。
  • 模型:SED 分类器(EfficientNet-B0, EfficientNet-B1, MobileNetV2, DenseNet121)。
  • 裁剪策略:伪标签区域周围的随机 5 秒裁剪。
  • 损失函数:修改后的 LSEP 损失。
  • 数据增强:原始音频增强,例如:GaussianNoiseSNR, PinkNoiseSNR, PitchShift, TimeShift, VolumeControl。
  • TTA:推理过程中使用了 6 种不同的裁剪尺寸:2, 5, 10, 20, 30 和 60 秒。
  • 最佳单模型(5折)公共 LB 分数:0.957(平衡后)。
  • 私有 LB 分数:0.963。
常规分类
  • 数据:TP + FP 伪标签。在测试伪标签上预训练模型。
  • 模型:常规分类器(EfficientNet-B1, ResNet34, SE-ResNeXt50)。
  • 裁剪策略:伪标签区域周围的随机裁剪。
  • 损失函数:BCE。
  • 数据增强:频谱图增强(SpecAugment, Noise)和 CutMix。
  • 最佳单模型(5折)公共 LB 分数:0.952(平衡后)。
  • 私有 LB 分数:0.959。

第3阶段

综合第2阶段的集成模型,公共 LB 分数达到了 0.965(私有 LB:0.969)。为了达到我们最好的 0.969 公共 LB 分数(私有 LB:0.971),我们对第3、11和18类应用了单类语义分割模型(其他类别在公共 LB 上没有带来分数提升)。

分割修正按以下方式进行:
class_score = class_score * (1 + 0.1 * num_instances) if num_instances > 0 else class_score * 0.9,其中 num_instances 是语义分割模型为每个录音预测的实例数量。

无效尝试

  1. PANN 预训练权重(或其他音频预训练模型)- ImageNet 权重效果最好。
  2. 使用“重型”编码器。
  3. 带有软惩罚的 Focal Loss(但我们看到它对其他参赛者有效)。
  4. 多类分割。
  5. 使用 1D 卷积的原始音频分类。
同比赛其他方案