第 12 名解决方案 - BirdCLEF 2025
第 12 名解决方案
我想向 BirdCLEF 2025 竞赛的组织者表示诚挚的感谢,同时也感谢所有慷慨分享过往比赛出色解决方案的 competitors。
我也深深感谢我的队友 @zone0906 为我们共同付出的所有努力。参加这次竞赛是一次不可思议的学习经历。
概述
我们的解决方案由三种不同的 pipeline 类型组成的集成,以及总共 12 个转换为 OpenVINO 的 SED 模型。
训练策略
训练是在所有 train_audio(监督)数据和 train_soundscapes(伪标签)数据上进行的,具体 pipeline 如下所述。
通用设置
- 受 BirdCLEF 2023 第 3 名解决方案 的启发,我们训练了沿频率轴应用注意力的 SED 模型。
- 未进行本地验证;所有来自 BirdCLEF+ 2025 的可用数据均用于训练。
- 检查点平均 (Checkpoint Soups)
- 我们对第 30-50 个 epoch 的权重进行了平均用于提交,避免了早停中的人为偏差,并缓解了稀有类上的 macro-AUC 不稳定性。
- EMA (衰减 = 0.999)
- 加权批采样器 (Weighted Batch Sampler)
- 数据增强
- 对于原始波形 (Raw Waveform):
- Gain, GainTransition, AddGaussianNoise, AddGaussianSNR, 时间移位 (Time Shifting)
- 带有最大标签的 MixUp
- 应用 MixUp 时,结果标签设置为两个原始标签的最大值
- 对于梅尔频谱图 (Mel Spectrogram):
- 梅尔频谱图参数
- sample_rate = 32,000
- window_size = 2048
- hop_length = 512
- fmin = 20
- fmax = 16,000
- mel_bins = 512
- 损失函数:二元交叉熵 (BCE)
- 随机 5 秒裁剪,避开人声片段(由 此代码 检测到的片段)
- 将次要标签与主要标签同等对待。
第一阶段(监督学习)
- 我们使用下面列出的集成来为 train_soundscapes 生成伪标签(原始概率)。
- 该集成在公共排行榜上取得了 0.889 的成绩,在私有排行榜上取得了 0.902 的成绩。
- 模型:
- mixnet_s
- regnety_008
- mnasnet_small.lamb_in1k
- resnet18.a1_in1k
- tinynet_a.in1k
- seresnext26t_32x4d
- resnet34d
- resnet26d
第二阶段(迭代伪标签)
- 在这个阶段,我们使用第一阶段生成的伪标签训练模型。
- 由于公共排行榜的改进因模型而异,我们训练了两个独立的 pipeline。
第二阶段‑A
- 对于每个 chunk,我们将前 10 个类的原始概率乘以二,并将所有其他类的概率 assigned 为零。
- 有 40% 的概率,将每个 batch 与 train_soundscapes 音频和伪标签混合。
第二阶段‑B
- 对于伪标签数据,使用所有类的原始概率(知识蒸馏)。
- Batch size 设置为 64,每个 batch 包含 16 个监督 train_audio 样本和 48 个伪标签 train_soundscapes。
对于第 2 次迭代,伪标签由以下集成(3 个 seeds)生成:
- 在第二阶段‑A 中训练的模型: mixnet_s, regnety_008, resnet34d, seresnext26t_32x4d, tinynet_a.in1k, convnextv2_nano.fcmae_ft_in22k_in1k_384
- 在第二阶段‑B 中训练的模型: resnet18.a1_in1k
然而,由于公共排行榜和私有排行榜的分数在第 2 次迭代中都下降了,我们没有继续下去。
尽管如此,为了增加集成的多样性,我们将这些模型包含在最终提交中。
少数类子集 (Minority Class Subsetting)
- 受 BirdCLEF 2024 第 7 名解决方案 的启发,我们仅针对训练集中样本数为 100 或更少的类训练模型。
训练所有参数没有带来改进;相反,我们冻结了在所有类上预训练的骨干网络,仅在这些少数类上训练 SED 头部——这被证明是成功的。
- 在提交时,我们将这个少数类头部附加到全类模型上,并仅将其输出用于稀有类。
- 尽管共享骨干网络,推理时间几乎没有增加,我们在公共和私有排行榜上都取得了更高的分数。
后处理
我们应用了跨相邻 chunk 的加权移动平均和文件级平均概率,方法与 (BirdCLEF 2024 第 6 名后处理) 相同。这使得公共和私有排行榜分数都提高了约 0.07–0.08。
最终提交模型
最终提交是以下模型的集成。(公共排行榜:0.904, 私有排行榜:0.918)
- 模型集 1:第二阶段‑A (1 次迭代) + 少数类头部
- mixnet_s (3 个 seeds)
- tinynet_a.in1k (3 个 seeds)
- regnety_008 (3 个 seeds)
- 模型集 2:第二阶段‑A (2 次迭代) + 少数类头部
- mixnet_s (1 个 seed)
- tinynet_a.in1k (1 个 seed)
- regnety_008 (1 个 seed)
- 模型集 3:第二阶段‑B (2 次迭代)
- resnet18.a1_in1k (1 个 seed)
无效尝试
- 在过去比赛数据上预训练
- Aves(未超过公共排行榜 0.810,因此未使用)
- 10 秒训练片段
- 后处理以预测 test_soundscapes 录音 duration
- 通过平均偏移 2.5 秒的推理进行 TTA(与后处理结合后,公共和私有排行榜均下降)