第5名解决方案
第5名解决方案
作者:yokuyama (Grandmaster)
比赛:BirdCLEF 2022
非常感谢 Kaggle 和康奈尔鸟类学实验室举办了如此有趣的比赛。
我的解决方案是对 BirdCLEF 2021 第2名解决方案的重新实现。
特别感谢新的基线团队发布了令人惊叹的解决方案。同时也感谢 @julian3833 分享了 很棒的基线!
模型
我的最终提交是一个由9个不同 seed/fold/backbone 的模型组成的集成模型,每个模型都使用了去年的第2名解决方案方法。
主干网络如下:
- 4x
eca_nfnet_l0
- 2x
tf_efficientnetv2_s_in21k
- 2x
resnet34
- 1x
convnext_tiny
过采样
为了增加少数类(N<20)的文件数量,我手动分割了训练文件。
例如,maupar 只出现在一个文件中,但该文件包含许多不同类型的歌声和叫声。
我使用波形编辑器(Audacity)将其切分为 10-30 秒的片段,并从单个文件中创建了多个训练数据。
切分后的音频文件在波形编辑器中通过应用降噪/混响/增益等效果进行了进一步增强。最终,我为每个目标少数类创建了 5-20 个额外的样本文件。
训练
- Melspec (梅尔频谱)
- window_size=1024, hop_size=320, fmin=50, fmax=14000, power=2, mel_bins=64, top_db=80 (nfnet, effnet, convnext)
- window_size=2048, hop_size=512, fmin=16, fmax=16386, power=2, mel_bins=256, top_db=80 (resnet)
- 数据增强 (波形)
- 背景噪音 (2020 nocall, 2021 nocall, freefield1010)
- GaussianNoise (高斯噪声)
- PinkNoise (粉红噪声)
- NoiseInjection (噪声注入)
- RandomVolume (随机音量)
- TimeShift (时间平移)
- 数据增强 (图像)
- SpecAug
- CutOut
- Lowpass (低通滤波)
- TranslateY (频率维度上的平移,模拟音高偏移)
- 优化器
- AdamW, LR=1e-3, weight decay=1e-5, 带预热的余弦退火
- 损失函数
- 25-30 个 epochs
- 训练目标是主要标签和次要标签的并集。
- 所有主干网络都在 BirdCLEF2021 数据上进行了预训练。
- 验证使用了
scored_birds 的 micro-f1@0.1。虽然有点奇怪,但该分数与 Public/Private LB 的相关性还不错。
后处理