返回列表

33rd place solution - SED model

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

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

第33名解决方案 - SED模型

作者:yuki | 比赛排名:第33名

恭喜所有的获胜者。
我要感谢主办方举办了一场有趣的比赛。

我们团队的解决方案是七个模型的集成。
该集成包括三个SED模型和四个非SED模型。
我将讨论其中得分最高的单模型。(Public: 0.919 / Private: 0.927)

模型

我的模型基于 @shinmura0 讨论中描述的SED模型。
https://www.kaggle.com/c/rfcx-species-audio-detection/discussion/211007

  • 特征提取器:EfficientNet-B3
  • 损失函数:BCELoss
  • 优化器:SGD
  • 学习率调度器:CosineAnnealingLR
  • 学习率:0.15
  • 数据增强:降噪 (denoise)
  • 交叉验证:4折多标签分层K折 (4Fold multilabel-stratifiedkfold)

我的模型特点是使用了非常大的学习率,当我把学习率从0.15降低时,准确率反而下降了。
这与我的经验相反。

我以为数据扩展会非常有效,尝试了各种数据扩展方法,但大多数都没有效果。

唯一有效的数据增强是 @takamichitoda 在讨论中介绍的降噪方法。
在讨论中,他对所有数据进行了降噪,但我发现以 p=0.1 的概率进行扩展时效果更好。
https://www.kaggle.com/c/rfcx-species-audio-detection/discussion/214019

训练数据

训练数据是从60/9秒的mel频谱图中随机裁剪的。
我尝试了从60/2秒到60/秒的裁剪尺寸,发现60/9和60/10的结果较好。
大多数讨论使用60/10秒的裁剪,但我认为较小的尺寸会降低包含缺失标签的概率。

验证/测试数据

对于验证和测试数据,我使用了与训练数据相同的60/9秒时长。

我通过以一半的步长滑动60/9秒的窗口,总共创建了17张图像。
对这17张图像分别进行预测,并将每个标签出现概率的最大值作为预测值。

滑动窗口示意图

验证非常耗时,因为我们需要对17张图像进行推理才能验证1个片段。

无效的尝试

伪标签(训练/测试,软标签/硬标签)
针对class3的预测模型
-> class3的准确率极低,所以我尝试创建一个专门针对class3的模型,但没有效果。

同比赛其他方案