返回列表

6th place solution (human-in-the-loop)

489. BirdCLEF 2022 | birdclef-2022

开始: 2022-02-15 结束: 2022-05-24 基因组学与生物信息 数据算法赛
第6名方案 (人机回环)

第6名方案 (人机回环)

作者: shinmura0 | 比赛: BirdCLEF 2022 | 排名: 6/867

首先,我要感谢比赛主办方和Kaggle团队组织了如此有趣的比赛。也要感谢所有的Kagglers。

概述

也许我的SED模型和你的模型是一样的。
清洗数据后处理是我方案中的重点。

清洗数据 (重要)

在BirdClef2021比赛中,我制作了标注数据,效果很好。但是手工标注非常耗时。
因此,在本次比赛中,我没有采用手工标注,而是使用了人机回环的方法:

  • 首先,使用主要标签 (primary label) 训练SED模型
  • 其次,在训练数据中提取高置信度的SED预测结果
  • 我听取这些预测结果并判断正确与否
  • 人工验证(我回答是或否)

通过这种“人机回环”方式,我制作了2000条清洗数据。这些数据仅包含计分鸟类。

训练数据

我使用了3种类型的数据。

  • HIL_data (=人机回环数据)
  • other_data (不计分鸟类数据,约130种)
    • 初始3秒音频
    • 标签为 primary_label
  • psuedo_data (计分鸟类,且不包含HIL音频)
    • 初始3秒音频
    • 伪标签 = 0.25*primary_label + 0.25*第一代模型 + 0.5*第二代模型

训练数据的比例如下,这是最佳比例:

HIL_data : other_data : psuedo_data = 1 : 4 : 1

SED 模型

  • 主干网络: eca_nfnet_l0, dm_nfnet_f0
  • 仅使用 "clipwise_output" (训练和推理)
  • 基础增强
    • 时间平移
    • 添加粉红噪声和棕色噪声
    • 混合其他音频数据集 (ESC-50: 青蛙、雨、飞机、劈啪作响的火)
  • SpecAugment++ (混合 Mel-spec 使用 ESC-50)
  • 标签平滑 (alpha=0.1)
  • 优化器: Adam
    • lr=0.0001
    • CosineAnealing (T=10)
  • Epoch: 30 (在 Colaboratory 上约需 14 小时)
  • Loss: BCEWithLogitsLoss
  • 输入 (训练 & 推理): 5秒
  • STFT 分辨率: 250x254
    • window_size: 1024
    • hop_size: 630
    • mel_bins: 250
    • fmin: 50
    • fmax: 14000