返回列表

38 place writeup(image classification on TPU/Colab only with s3 trick)

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

开始: 2020-11-17 结束: 2021-02-17 环境监测 数据算法赛
第38名方案分享:仅使用TPU/Colab和s3技巧进行图像分类

第38名方案分享:仅使用TPU/Colab和s3技巧进行图像分类

作者:Victor Zaguskin (Master) | 比赛排名:第38名

大家好。
首先,感谢主办方举办这场精彩的比赛。这是我最喜欢的比赛类型:标签不完整或存在噪声,你需要思考如何处理它们。
其次,感谢那些分享代码的人。特别是以下内核的作者:

  1. https://www.kaggle.com/ashusma/training-rfcx-tensorflow-tpu-effnet-b2 - 这是一个很棒的入门资源,我只是通过修改这个内核来继续前进。
  2. https://www.kaggle.com/aikhmelnytskyy/resnet-tpu-on-colab-and-kaggle - 这展示了如何在Colab上进行训练。

我的代码在以下笔记本中 - https://www.kaggle.com/vzaguskin/training-rfcx-tensorflow-tpu-effnet-b2-with-fp。最终的提交是该代码的几个版本的提交(以及Colab上的类似代码)加上s3技巧的合并。

从80+分到90+分(银牌区)的进阶之路

现在,我是如何从初始入门笔记本的80+分提升到90+分并进入银牌区的:

  1. 5秒的音频切片效果优于初始的10秒。
  2. 使用带有掩码BCE/BCEFocal损失的FP(假阳性)数据。我只计算我知道缺失的标签的BCE损失(而在TP数据上使用标签平滑0.2的常规BCE/常规BCEFocal)。
  3. 使用更重的模型(EfficientNet-B4)。
  4. 添加了mixup/cutmix数据增强。

该代码的最佳版本在私有榜单上获得了0.89+的分数。
然后是集成环节 - 我只是收集所有得分较高的提交(公开榜0.87+)并对它们取平均。排名平均似乎比简单平均效果稍好(大约高出0.001)。
用这种方法我能获得的最佳私有分数是0.912。

s3技巧

我的s3技巧版本是将s3乘以2.5,将s7乘以2。这让我在私有榜单上得了0.93(公开榜0.918)。我选择用于最终提交的版本公开分同样是0.918,私有分0.929,几乎是一样的。

再次感谢这次比赛。学到了很多东西,也玩得很开心。

更新:我添加了Chris的后处理代码,现在这个内核在私有榜单上得分0.95467(金牌区)——这意味着在不到3小时的时间内,仅在Kaggle TPU上完成训练和推理,并达到了金牌级别的分数。

同比赛其他方案