483. Happywhale - Whale and Dolphin Identification | happy-whale-and-dolphin
恭喜所有的获奖者。感谢 Kaggle 主办方和所有参与者带来了这场激动人心的比赛。
这是我获得的第一枚单人金牌。
能在众多 Kaggle 特级大师和大师中获得金牌,我感到非常荣幸。
以下是我的第10名解决方案。
我使用了两种类型的数据集,特别感谢 @jpbremer,因为他分享了非常有价值的方法和数据集。
我训练了两种类型(全身/背鳍)的模型,图像大小为 512 或 784。
全身/背鳍模型:分别使用全身/背鳍数据集进行训练。
当我们搜索最近邻时:
对于有背鳍的物种 -> 使用全身模型和背鳍模型的拼接嵌入向量
对于没有背鳍的物种(如白鲸等) -> 使用全身模型的嵌入向量
在我的实验中,EfficientnetV2 > EfficientnetV1 ≧ ConvNext,但将它们集成提升了我的 CV/LB 分数。
此外,我将池化层之前的卷积层输出进行了拼接,然后将其输入到模型的颈部。效果不错。
主要的数据增强如下:
在我的案例中,一些辅助损失有所帮助。
Loss = ArcfaceLoss + FocalLoss + SpeciesLoss
在某些早期 epoch,如果边距较大,训练效果不佳。
受 https://arxiv.org/pdf/2010.05350.pdf 启发,我重新设计了函数以逐渐增加边距。
这也是提高分数的关键。
首先,我在伪标签上训练模型,
然后使用这些预训练权重在原始训练数据集上进行训练。
我拼接了加权嵌入向量,此操作有一点效果(CV:+0.001-0.002)
为了预测 new_individual_id,通过验证数据集上的预测 Top1 物种搜索最佳阈值。
感谢您的阅读。
欢迎提问!