399. Cornell Birdcall Identification | birdsong-recognition
大家好,Kagglers!
这是一场精彩的比赛!我很高兴分享帮助我们获得LB第4名的训练技巧。
我们使用了重采样至32,000采样率并经过归一化处理的音频。
和大多数参赛者一样,我们使用了频谱特征——Logmels(对数梅尔频谱)。
对于我的大多数模型,我们添加了外部的xeno-canto数据集:
非常感谢 @rohanrao。
我们还使用了RMS修剪(RMS trimming),以便获取包含鸟叫声的片段。更多细节可以在我们的Notebook中找到。
由于我们使用的是预训练的CNN,我们需要为其提供3通道输入(或者替换第一层卷积层)。
有效的尝试:
secondary_labels(次要标签)。效果不佳的尝试:
我们所有的模型都是在交叉验证模式下训练的。所以我们有一个折叠用于验证。我们还使用了 example_audio 作为另一个验证集。总的来说,我们跟踪了以下指标:
map_scoref1_test_mediansecondary_labels)secondary_labels)我们根据MaP分数进行早停和学习率调度,因为它是所有指标中最后收敛的一个。
然后我们根据 f1_test_median 选取了3个最好的检查点,并对每个折叠的权重矩阵进行平均 —— 类似于SWA(随机权重平均)。然后融合5个模型(5个折叠)并在测试集(example audio)上评估。在LB达到0.607分之前,这个分数与LB相关性很好。在这个点之后,测试集几乎就没用了 :)
我们使用了不同的EfficientNets(B3, B4, B5),并在noisy student上进行了预训练。
我们尝试了一些分类器头部。但“2层 Dropout->Linear->Relu”效果最好。此外,Multi-Sample Dropout 略微提升了性能并增加了稳定性。
我们尝试了SeResnexts,但对我们来说完全不起作用。我们也尝试了 @ddanevskyi 在这里提出的模型,但效果更差。
我们使用了 Adam 优化器、ReduceLRO