399. Cornell Birdcall Identification | birdsong-recognition
非常高兴能以第3名的成绩结束我的 Kaggle 特级大师 之旅,祝贺我的队友以及所有坚持到最后的人!
我们的解决方案主要有三个方面:数据增强、建模和后处理。
数据增强是减少训练集和测试集之间差异的关键。我们首先随机裁剪 5 秒的音频,然后添加激进噪声增强:
信噪比高达 0.5。
我们从这里提供的背景数据集中随机选择样本的 5 秒作为背景噪声。该数据集包含来自比赛数据的示例测试音频中没有鸟叫声的样本,以及从 Freesound 鸟类检测挑战赛中手动挑选的一些样本。
Mixup 创建了一个批次 x1 和其打乱版本 x2 的组合:x = a * x1 + (1 - a) * x2,其中 a 是通过 Beta 分布采样的。
然后,我们不使用 Mixup 的经典目标函数,而是将与 x 关联的目标定义为原始目标的并集。
这迫使模型正确预测两个标签。
Mixup 以 0.5 的概率应用,我使用 5 作为 Beta 分布的参数,这迫使 a 接近 0.5。
除了随机选择裁剪区域外,还使用了基于包外置信度的裁剪方法。时间 t 处的置信度是在从 t 开始的 5 秒裁剪上预测的真实类别的概率。
我们在最终融合中使用了 4 个模型:
事实证明,使用更多数据进行训练是关键,而且我们的两个 ResNeSt 模型都在 Public LB 上过拟合了。感谢分享数据集的人们!
模型训练了 40 个 epoch(如果使用外部数据则为 30 个 epoch),使用线性调度器,预热比例为 0.05。对于小型模型,学习率为 0.001,批次大小为 64;对于 resnext101,这两个参数都除以了 2,以便在单张 2080Ti 显卡上运行。
我们没有可靠的验证策略,使用了分层 5 折交叉验证,预测是在验证音频的前 5 秒进行的。
我们使用 0.5 作为阈值 T。
T 的预测值置零T 的 n 个最可能的鸟类
n = 3n 根据音频长度选择。所有内容均已完全公开: