返回列表

2nd Place Solution

623. ISIC 2024 - Skin Cancer Detection with 3D-TBP | isic-2024-challenge

开始: 2024-06-27 结束: 2024-09-06 医学影像分析 数据算法赛
ISIC 2024 挑战赛 - 第二名解决方案

ISIC 2024 挑战赛 - 第二名解决方案

作者: Hiro_Oza (Team: yakiniku)

团队成员: shunto nakamura, shina, tomoon33

发布日期: 2024-09-07

竞赛排名: 第 2 名

各位 Kaggle 参赛者大家好!!

首先,我们要向比赛组织者和社区表示诚挚的感谢。在整个比赛过程中,我们有机会探索各种讨论,这些讨论成为我们想法的宝贵灵感来源。这段经历极具教育意义,让我们学到了很多。

就我个人而言,这是我第一次与这个特定的团队成员合作。我对他们卓越的技能印象深刻,发现这段经历非常具有启发性。

总体方法

我们模型的基本结构与公共 Notebook 中常用的方法一致:将图像模型特征整合到表格数据中,随后使用多个 GBDT 进行推理。
我们对 GBDT 和图像模型都实施了几项增强。

GBDT 模型

算法与集成策略

  • 使用了 LGBM、XGBoost 和 CatBoost
  • 为每种算法创建了 18 个变体,总共 54 个模型
  • 使用在全数据集上训练的模型进行种子平均(n=5)

特征工程

对于基础特征,我们采用了以下公共 Notebook 中的特征工程技术:

此外,我们工程化了几个患者相关的特征以捕捉数据的不同方面:

  • 基于患者的标准化
  • 基于患者和 tbp_lv_location 的标准化
  • 基于患者和 tbp_lv_location_simple 的标准化
  • 基于患者和 anatom_site_general 的标准化
  • 实施了表格丑小鸭(Tabular Ugly Ducklings)技术(如比赛论坛中此讨论所述)

为了引入多样性,部分模型仅使用了这些特征的子集。

图像特征整合

  • 模型使用不同数量的图像特征(0-3)作为元特征
  • 这种特征用法的变化有助于模型多样性

超参数调优

  • 设置 num_boost_round 在 200-300 之间
  • 针对以下不同组合进行了单独的超参数调优:
    • 使用的图像特征数量
    • 使用的患者特征数量

模型多样性

  • 在不同模型间略微变化使用的表格特征
  • 结合不同数量的图像特征,这种方法确保了模型集成的多样性

图像模型

概述

我们总共创建了九个图像模型,使用五种不同的训练设置以增加多样性。具体来说,我们整合了用于预测表格数据的辅助损失,并实施了自监督学习以提高准确性。此外,通过选择折叠间方差较低的模型,我们旨在获得稳定的性能。

训练设置

  1. 标准训练:模型使用基本配置进行训练。
  2. Mixup 增强:在训练期间添加 Mixup 作为数据增强技术。
  3. 预测表格数据的辅助损失:我们引入了一个辅助任务来预测表格数据,以鼓励从多种模态中学习。
  4. 预测 iddx_full 簇的辅助损失iddx_full 使用 tf-idf 向量化,随后通过 k-means 进行聚类。模型被训练为预测每个数据点到簇中心的距离作为辅助损失。
  5. 带有表格数据的自监督预训练:遵循最近的多模态学习论文 [1],我们使用表格数据进行自监督预训练,然后微调图像模型。

图像模型

以下九个模型使用各自的设置进行训练,并达到了列出的 CV 分数:

模型 训练设置 CV 分数
eva02_small 标准训练 0.1537
deit3_small 标准训练 0.1534
beitv2_base Mixup 增强 0.1594
convnextv2_tiny 预测表格数据的辅助损失 0.1548
swinv2_small 预测 iddx_full 簇的辅助损失 0.1612
eva02_small 预测 iddx_full 簇的辅助损失 0.1580
resnext50 预测 iddx_full 簇的辅助损失 0.1515
convnextv2_nano 带有表格数据的自监督预训练 0.1607
swin_tiny 带有表格数据的自监督预训练 0.1596

通用训练配置

  • 欠采样:每个 epoch 应用 1:3 或 1:5 比例的欠采样。
  • Epoch 数量:每个模型训练 50 到 200 个 epoch,不使用早停以防止过拟合验证集。
  • 数据增强:数据增强策略根据 ISIC 2020 的顶级解决方案 [2] 进行调整,增强强度根据模型而变化。
  • 优化器:使用 AdamW,骨干网络学习率设为 1e-5 到 8e-6,头部为 1e-3,配合 warmup 和 cosine 调度器。

推理

  • 模型在全数据集上训练并用于推理。
  • 启用自动混合精度以加快推理速度。

交叉验证策略

除了公共 LB 外,我们团队严重依赖此 CV 策略的结果进行模型评估和选择。对于本次比赛,我们实施了三重分层无泄漏 KFold 交叉验证策略,灵感来自以前 Kaggle 比赛中使用的方法。该方法确保 robust 模型验证,同时防止数据泄漏。

该 CV 策略的关键方面是:

  1. 患者隔离:单个患者的所有图像保留在同一折叠中,防止交叉验证期间泄漏。
  2. 恶性图像平衡:分层考虑每个患者的恶性图像比例。
  3. 患者图像数量分布:根据患者的图像数量对患者进行分箱,用于分层。

我们为此比赛使用了 5 折 Stratified Group KFold 交叉验证,同时实现了所有这些方面。

原始灵感和更详细的解释,请参考:SIIM-ISIC Melanoma Classification - Triple Stratified CV

未成功的尝试

我们尝试 Incorporate 过去比赛的数据。为了对齐色调,我们应用了直方图匹配等技术。然而,不幸的是,这种方法没有在准确性上产生显著改进。
为了进一步验证,我们进行了一个实验,将 ISIC2018 的数据与当前比赛数据混合。然后我们构建了一个图像模型来区分过去数据和当前数据。结果显示,模型相对轻松地达到了 0.99 的 AUC。
基于这些结果,我们得出结论,一定存在我们尚未能在视觉上识别的显著差异。因此,我们决定在我们的方法中放弃使用过去比赛的数据。

参考文献

[1] Du, Siyi, Zheng, Shaoming, Wang, Yinsong, Bai, Wenjia, O'Regan, Declan P., and Qin, Chen. "TIP: Tabular-Image Pre-training for Multimodal Classification with Incomplete Data." In 18th European Conference on Computer Vision (ECCV 2024).

[2] https://www.kaggle.com/competitions/siim-isic-melanoma-classification/discussion/175412

同比赛其他方案