返回列表

HPA 36th Place Solution

434. Human Protein Atlas - Single Cell Classification | hpa-single-cell-image-classification

开始: 2021-01-26 结束: 2021-05-11 生命科学 数据算法赛
HPA 第36名解决方案

HPA 第36名解决方案

作者:tacorice (Kaggle Master)
比赛排名:第36名

首先,我们要感谢主办方举办了这场非常有趣的比赛,同时也祝贺所有的获奖者。

概述

以下是我们遇到的问题及相应的解决方案。

问题
① 弱监督学习问题
② 细胞核突出图像边界的问题
③ 标签数量不平衡的问题

解决方案
针对③标签数量不平衡的问题,我们通过使用外部数据进行了增强(进行了下采样,使每个标签大约有10,000个样本)。这使得LB分数提高了+0.01。在过去的比赛中,当标签数量不平衡时,使用Focal Loss是一个很好的学习范例,但这次并没有奏效。

针对①弱监督学习的措施,我们利用了像素值的差异。如果图像中存在不同标签的细胞,我们假设染色强度是不同的,当裁剪成单个细胞时,图像中的平均像素值会有所不同。因此,我们通过使用一个去除了20%平均值的数据集作为图像平均值的阈值,从而提高了模型的准确性。此外,通过设定阈值,我们能够消除一定数量的②中提到的细胞核突出图像边界的问题。(遗憾的是,由于时间不够,我们无法比较不同的阈值。)结果,LB分数提高了+0.03~0.04。

模型

模型分为两类:单细胞模型和图像级模型。

单细胞模型

  • 模型:ResNet50 + EfficientNet B4
  • 图像尺寸:128x128
  • 损失函数:BCEWithLogitsLoss
  • 数据增强:翻转, TTA (n=3)
  • 数据集:
    • 训练集:179.2k
    • 验证集:44.7k

图像级模型

  • 模型:SEResNeXt50 32×4d + EfficientNet B7
  • 图像尺寸:640x640
  • 损失函数:
    • BCEWithLogitsLoss (EfficientNet B7)
    • FocalLoss (SEResNeXt50 32×4d)
  • 数据增强:水平翻转 (p=0.5)
  • 数据集:仅使用绿色通道
    • 训练集:17.4k
    • 验证集:4.4k

这就是我能够获得银牌的方式。
凭借这枚奖牌,我成功晋升为 Kaggle Master!!
非常高兴!

在加入 Kaggle 的一年前,我完全不懂 Python 和机器学习,但我感觉到通过以奖牌为目标,我逐渐能够做到以前做不到的事情。此外,我认为通过经历许多起伏和磨练,我在精神上也得到了很多锻炼 XD

对我来说,Kaggle 是最好的数据科学学习平台。
感谢 Kaggle 和所有的 Kaggler。

我将继续迎接挑战。

同比赛其他方案