目前,已经有不少深度学习模型被广泛地用于辅助性的胸片(Chest X-Ray)解释,这有助于帮助减轻临床医生的日常工作。其中,使用预训练的ImageNet模型进行迁移学习,已经成为开发模型的标准方法,不仅适用于胸片,也适用于许多其他医学成像模式。因此,有观点认为,经ImageNet检验的架构越好,性能效果便越佳,以及调整预训练的权重可以提高目标医疗任务的性能等。
用于胸片解释的深度学习方法通常依赖于为ImageNet开发的预训练模型。与此同时,该范例假设,更好的ImageNet架构在胸片任务上表现得更好,并且ImageNet预训练的权重比随机初始化所提供的性能更高。
本文所讲述的这项工作“CheXtransfer: Performance and Parameter Efficiency of ImageNet Models for Chest X-Ray Interpretation”中,斯坦福大学吴恩达团队则给出不一样答案。
通过在大型胸片数据集CheXpert上比较16种流行的卷积架构的迁移性能和参数效率,他们探索了ImageNet架构和权重两个因素与胸片任务的性能之间的关系。团队发现,无论模型是否经过预训练,基于ImageNet的体系结构改进带来的性能提升,和CheXpert性能之间并无明显关系。
该研究所使用的CheXpert数据集,由吴恩达带领的斯坦福团队所开发的,相关文章“CheXpert: A Large Chest Radiograph Dataset with Uncertainty Labels and Expert Comparison”发表在AAAI2019上。这个大型数据集包含了源自65,240例患者的224,316张带标注的胸片,以及放射科医师为每张胸片写的病理报告。
每份报告都对14项观察进行具体标记:阳性(positive),阴性(negative)或不确定性(uncertain)。团队比较感兴趣的任务是,从单张或多张胸片中预测不同病理的可能性。
他们使用的便是上文所说的CheXpert数据集中曾指定的5个比赛任务——肺不张(Atelectasis)、心脏肥大(Cardiomegaly)、肺实变(Consolidation)、肺水肿(Edema)、胸腔积液(Pleural Effusion)以及健康(No Finding)类别中的AUROC指标(AUC)的平均值对模型进行评估,以平衡验证集中的临床重要性和患病率。
他们从PyTorch 1.4.0上实现的公共检查点中选择了16个在ImageNet上预训练的模型:DenseNet(121、169、201),ResNet (18、34、50、101),Inception (V3、V4),MNASNet,EfficientNet (B0、B1、B2、B3)和MobileNet(V2、V3),并分别在有/无预训练参与的情况下对这些架构进行了微调和评估。
对于每个模型,团队对CheXpert训练集上的参数进行微调。如果模型经过了预训练,使用从ImageNet学习的均值和标准差对输入进行归一化;反之,使用CheXpert学习的均值和标准差进行归一化。至于参数的更新,团队选择使用Adam优化器,其中,学习率为,批处理大小设置为16,并且采用交叉熵损失函数。模型分为3个epochs进行训练,并按照8192个梯度步长来评估每个模型。
团队成员对每个模型进行训练,并从10个检查点中创建最终的集成模型,该模型在验证集的6个任务中获得了最佳的CheXpert AUC均值。所有结果均在CheXpert测试集中给出报告。此外,团队使用非参数bootstrap估计每个统计量的置信区间:从测试集中抽取1000个副本,并计算每个副本的统计量并生成分布,使用bootstrap值的第2.5个百分位数和第97.5个百分位数作为95%的置信区间。
对挑选出的四个模型(DenseNet121、MNASNet、ResNet18和EfficientNetB0)进行截断操作后,团队附加了一个分类块,其中包含一个全局平均池化层,既大量减少了参数量,还保持了图像的空间结构;然后使用一个全连接层,分配权重,以产生正确形状(shape)的输出。
除了随机初始化分类块外,团队使用ImageNet预训练的权重来初始化模型,并使用与16个ImageNet模型相同的训练过程进行微调。上图形象展现了是否经过ImageNet预训练的CheXpert AUC与ImageNet top-1精度之间的关系,其中左侧图表示没有进行预训练,右侧则表示模型经过预训练。
显然,在没有预训练的情况下,团队发现ImageNet top-1的准确率与CheXpert AUC(斯皮尔曼相关系数=0.082,=0.762)均值无明显单调关系(monotonic relationship)。而在模型经过预训练的情况下,研究团队再次观察到ImageNet top-1的准确率与CheXpert AUC(斯皮尔曼相关系数=0.059,=0.829)均值没有单调关系。
由此,可得出以下结论,ImageNet和CheXpert的性能之间无关,所以在ImageNet上成功的模型不一定在CheXpert上仍然成功。换句话说,ImageNet性能与CheXpert性能之间的关系远弱于ImageNet性能与各种自然图像任务性能之间的关系。其次,研究团队还比较了CheXpert在架构族内部和跨架构族的性能,同样也是分两种情况进行讨论。
在没有预训练的情况下,ResNet101的AUC性能表现只比ResNet18高出0.005,这完全在该度量的置信区间内。与之相类似,DenseNet201的AUC性能表现比DenseNet121高0.004,EfficientNetB3的AUC性能表现比EfficientNetB0高0.003。而在经过预训练的情况下,团队继续发现了在每个族中进行测试的最大模型和最小模型间的微小性能差异。
其中,ResNet、DenseNet和EfficientNet的AUC值分别增加了0.002、0.004和-0.006。由此说明,在一个模型族内增加复杂性并不会像在ImageNet中增加相应的性能那样对CheXpert的性能带来影响。这项研究中,在没有预训练参与的情况下,所研究的最好的模型的性能显著高于所研究的最差模型。
其中,InceptionV3的性能最好,AUC值为0.866,而MobileNetV2的AUC值最差,为0.814。显然,两者性能差值为0.052。对应于前面的介绍,InceptionV3是研究团队选择的所有研究体系中的第三大架构,而MobileNetV2则是最小的。这些模型的CheXpert性能存在显著差异,这种差异也再次暗示出模型架构设计的重要性。
在团队研究的过程中,模型架构的大小是由多参数来衡量的,如上图所示。在未经过ImageNet预训练的情况下,体系结构的参数数量和CheXpert性能(斯皮尔曼相关系数=0.791,)之间存在正单调关系;而在经过ImageNet的预训练中,参数数量与CheXpert AUC均值(斯皮尔曼相关系数=0.565,=0.023)之间存在较弱的正单调关系。
然而,尽管在模型架构的参数数量和CheXpert AUC均值之间存在正单调关系,但并没有突显实现CheXpert AUC边际增长所需的参数量的增加。举例来说,ResNet101的模型架构比EfficientNetB0要大11.1倍,而CheXpert AUC值在预训练的情况下却只增加了0.005。这说明,在模型族中,增加参数数量并不会给CheXpert AUC值带来有意义的收益。
如图3所示,研究团队所研究所有未经过预训练的模型族(EfficientNet、DenseNet、ResNet)中均可以发现这种关系。例如,DenseNet201模型的AUC值比DenseNet121仅高出0.003,但模型规模上却比DenseNet121要大2.6倍。
EfficientNetB3的AUC值比EfficientNetB0高出0.004,但模型规模上却比EfficientNetB0大1.9倍。这显然说明,尽管在所有的模型中,模型的规模与CheXpert性能之间存在正相关关系,但在模型族中,规模越大却并不一定意味着性能越好。因为在模型族中,模型的规模大小与CheXpert性能之间的关系比在所有模型中都弱。
并且,CheXpert性能更多地受宏观架构设计的影响,而非大小。族内的模型具有相似的架构设计选择,但大小不同,因此它们在CheXpert上的性能表现相似。此外,团队还观察到不同架构族之间的性能差异很大。举例来说,无论规模大小如何,DenseNet、ResNet和Inception通常都优于EfficientNet和MobileNet架构。
需要注意的是,EfficientNet、MobileNet以及MNASNet等架构在某种程度上均通过神经网络架构搜索(NAS,Neural Architecture Search)而生成,这一过程对ImageNet的性能进行了优化。研究团队的这一发现也就暗示出,上述的搜索可能对自然图像目标过度拟合,从而在胸片任务上造成一定程度上的削弱。上图显示了预训练增强与模型大小的关系。
团队发现ImageNet预训练对大多数架构(AUC均值为0.015)提供了有意义的提升。并且斯皮尔曼系数为=0.718,p=0.002时,刚好处于给定模型的参数数量和预训练提升之间。
因此,对于较小的架构,如EfficientNetB0 (0.023),MobileNetV2 (0.040)和MobileNetV3 (0.033),这种提升往往会更大;而对于较大的架构,像InceptionV4 (−0.002)和ResNet101 (0.013),提升则较小。但这种关系仍需要进一步地研究才能得到更好的解释。在模型族内,预训练提升不会随着模型尺寸大小的增加而有意义地增加。
例如,DenseNet201的预训练提升的AUC值仅比DenseNet121高0.002。这一发现也刚好支撑了团队先前的结论,即无论规模大小,模型族在CheXpert上的性能表现都是相似的。最后,简单总结,本研究的主要贡献在于以下4点:(1)ImageNet和CheXpert性能之间并没有统计学上的显著关系,胸片解释任务与自然图像分类存在很多不同之处。
(2)模型架构的选择很重要,对于未进行预训练的模型,模型架构族的选择对性能的影响可能大于模型的规模大小。(3)ImageNet的预训练是有帮助的,团队发现ImageNet的预训练在胸片分类的性能上具有显著提高。
(4)模型架构可以通过截断策略而变得更小,这种方法可以保留结构体系设计的关键组成部分,同时减小其规模,研究团队通过截断ImageNet预训练的体系结构的最终块,可以使模型的参数效率平均提高3.25倍,而性能没有统计学上的显着下降。