自监督学习推动医学图像分类发展

发布人:Google Research AI 学员 Shekoofeh Azizi

近年来,随着深度学习在 放射学皮肤病学 等诸多应用领域取得令人振奋的成果,人们对深度学习在医学成像任务中的应用越来越感兴趣。尽管如此,开发医学成像模型仍然颇具挑战,这是由于标注医学图像极为耗时,高质量标记数据通常较为 稀缺

鉴于此,迁移学习 (Transfer learning) 成为构建医学成像模型的热门范例。这种方法首先要在大型标记数据集(如 ImageNet)中使用监督学习 (Supervised learning) 对模型进行预训练,然后在域内医学数据中对习得的通用表征进行微调。

近来一些新的方法在自然图像识别任务中取得了成功,尤其是在标记示例稀少的情况下,这些方法使用自监督对比预训练,然后进行监督微调(例如 SimCLRMoCo)。在 对比学习 预训练中,模型将同一图像的不同转换视图间的一致性升至最高,同时将不同图像的转换视图间的一致性降至最低,从而习得通用表征。尽管这些对比学习方法取得了成功,但在医学图像分析中受到的关注有限,其功效还有待探索。

在发表于 国际计算机视觉大会 (ICCV 2021) 的 “大型自监督模型推动医学图像分类 (Big Self-Supervised Models Advance Medical Image Classification) ”一文中,我们研究了自监督对比学习作为医学图像分类领域预训练策略的有效性。同时提出了一个全新方法——多实例对比学习 (MICLe),这一方法可泛化对比学习以利用医学图像数据集的特性。我们针对两项不同的医学图像分类任务进行了实验:识别数码相机图像中的皮肤状况分类(27 类)和对胸部 X 射线进行多标签分类(5 类)。通过实验可以观察到,在 ImageNet 上进行自监督学习,随后对未标记的特定领域医学图像进行额外的自监督学习,显著提高了医学图像分类器的准确性。具体来说,结果表明自监督预训练优于监督预训练,即使在完整的 ImageNet 数据集(1400 万幅图像和 2.18 万个类别)用于监督预训练时也是如此。

SimCLR 和多实例对比学习 (MICLe)

我们的方法包含三个步骤:(1) 对未标记的自然图像进行自监督预训练(使用 SimCLR);(2) 使用未标记的医学数据进一步开展自监督预训练(使用 SimCLR 或 MICLe);(3) 使用标记的医学数据进行特定于任务的监督微调。

三个步骤:(1) 使用 SimCLR 对未标记的 ImageNet 进行自监督预训练 (2) 使用未标记的医学图像进行额外的自监督预训练。如果各种医疗状况都有多幅图像,则使用新颖的多实例对比学习 (MICLe) 策略,基于不同的图像构建信息量更大的正样本对。(3) 对标记的医学图像进行监督微调。请注意,与第 (1) 步不同,第 (2) 步和第 (3) 步针对任务和数据集

在使用 SimCLR 对未标记的自然图像进行初始预训练后,我们训练模型以捕捉医学图像数据集的特性。此举也可以通过 SimCLR 来实现,但这种方法仅通过增强来构建正样本对,并且不易于利用问诊者的元数据来构建正样本对。或者,我们使用 MICLe(该方法会在可用的情况下使用各个问诊者病例潜在病理的多幅图像)来构建信息量更大的正样本对,用于开展自监督学习。此类多实例数据通常可用于医学成像数据集,例如,乳房 X 光片的正面和侧面视图、每只眼睛的视网膜眼底图像等。

鉴于特定问诊者病例具有多幅图像,MICLe 会从同一问诊者病例的两幅不同图像中进行两次裁剪,从而构建出用于自监督对比学习的正样本对。这些图像可以从不同的视角拍摄,并显示具有相同潜在病理的不同身体部位。这为自监督学习算法提供了一个很好的机会,可以直接学习对视角、成像条件和其他干扰因素的变化具有稳健性的表征。MICLe 无需类标签信息,仅依赖于潜在病理(其类型可能未知)的不同图像。

MICLe 可泛化对比学习,以利用医学图像数据集(问诊者元数据)的特性来创建逼真的增强效果,从而进一步提高图像分类器的性能

我们将这些自监督学习策略相结合,结果表明,即使在竞争激烈的生产环境中,我们也可以在皮肤状况分类的 top-1 准确率方面实现 6.7% 的显著提升,并将胸部 X 射线分类的平均 AUC (mean AUC) 提高 1.1%,优于在 ImageNet(用于训练医学图像分析模型的流行协议)中预训练的强监督基线。此外,结果还表明,自监督模型对分布偏移具有稳健性,并且只需少量标记的医学图像即可进行有效学习

监督预训练和自监督预训练之间的比较

