434. Human Protein Atlas - Single Cell Classification | hpa-single-cell-image-classification
感谢比赛主办方举办了如此有趣的比赛。我在比赛中获得了很多乐趣,也学到了很多东西。感谢各位HPA参赛者分享的想法和方案。祝贺本次比赛的获胜者们!
像大多数参赛者一样,我使用了组织者提供的分割算法来分割细胞。数据提供了较弱的正标签,但有大量的强负标签。对于负类来说,情况正好相反(即负标签强,正标签弱)。因此,我训练了一个两阶段模型,第一阶段基于图像级标签,第二阶段基于第一阶段预测的细胞级标签。
由6个EfficientNet-b0模型组成的集成模型,用于预测图像级标签。这些模型使用不同的随机种子进行训练,但都使用了完整的数据集。
第一阶段模型在8倍TTA(测试时增强)下的LB分数为:Private 0.47455,Public 0.48021。
在第二阶段,我对组织者提供的图像级标签做了两个假设:
因此,我使用第一阶段的集成模型来预测单个细胞的标签,但我只保留那些真实图像标签为正的类别的细胞级标签。对于那些真实图像标签为负的类别,其细胞标签被设置为0。
对于负类,我预测 negative_prob = 1 - max(其他类别)。我从额外的HPA数据集中下载了1123张负样本图像,并为其分配了值为1的负类标签。
然后,我使用以下设置训练了这个第二阶段模型。
我没有时间尝试不同的超参数,但我解决方案中使用的设置如下:
这个模型的训练成本非常高,因为我有超过500,000个样本。在最新一代GPU上,一个epoch需要6分钟。
第二阶段训练使我的最佳方案分数提高了约0.3,根据我在第一阶段模型中尝试的不同方法,其他情况的提升范围在0.1到0.8之间。我最好的提交分数为:Private 0.50626,Public 0.50738。
我下载了组织者提供的额外公共数据集,但我只选择了那些基于第一阶段模型验证集的图像级mAP分数低于0.8的类别。我还下载了1123张负样本(无目标类别)图像。
我注意到EfficientNet-b0在第一阶段表现最好。我尝试过的其他模型包括MobileNet v3、ResNet-50和ResNet-101。更大的EfficientNet模型(我尝试了b1和b2)表现不如b0。