返回列表

14th place solution, [0.989] Colab and Kaggle kernels

339. Recursion Cellular Image Classification | recursion-cellular-image-classification

开始: 2019-06-27 结束: 2019-09-26 药物研发 数据算法赛
第14名方案,[0.989] Colab 和 Kaggle 内核

第14名方案,[0.989] Colab 和 Kaggle 内核

作者: Maksym Pyrozhok | 排名: 第14名

我要感谢 Recursion Pharmaceuticals 和 Kaggle 组织了这次比赛。我还要感谢所有参与者,特别是 nosound,他解释了关于数据泄露利用的方法并提供了示例代码。

我的解决方案完全使用免费的计算资源开发。比赛初期我使用的是 Colab,随后短暂切换到 Kaggle 内核,直到 Kaggle 强制执行 GPU 时间限制,之后又转回使用 Colab。我的最终提交是基于单个 densenet201 模型。

工具

  • PyTorch 配合 Apex 以及少量的 Ignite。

数据

  • 分辨率 6x512x512。起初我尝试使用较小的分辨率,但很快意识到全尺寸图像对于实现最大性能是必要的。
  • 在数据增强方面,我使用了旋转、水平翻转、Cutout 以及随机亮度/对比度调整。我还使用了 4 张旋转 90 度的图像进行测试时增强(TTA)。

模型

  • 使用 densenet201 配合 ArcFace 损失函数。
  • 针对每种细胞类型分别设置 1108 个类别。

训练过程

  • 使用 AdamW 优化器和带重启的循环学习率,采用三角调度策略。
  • 在 10% 的训练数据集上进行验证,以找到模型开始过拟合的点。然后在完整数据集上训练,直到验证集显示有改善的周期为止。
  • 使用周期中的最后一个检查点进行预测。
  • 对两个位点的距离取平均值。

后处理

  • 利用数据泄露。使用 lapjv 算法为每个板获取最大预测组合。

伪标记和混合不同模型的预测结果可能会提高我的分数,但遗憾的是时间和计算资源都不足。

祝贺获胜者!

同比赛其他方案