尽管很简单,但我们观察到,根据所选择的不同预训练数据集和基础网络架构,与使用 SimCLR 进行预训练的原始方法相比,使用 MICLe 进行预训练能够持续提高皮肤病分类的表现。与使用 SimCLR 相比,使用 MICLe 进行预训练可将皮肤病分类的 top-1 准确率提高 (1.18 ± 0.09)%。结果表明,利用额外的元数据或域知识为对比预训练构建更具语义意义的增强可带来好处。结果还表明,增加模型的 宽度和深度进一步提升其表现,其中 ResNet-152(2 倍宽度)模型表现通常优于 ResNet-50(1 倍宽度)模型或更小的模型。

监督预训练和自监督预训练之间的比较,预训练之后会使用两种架构对皮肤病分类和胸部 X 射线分类进行监督微调。自监督学习利用未标记的特定于域的医学图像,表现明显优于监督 ImageNet 预训练

使用自监督模型增强泛化能力

我们分别使用域内未标记和标记数据对各项任务进行预训练和微调,还使用在不同临床环境中获得的另一个数据集作为偏移数据集,以进一步评估我们的方法对域外数据的稳健性。对于胸部 X 射线任务,我们注意到,使用 ImageNet 或 CheXpert 数据进行自监督预训练可以提高泛化能力,同时使用两者还可以进一步提高此能力。正如预期的那样,我们还注意到,当仅使用 ImageNet 进行自监督预训练时,与仅使用域内数据进行预训练相比,该模型的表现更差。

为测试分布偏移下的表现,对于各项任务,我们额外提供了在不同临床环境下收集的标记数据集以进行测试。我们发现,使用自监督预训练(同时使用 ImageNet 和 CheXpert 数据)时,分布偏移数据集 (ChestX-ray14) 的表现有所提升,比 CheXpert 数据集的原始提升更为明显。这一发现颇具价值,因为分布偏移下的泛化能力对于临床应用至关重要。在皮肤病学任务中,我们观察到某一单独的偏移数据集具有类似趋势,该数据集收集自皮肤癌诊所,具有较高的恶性疾病发病率。这表明自监督表征对分布偏移的稳健性在不同任务间具有一致性。

用于胸部 X 射线解读任务的分布偏移数据集模型评估。我们在没有进一步微调(零样本迁移学习)的情况下,使用在域内数据上训练的模型对额外的偏移数据集进行预测。我们观察到,自监督预训练会产生更好的表征,对分布偏移更稳健

用于皮肤病学任务的分布偏移数据集模型评估。结果普遍表明,自监督预训练模型可以在分布偏移中得到更好的泛化,其中 MICLe 预训练对泛化能力的提升最为明显

优化后的标记效率

我们通过在不同分数的标记训练数据上对模型进行微调,进一步研究了用于医学图像分类的自监督模型的标记效率。我们对 Derm 和 CheXpert 训练数据集使用 10% 到 90% 的标签分数,并使用皮肤病学任务的不同可用标签分数研究性能如何变化。我们观察到,使用自监督模型进行预训练可以弥补医学图像分类标签效率低下的情况,并且在采样的标签分数中,自监督模型表现始终优于监督基线。结果还表明,使用较少的标记示例进行微调时,MICLe 会按比例提升标签效率。事实上,MICLe 仅使用 20% 的 ResNet-50(4 倍)训练数据和 30% 的 ResNet152(2 倍)训练数据就能够与基线持平。

MICLe、SimCLR 和监督模型在不同的未标记预训练数据集和不同大小的标签分数下的皮肤状况分类 top-1 准确率。MICLe 仅使用 20% 的 ResNet-50(4 倍)训练数据就能够与基线持平。

结论

对自然图像数据集进行监督预训练是改进医学图像分类的常用方法。我们研究了一种基于对未标记自然图像和医学图像进行自监督预训练的替代策略,发现该策略可以显著改进监督预训练,而这正是训练医学图像分析模型的标准范式。这种方法可以使模型更准确且标签效率更高,并且对分布偏移具有稳健性。此外,我们提出的多实例对比学习方法 (MICLe) 能够使用额外的元数据来创建逼真的增强效果,从而进一步提高图像分类器的性能。

自监督预训练无需类标签标注,因此比监督预训练更具可扩展性。我们希望本文有助于推广自监督方法在医学图像分析中的应用,产生具有标签效率和稳健性的模型,以在现实中用于大规模临床部署。

致谢

本研究是 Google Health 和 Google Brain 多学科团队共同努力的成果,团队中包括研究人员、软件工程师、临床医生和跨职能贡献者。感谢以下合著者:Basil Mustafa、Fiona Ryan、Zach Beaver、Jan Freyberg、Jon Deaton、Aaron Loh、Alan Karthikesalingam、Simon Kornblith、Ting Chen、Vivek Natarajan 和 Mohammad Norouzi。同时还要感谢来自 Google Health 的 Yuan Liu 提供的宝贵反馈,以及合作伙伴为本研究提供的数据集。

原文:Self-Supervised Learning Advances Medical Image Classification
中文:TensorFlow 公众号