返回列表

38th solution (Private 0.52, Hight score 0.55)

590. UBC Ovarian Cancer Subtype Classification and Outlier Detection (UBC-OCEAN) | UBC-OCEAN

开始: 2023-10-06 结束: 2024-01-03 医学影像分析 数据算法赛
```html

第38名解决方案(私有榜单0.52,最高分0.55)

作者:devchopin (竞赛大师)
发布时间:2024年1月4日

自从我开始学习数据分析以来,经常听人提起Kaggle,心中一直充满敬佩。如果这次比赛顺利结束,我将成为在Kaggle参赛两年后达到竞赛大师级别的人!感谢大家!

Gunes Evitan的pyvips代码在比赛中给了我很大帮助。
https://www.kaggle.com/code/gunesevitan/libvips-pyvips-installation-and-getting-started

预处理

使用比赛提供的背景后,我们应用了大津阈值法(Otsu threshold)。然后将图像裁剪为512×512的尺寸并保存。

训练

  • 模型:VIT-s + TransMIL
  • 数据增强:垂直翻转、水平翻转、CLAHE、随机伽马校正、网格畸变、位移缩放旋转
  • 优化器与学习率:由于VIT-s已预训练而MIL容易过拟合,VIT-s使用1e-6学习率,MIL使用1e-5学习率,并对各部分应用EMA。使用AdamW优化器和交叉熵损失(CE)。
optimizer = torch.optim.AdamW([{'params': model.image_extractor.parameters(),'lr':1e-6}, {'params': model.mil.parameters()}], lr=1e-5, weight_decay=1e-3)
extractor_ema = ModelEma(model.image_extractor, decay=ema_decay, device=None, resume='')
mil_ema = ModelEma(model.mil, decay=ema_decay, device=None, resume='')

我尝试了两种方法:

  1. 仅训练MIL:弱监督方法,使用VIT-s模型从图像块提取特征后仅用这些特征训练
  2. 联合训练图像编码器:从512×512图像块中随机选择100张用于训练和评估

两种方法中,方法2获得了更好的公开榜单分数。

有效改进方法

  • 1536×1536伪标签:使用512×512训练的MIL为1536×1536图像生成伪标签,选取概率≥0.5的图像训练TMA预测模型。虽未提升公开榜单分数,但私有榜单达到0.55
  • 异常检测:每类使用二元交叉熵训练,经sigmoid后若所有类预测值<0.5则判为"其他"。虽不精确,但分数提升约0.1
  • 上采样:效果优于加权交叉熵

无效尝试

```
同比赛其他方案