434. Human Protein Atlas - Single Cell Classification | hpa-single-cell-image-classification
感谢主办方举办了这场非常有趣的比赛,我们在比赛中学到了很多。
代码链接:https://github.com/tuotuo-1997/HPA
我们使用 Kaggle 提供的数据集和公共数据集,采用不同的模型架构进行训练和评估。使用的公共工具包括 Fastai、Opencv、CellSegmentator、Cleanlab 等。
我们从全图和细胞两个维度共分类了 12 个模型。用于细胞分类的 8 种不同模型结构为:Resnet18、34、50、101,Densenet121,Efficientnet B0、B1 和 B2。细胞标签的分配与全图保持一致。用于全图分类的 4 种不同模型结构为:Efficientnet B0、B1、B2 和 B3。
我们使用 Adam 作为优化器。对于细胞模型,每个模型总共训练 4 个 epoch;对于全图模型,每个模型训练 6 个 epoch。初始学习率设置为 3e-2。将细胞和全图的预测概率取平均值以获得最终结果。
我们方法的改进主要集中在以下 5 点:
在 8 张 1080Ti 上训练整个 12 个模型的时间约为 48 小时。使用单张 2080Ti 提交到 Kaggle(针对公开测试集)大约需要 1.5 小时。代码提交后,Kaggle 内核的预测时间约为 9 小时(针对所有测试集)。
使用非对称损失函数对于缓解类别不平衡非常重要,而自监督学习有助于提高性能。结合细胞和全图的预测结果也能极大地改善实验结果。