336. SIIM-ACR Pneumothorax Segmentation | siim-acr-pneumothorax-segmentation
首先,恭喜获胜者。这两个月的旅程感觉像永恒一样漫长,因为在最后很长一段时间我都没有取得任何进步,但幸运的是,感谢优秀的队友 @ildoonet 在最后时刻加入,并利用他带有 Efficient B7 主干网络的 Hypercolumns Unet 为我们带来了新的启发。
我们使用了 5 个 Hypercolumns U-Net 模型,主干网络采用 Resnet34 和 Efficient B7(由 @ildoonet 提供)。
4 折交叉验证的 Hypercolumns U-Net Resnet34,使用 bce+dice 损失函数。
我发现 bce+dice 损失函数在收敛速度和 dice 分数方面都优于 bce 损失函数。虽然看起来有些极端,但我们使用了 5 个阶段的 CyclicLR 调度训练,并在每个阶段降低最后一层的最大学习率(lr/2, lr/2, lr/4, lr/8, lr/16),并选取 dice 分数最高的模型作为集成候选,以最小化因更新第二阶段数据集带来的不确定性。
第二阶段重新训练的最佳 dice 分数 CV 结果为 (0.8560/0.84519/0.8367/0.8536)。
4 折交叉验证,配置相同,但加入了自注意力机制。
带有自注意力机制的模型获得了较低的 dice 分数 (0.842/ 0.8535/ 0.8504/ 0.8412),但在第一阶段集成自注意力模型时,效果有所改善。
模型 3、4、5 是 @ildoonet 的 4 折模型,即带有 Efficient U-Net B7 主干网络的 Hypercolumns U-Net 模型。与模型 1、2 相比,它更快达到最佳性能,因此我们使用了 3 个阶段的 CyclicLR 调度训练。
模型 3、4 有不同的学习率配置,分别为 8e-3 和 1.6e-2。模型 3 的最佳 dice 分数 CV 为 (0.8452, 0.8481, 0.8445, 0.8550),模型 4 为 (-, 0.8482, -, 0.8417)(部分日志丢失)。
模型 5 由 @ildoonet 的配置训练而成,我相信他会在自己的文章中解释,但单模型可以在 Private LB 上得分 0.8536。
我们仅使用了水平翻转。
我们利用每个细胞预测的平均概率去除了噪声。
首先使用固定的概率阈值 (0.21),通过连通性定义一个细胞。然后,平均概率超过 0.35 的保留为气胸,低于此概率的则被丢弃。
在第一阶段,这提升了我模型 1 的 4 折集成模型(平均 dice 分数 0.84515,第 4 阶段)在第一阶段 LB 的分数至 0.8729,相比之下,类似 dice 分数(平均 0.84485,第 3 阶段)且带有阈值噪声去除的模型在第一阶段 LB 的分数为 0.8658。(不幸的是,当第二阶段 LB 重置时,我丢失了直接对比的数据)。
0.8568 (Stage 2), 0.8763 (Stage 1)