迁移学习分割模型在测试数据上的表现明显更差

Transfer Learning Segmentation Model Perfoming Significantly Worse on Test Data

我是语义分割领域的新手,最近尝试运行本文提供的代码:Transfer Learning for Brain Tumor Segmentation that was made available on GitHub。这是一项使用 BraTS2020 数据集的语义分割任务,包括 4 种模式,T1、T1ce、T2 和 FLAIR。作者使用了一种使用 Resnet34 权重的 t运行sfer 学习方法。

由于硬件限制,我不得不将批量大小从 24 减半到 12。但是,在训练模型后,我注意到性能显着下降,Dice Score(越高越好)为 3 类 仅在 5-19-11 左右,而不是论文中报告的 78-87-82 结果。然而,训练和验证精度似乎表现正常,只是模型在测试数据上表现不佳,我选择了在过度拟合之前生成的模型(验证损失开始增加但训练损失仍在减少)但产生了同样糟糕的结果.

到目前为止我已经尝试过:

  1. 将学习率从 1e-3 降低到 1e-4,得到类似的结果
  2. 将每个训练时期提供给模型的批次数量增加到每个时期 200 个批次,以匹配论文中的迭代次数 运行,因为我有效地将批次大小减半 -(每个时期 100 个批次, 批量大小为 24)

我注意到图像增强应用于训练和验证数据集以增加模型训练的稳健性。是否需要在测试集上执行这些扩充才能做出预测?没有调整大小的t运行sforms,存在的t运行sforms是Gaussian Blur和Noise,亮度强度的变化,旋转,弹性变形,和镜像,都是用例子实现的here.

非常感谢对这些问题的帮助:

  1. 通过将每个 epoch 的批次数量加倍,它有效地匹配了原始论文中执行的迭代次数,因为批次大小减半了。这是正确的做法吗?

  2. 是否需要像训练数据一样扩充测试集数据才能进行预测? (注意:未执行调整大小 t运行 信息)

  1. 从技术上讲,对于较小的批次,为了收敛,迭代次数应该较多。因此,您的方法会有所帮助,但它可能不会提供与将批量大小加倍相同的性能提升。

  1. 通常,我们不对测试数据使用扩充。但如果应用于训练和验证的转换没有应用于测试数据,毫无疑问,测试性能会很差。你可以尝试增加测试时间,即使它在分割任务中不是很常见 https://github.com/qubvel/ttach