392. Prostate cANcer graDe Assessment (PANDA) Challenge | prostate-cancer-grade-assessment
我在这次比赛中学到了很多东西——非常感谢组织者以及所有尝试解决问题的人,同时祝贺获胜者!
我的方法没有什么新颖之处,但还是在此分享一下。
我的解决方案是基于 @Iafoss 的 concat tile pooling (拼接图块池化) 的半监督 ImageNet 模型集成。
我唯一做的改动是移除了最后的 dropout 层,并在解冻模型之前对头部进行了几个 epoch 的训练。
当然还使用了 @haqishen 天才般的 BCE loss (二元交叉熵损失)。
我基于 @akensert 的 optimized tiling (优化切片),从中等分辨率图像生成了尺寸为 256 和 384 的图块。
在选择更多图块和更大批处理大小之间存在性能权衡,因此我采用了在每个 epoch 从前 N 个图块中随机采样 k 个图块的方法。
| 模型 | 输入尺寸 | k (采样数) | N (总数) | 批大小 (bs) |
|---|---|---|---|---|
| resnext50_32x4d_ssl | 192 x 192 | 28 | 40 | 10 |
| resnext50_32x4d_ssl | 256 x 256 | 32 | 40 | 6 |
| resnext50_32x4d_swsl | 384 x 384 | 14 | 24 | 6 |
使用较小尺寸 (128) 训练似乎会导致过拟合,而较大尺寸 (512) 则因为不得不降低批处理大小而导致训练不稳定。
色调/饱和度增强并没有提高 CV(交叉验证)分数,所以我坚持使用仿射变换——旋转、翻转、缩放、扭曲——全部来自 fastai 的默认变换。
每隔一个 epoch 随机打乱图块顺序似乎也有帮助。