三维迁移学习

三维迁移学习


0. 前言

大家好,我叫周纵苇,是亚利桑那州立大学的第三年在读博士,主要的研究方向是医学影像分析。今天分享的内容就是关于迁移学习在三维医学影像中的应用,相关的文章发表在MICCAI-2019中,口头报告将在10月14日上午在深圳的会场呈现给大家。

本次工作主要为大家提供了用于迁移学习的预训练3D模型,可用于各类主流的3D医学影像问题的模型初始化。想直接下载使用这些3D模型的可是直接跳转到——6. 实践篇,如果想了解工作细节的欢迎从头阅读。

https://www.zhihu.com/video/1166703116480409600

1. 引子

医学图像分析和自然图像分析在方法上出入不大,都是用目前最流行的深度神经网络来做分类,分割,检测等等。和自然图像比,医学图像一个很棘手的问题是标注起来很困难,往往在大多数的情况下,数据规模很难和自然图像数据库相匹及。在遇到这种标注数据量比较少的情况时,“迁移学习”是一种很流行的方法,因为这样模型不是从零开始学习,而是从大量的数据集中预训练得到的模型开始。这样,你就可以利用以前的学习成果,让模型从一个更优的起点开始训练,稳赢在起跑线上。迁移学习可以让我们在他人训练过的模型基础上进行小改动便可投入使用到自己的问题中来。就像上一代把自己的毕生所学的经验一次性地拷贝给下一代,下一代在这个信息基础上去解决自己遇到的新问题。深度神经网络也是一样的道理:只是这一部分的信息(知识)体现在数字化的权重中。

对于预训练的模型,你不希望它是一个“专家”,而是希望它是一个“杂家”,知识储备尽量地多元却不一定精。比如上一代如果一生只研究数学,水平世界第一,而另一个只懂点算数,机械,物理,化学也懂点,偶尔写写诗,可能还爱旅游,英文也凑合,有时还能说几句哲学的话,平时也会健身。后者的信息会更适合迁移学习,因为你不知道接下来会遇到什么样的问题。在计算机视觉领域,ImageNet数据集会被广泛用作预训练,因为它规模足够大(超过1400万张标记的图片),其中120万个图像分为1000个类别有助于训练一个普适模型。这1,000个分类基本上都来源于我们的日常生活,比如说猫猫狗狗的种类,各种家庭用品,日常通勤工具等等。在迁移学习中,这些预训练的网络对于ImageNet数据集外的图片也表现出了很好的泛化性能,也包括医学图像(Tajbakhsh et al. TMI 2016; Shin et al. TMI 2016)。事实上,在医学影像处理中,从ImageNet的预训练模型开始做迁移学习已经成为了一个标配,编程实现也非常简单,那些预训练好的模型结构和权重都可以直接下载使用。

从ImageNet预训练的模型在迁移到医学影像中存在两个问题:

  1. 模型的输入必须是二维的。为了使用预训练好的模型,下游的图像应该尽量保持预处理和ImageNet一致。ImageNet中的自然图像都是二维的RGB图,而大多数的医学影像都是三维的,比如CT,核磁共振(MRI),长宽高中包含了大量的空间结构信息。如果用ImageNet中的预训练模型,势必要把三维的影像切开成一片片的二维图,然后输入到模型中去训练,这样做确实利用了迁移学习的优点,但是破坏了大量有用的,并且对于医学影像来说很独特也很重要的空间信息。
  2. 医学图像和自然图像差别太大。ImageNet的预训练模型在同样是自然图像的数据集中迁移学习表现卓越,那是因为大多数常见的物品都能被预训练所涵盖,只需要稍做微调,模型就可以适用于其他特定的任务。但对于医学影像,它们的成像原理和自然图像完全不同,图像的明暗有着特殊的含义,图像中包含的人体内部结构也是自然图像数据集中完全没有的。因此,从自然图像迁移学习到医学影像的效果并没有像自然图像之间的迁移学习那么的明显。

一般而言,用3D的神经网络直接处理三维的图像信息效果会好于2D的网络。我们发现,对于三维的医学影像,目前还没有普遍可用的3D预训练模型。由于模型参数多,数据量小,从头开始训练一个3D的模型又很难收敛,容易过拟合或者欠拟合。

为何不像ImageNet一样预训练一些普遍适用的3D模型,专门用于下游的三维医学影像处理呢?

2. 展开

要回答这个问题并不容易,要知道像ImageNet这样规模的标记数据集是很难在医学影像上实现的。即便是猫啊狗啊这样的标签,人工地标记1400万张图也能花费大量的时间和资金,而像医学影像这类的,如何去设计一个个的标签?本身医生在很多情况下也吃不准,需要用到活体检验来取得比较客观的疾病标签。并且有那么繁杂疾病类别,大类里面还细分小类,很容易出现标签的不平衡问题。总之,医学影像的ImageNet还是很难建的,很期待这样大规模的标记医学数据集能早日问世。

在大规模标记的医学影像数据集问世之前,也不是什么也做不了。我们在寻找一个不需要任何人工标签,也能让深度模型从数据本身直接学习到视觉信息的方法。自监督学习(self-supervised learning)可以被看作是深度学习(“人工智能”)的一种“理想状态”,模型直接从无标签数据中自行学习,无需标注数据。在计算机视觉,尤其是自然图像处理方面,自监督学习已经受到了广泛的关注,大量的自监督学习方法的提出,使得预训练的模型能几乎和ImageNet预训练相媲美(Goyal et al. arXiv 2019)。值得注意的是,自监督学习完全不需要人工标签数据,它的“人工”智能体现在我们如何去设计这个自监督的机制。我们认为自监督学习能在医学影像处理提供强有力的支持是基于两点:

  1. 医学影像数据本身不比自然图像少。数据是未来的石油,由于自监督学习不需要人工标签,节省了大量的成本,并且我们可以把所有的能收集到的医学影像数据全部都利用起来,不再受限于单一的数据集。经过初步的估算,光是LIDC和NLST(肺部CT数据集),可下载的数据的像素总量达到11.3TB,再加上其他的身体部位,其他的影像类型,可供直接使用的图像像素远远超过了ImageNet。根据(He et al. arXiv 2019)的估计,ImageNet中图像的像素总量为6.2TB。所以,就可使用的数据量本身来讲,自监督学习在医学影像中是大有潜力的。
  2. 模型可以直接在医学影像数据上学习特征。有监督的模型预训练,如ImageNet,非常受限于大规模标记的数据集,如果下游的图像数据类型和ImageNet相距甚远,并且下游的标记数据量又不够做有监督的预训练,那就只能从ImageNet大跨度地迁移学习。自监督学习却可以直接地从大量的医学影像中学习,大大缩小了领域之间的差异。就像你一直讲的是中文,有一天看一本英文书就需要花很长的时间去转化成中文再理解;如果平时就一直说英文,理解这本英文书就会轻松不少。

3. 主体

刚才讲到如何去设计自监督机制是非常考验创造力的,通过这样一个机制,模型可以从多源的数据中,学习到普适的视觉特征,能很好地泛化到多个任务。因此自监督学习花心思到点不在于数据收集和专业标注上,而是设计有效的自我学习机制。我们提出的自监督学习方法归纳起来就是在原图上做一些改动,然后让模型去还原原图。如此一来,原图本身成为了监督模型训练的标签,符合自监督学习的初衷,从数据中直接学习特征。

我们提出了四个可选的图形变换方法:非线性变换,局部像素重组,向外填充和向内填充。原图经过这一系列的变换后,输入到一个类似U-Net(或者V-Net)的结构中,训练网络让它恢复原图,从而学习到视觉的特征。

3.1 Non-Linear

大家应该很熟悉在美图秀秀或者Photoshop里面调色彩曲线,这个在自然图像中非常常见,如果曲线调的好,由于不同的光线组合,很可能让你觉得调完后的照片比原图还逼真。但是医学影像和自然图片不同,拿CT举例,首先它们是没有光照这一说的,更重要的是,CT中的像素值是和人体内的结构有着很大的联系的。请看下面这张表,它反应了CT中的像素值,英文叫Hounsfield Units,与人体中的空气,脂肪,水,骨骼,以及各个重要器官的对应关系。请问看完这张表你有什么想法呢?

这个特性对于自监督学习来说简直是宝藏!

因为对于CT来说,有了这个特性,对于各个人体结构,相当于我们有了精确到像素级别的标签了。如果我们对原来的CT做一点手脚,比如把空气的像素值变到水的像素值范围,把水变成骨骼,把血管变成肌肉等等,输入到模型中。注意哦,我们只是对像素值做了手脚,各个组织的外观特征还在那儿,比如血管还是那样子,只是像素范围已经不是血管应该有的范围了。那么如果模型看完以后感觉到不对,并且能根据这个组织的外观把像素还原到正确的范围,是不是相当于它认出来了这个组织的类别?非线性变换的方法应运而生!

实现的方法非常简单,就是随机生成色彩变换曲线,加到原来的图片中,就能得到一张经过非线性变换的图片。这里要注意的点是:这个色彩变换曲线需要是单调的,单调递增还是递减无所谓。为什么非得是单调的呢?因为需要在变换后的图像与原图之间建立起一一对应的关系,不然模型很难恢复的。举一个非常极端的例子,如果变换曲线是一条平躺的直线,也就是不管原像素值是什么,都变换到一个固定的值,那变换后的图就是一张灰图了,里面没有什么信息。另外,这个方法其实是让模型根据图中的纹理信息和像素值的相对信息来学习特征,也就是学习了一条色彩曲线反函数,那么函数的定义就是一个任何x只能对应一个y,所以反函数的话就是一个y只能对应一个x。因此,这个色彩曲线必须是单调递增或者单调递减的。随机生成这样的变换曲线有很多不同的方法,我们使用的是Bezier Curve,用两个控制点来保证曲线在[0, 1]区间内的单调性质。理论上对于一幅图,可以生成无穷多个变换。

3.2 Local-Shuffling

这个方法的思路来源于自然图像处理,其中有两篇论文比较相关的前期工作,一篇是自然图像的(Kang et al. arXiv 2017),另一篇是医学影像的(Chen et al. MedIA 2019)。同样是像素位置的打乱,我们的方法和(Kang et al. arXiv 2017)最大的不同在于

  1. 我们的方法直接作用在原图上,并没有对特征图做像素打乱
  2. 他们们的打乱窗口是有规律的sliding window,我们是随机的确定窗口的大小和位置
  3. 他们的目的是正则化模型的训练,但是我们是为了训练视觉特征

和(Chen et al. MedIA 2019)的区别是
他们更像是patch shuffling,patch内的像素是不打乱的,并且两个patches之间的距离可以很远,而我们只是打乱局部的像素,是pixel shuffling

方法层面很容易理解,如下图所示,确定一个小框,打乱这个框框内的像素位置,多次重复这个过程,就得到了一幅变换后的图像了。为什么要强调“局部”打乱呢?
卷积层的感知域大小是有限的。如果打乱的像素距离过远,复原原图的难度就会增加,如果距离实在太大,那模型就只能凭空预测像素值了。我们希望经过这个变换后,图像的全局信息能保留下来。也就是模型可以看到这个结构的大概形状,然后学习复原这个结构的细节纹理和边缘信息。

3.3 In-/Out-Painting

向外填充就是把原图的边缘一圈给遮住,然后让模型填充;向内填充就是把原图的中间一些区域遮住,让模型填充。遮住的方法是用一些随机的数替代原来的像素值。从难度来讲,向外填充比向内填充更难,原因是向内填充,被遮住的区域的四周是知道的,模型至少可以用简单的差值来填充,但是向外填充,就一边的结构是知道的,外面就全靠猜了,或者说就只能先“分析”里面已知的结构来推测外围的结构。实验结果也表明,向外填充学习到的视觉特征更强。

3.4 融合

上面介绍了四种不同的图像变换形式,我们可以很容易地将它们合起来用。给定一幅图,可以同时经历一个或者多个变换。这个自监督学习框架妙就妙在这一点,它可以收纳大量的图像变换,最终把它们都吸收成一个“图像恢复”任务,给模型去学习视觉特征。所以这个框架的包容性是很强的。

自监督学习的研究其实到目前为止是有很多不同的方法被提出(Jing et al. arXiv 2019),但是它们之间都不太好融合,原因是用于训练网络拓扑结构不太一样,或者网络的输入和输出不一样,举例来讲:

  1. 拼图游戏(Noroozi et al. ECCV 2016)需要孪生网络结构才能训练
  2. 上色游戏(Zhang et al. ECCV 2016)需要一个类似全卷机的结构能训练
  3. 旋转游戏(Spyros et al. ICLR 2018)的输入是经过旋转的图像,输出是角度预测

用我们的方法,所有的融合都发生在训练网络之前,所以能做到非常好地融合各种有效的图像变换。在本次工作中,我们的做法是给每个图像变换设置一个发生的概率,给定一幅图,就能实现一个或者多个变换复合应用在图像上了。当然也不排除什么变换都不发生的情况。需要特意指出的是,我们规定向内填充和向外填充是不能同时发生的,原因是我们怕它们同时出现的话,留下的图像信息太少了。

上图是结果,实验表明融合多个不同的变换,不一定能在不同的下游任务中都取得最好的结果,但是融合的方法是效果最稳定的,不是第一就是第二,并且第一和第二没有统计上的差别(p-value>0.05)。这个结果是说得通的,因为不同的图形变化我们有提到,模型学到的视觉特征是有差异,从non-linear学到的特征可能就适用于这个下游任务,但不一定适合另外的任务。和ImageNet比较的话,可以这么理解:从ImageNet中得到的预训练模型之所以适用于那么多的下游任务,就是因为ImageNet里面的目标类别丰富。它一共有1000个物体的类,从不同的类中学到的视觉特征是有差异的。试想如果ImageNet就只有两类(猫和狗),从这个数据集中训练的模型就不那么鲁棒了。

根据这个结果,我们可以初步得出,对于不同的图像变换设计,还有很多工作可以做。

3.5 与数据增强(Data Augmentation)有什么异同?

To incorporate other meaningful image deformations into our framework, the deformation should belong to pixel-level transform, rather than spatial-level transform.

我们的方法可以认为是用模型来还原不同类型,不同程度的数据增强。但也不是所有的数据增强都使用于我们的自监督框架的。比如平移变换,就说不通:给一幅图,我平移几个像素,让网络把平移前的图像还原出来。这个是不可能的。因为在我们的框架中,网络首先要能察觉到输入的图像和现实的图像发生了变化,也就是觉察到了一定程度的反常,比如像素值和结构的外观不符(non-linear),像素排列和正常的不一样(local pixel shuffling),或者结构中的部分被去掉了(out-painting / in-painting)等等。而平移后的图像依旧是正常的医学图,只是位置不同了。再比如旋转变换,如果要嵌入到我们的框架中,就需要在3D空间中人为地“规定”一个基态,也就是如何去定义没有旋转前的状态。这个很麻烦,而且不同的数据集,病人的朝向,体态都不一定都是基态。因此,尽管平移和旋转是最常用的数据增强方法,我们不予考虑。
另外一个差异是数据增强和我们的方法目的不一样。数据增强是针对各种下游的任务的,所以是为了让监督学习结果更鲁棒,而我们的目标是特征学习,是为了让自监督学习学到更多角度的视觉特征,监督的本身是数据,并不需要其他的标签。
对于其他的通用数据增强,我们并没有予以实验证明,根据我们在 3.4融合 中的实验结果,我个人认为适当地加入一些其他的数据增强方法是有好处的,但是前提是讲得通。我们论文中的四个方法,特别是non-linear,是我特意为医学影像处理设计出来的,也就是这个方法不一定适用于自然图像。试想你把一个桌子的颜色调啊调,从白色调到红色,那有怎样?这张图还是可以在现实中出现的,也就是模型没有办法察觉到异常,也就不可能恢复成原图了。

总结来说,在选择图像变换的时候,切记经过变换后的图像,一定要是现实中不存在的,并且还保留一些原图的特征,使得恢复图像这个任务是可完成的。

4. 迁移

预训练完成后,得到的是一个类似3D U-Net的结构,包括encoder和decoder。这一点和ImageNet的预训练模型也不太一样,ImageNet由于是解决一个分类问题,得到的是一个encoder。那么我们的预训练模型可以应用的范围就广了,既可以初始化下游的分类问题,也可以初始化下游的分割问题。ImageNet的模型的话,下游的分割问题就只能随机初始化decoder了。

为了测试预训练模型在3D迁移学习的有效性,我们在五个医学影像数据集上做了实验,包括不同疾病和器官的分类和分割问题,医学图像的模态包括CT和MRI。结果包括三大方面,我下面一一来讲述。

4.1 预训练的3D模型效果高于从头训练的3D模型

这是最基本的结果了,3D模型由于模型参数大,一般来说没有像2D的模型那么容易训练。我们对每个3D的任务都分别做了10次的训练,比较平均值和方差,发现从头开始训练的3D模型和预训练后的3D模型相比,得到的效果不够稳定(方差很大),从而导致均值也较低。对每个任务的结果做t-test分析后,我们发现预训练的效果是十分显著的。这里要提一嘴的是我们只预训练了一个3D模型,并没有根据下游的任务数据集,特意去预训练不同的模型。也就是说,这个预训练模型是对迁移学习来说是通用的。为什么要强调这个呢?因为这个直接就把我们的工作和至今为止几乎所有的自监督学习的论文区分开了。一般来说,自监督的论文都是在下游的数据集上直接预训练。

更具体地说,我们的预训练模型是在LUNA-2016数据集上完成的,并且没有使用这个数据集自带的标签。LUNA-2016的CT主要是位于肺部的,这个预训练模型被用于包括肺结节分割和分类(LUNA-2016数据集),肺血栓分类(另一个CT数据集),肝脏分割(LiTS-2017,这个数据集是肝脏周围的CT),以及脑部肿瘤分割(BraTS-2013,这个数据集是MRI,甚至都不是CT了)。在这些跨数据集,跨人体部位,并且跨图像模态的任务中,我们的Models Genesis都表现出了显著的效果提升。

4.2 预训练的3D模型效果高于预训练的2D模型

说完对于从头训练的3D模型优势,我们当然还应该去关注一下2D的模型能达到的最高效果。需要论证的是:3D模型能在3D的医学影像中取得比2D模型更好的效果。不然费这么大劲去设计一个3D的预训练模型就没有意义了。在医学影像中,2D的迁移学习最强的一定就是ImageNet无疑了,怎么用这个2D模型去处理3D的数据就有讲究了。一般有两种方法:

  1. 相邻的3层当作RGB三通道输入(2D)
  2. 相互正交的x,y,z面上的三层作为RGB三通道输入(2.5D)

还有一个比较高级的,先对3D的cube校准,然后把相互正交的x,y,z面上的三层作为RGB三通道输入(VIOR)。这个方法是今年(2019)刚被收录在医学影像处理顶级期刊Medical Image Analysis中(Tajbakhsh et al. MedIA 2019)。
我们都拿出来比较了,结果如上图所示,预训练后的3D模型完胜2D的最强迁移学习。

4.3 用我们的自监督学习方法预训练的2D模型效果和ImageNet的监督学习效果相近

与此同时,还更进一步,我们用提出的自监督学习的框架降维用在2D图像中,分别包括一层一层地训练2D的CT和训练2D的X-ray图像。得到的预训练模型分别叫它们Genesis CT 2D和Genesis X-ray。这两个副产品很重要,同样是2D的预训练,它们和ImageNet相比就能知道自监督和监督下的特征学习的相对效果如何了。上图的结果告诉我们,在医学影像下的自监督和在自然图像下的监督学习,学到的特征在下游医学影像任务中的效果很相似,并没有统计上的差异。当然,我们不能否认ImageNet在迁移学习过程中,预训练和目标任务的数据差异很大。所以,客观地讲,如果能在医学影像领域做大数据集下的监督训练,效果应该会很不错。


5. 一点思考

5.1 关于Medical ImageNet

4.3 用我们的自监督学习方法预训练的2D模型效果和ImageNet的监督学习效果相近 中提到同样是2D的模型,用我们的自监督学习方法得到的Models Genesis 2D能够达到和有监督地从ImageNet中学习的预训练模型的效果。这个结果非常的激动人心,如果只是为了预训练,我们其实不需要去费劲地标记那么多的照片了,多达14,000,000张。这个数字对于自然图像来说就费了好多人力,时间和金钱,何况在医学影像领域,标记这么多的病例得花多久啊。

这个结果能表明建立一个全标签的Medical ImageNet对模型对预训练就意义不大了吗?

并不是哦。大家可能能发现其中的漏洞:ImageNet的预训练是在自然图像中完成的,当它迁移学习到医学影像领域时,本身就比在医学影像中直接预训练有劣势。因为领域和领域之间的差异,ImageNet的预训练模型的效力会打折扣。那如何去知道自监督学习和监督学习的预训练到底哪个更强呢?直接在自然图像之间做迁移学习!大量的self-supervised learning的相关工作都是在自然图像领域做的,所以我们可以很容易地得到结果。结论是,至我在写博客的这天(2019年09月26日)为止,有监督学习的ImageNet的效力高于各种自监督学习的网络。当然,其中有部分的自监督学习的方法已经十分接近ImageNet的效果了。

因此,考虑到领域之间的差异,建立一个大型的全标签的Medical ImageNet还是非常有必要的,至少对于模型预训练来说。在这个Medical ImageNet中预训练出来的模型大概率能超过我们的Models Genesis 2D,甚至Models Genesis 3D。

尽管如此,我还是对我们的自监督方法很有信心的,我认为,假设Medical ImageNet真的在哪天出来了,Models Genesis还是能和在Medical ImageNet上预训练的模型比上一比的。以下真的就纯是个人发挥了,我有几点理由相信我们的自监督的Models Genesis能和监督的Medical ImageNet网络抗衡:

  1. 医学影像标记不到那么大规模。
  2. 人为设计的标签是有偏见的。
  3. 标记完以后,可训练的数据量实际变少了。
  4. 长尾不平衡问题会特别严重。
Models Genesis are not designed to replace such a large, strongly annotated dataset for medical image analysis like ImageNet for computer vision, but rather helping create one.

5.2 实现真正的通用

Models Genesis(元模型)这个名字取得很有水平了,是一个创世纪的概念,从无到有,无中生有。对应了我们的预训练模型是完全不需要任务的人为标签,仅仅使用数据本身去让模型自主地学习视觉特征。并且这个模型是完全通用的,可以为各种不同的医学影像处理任务做模型初始化,孕育出不同的强有效的3D模型。这两个重要的特性非常有Genesis的味道。

目前发表的这篇论文“Models Genesis: Generic Autodidactic Modelsfor 3D Medical Image Analysis”并没有完全意义上实现这个目标,只是向这个方向走了一小步。严格来说,我们目前在论文中提供的模型的名字叫做Genesis Chest CT,因为它是从Chest CT图像中预训练得到的,也就是公开数据集LUNA-2016,仅限于CT,限于肺部位置。不过它已经在众多医学影像任务中表现出了很明显的优势,所以我们有理由相信,这个自监督学习的框架是可以引领到更强大的预训练模型的。再次强调,医学影像很难标记,但是下载这些影像相对来讲非常容易。并且由于我们的方法不依赖于不同数据集的标签,使得数据集融合成为了可能。如此一来,医学影像的可用数据量远超于ImageNet的数据量了。

一个简单的方向就是训练多个Genesis,专注于不同的医学影像模态。比如下载全网所有的关于CT的数据集,训练一个通用于CT的Genesis CT,或者下载全网所有的关于MRI的数据集,得到一个通用于MRI的Genesis MRI。当然也可以专注于不同的人体部位。比如下载全网所有关于肺部的医学影像(不限于LUNA-2016),得到一个通用于所有下游的肺部疾病的Genesis Lung。最理想的情况是什么?当然是医学影像的集大成者,把全网所有的3D模态的医学影像全部用起来,训练一个模型,它超级通用,跨疾病,跨数据集,跨人体部位,跨模态,一个模型解决一切的医学影像3D模型的初始化问题。这就是真正意义上的Models Genesis。


6. 实践

代码实现与预训练模型下载:github.com/MrGiovanni/ModelsGenesis


7. Q&A

非常感激这次MICCAI的与会经历,以及MICS的线上交流机会,我从中得到了很多宝贵的建议,也收到了很多高水准的提问。我全部都记录下来了,这里做一个整理,篇幅比较长,大家可以挑感兴趣的浏览。

Q: Why the proposed image deformations in your paper work?

Medical images contain similar anatomy. The sophisticated yet recurrent anatomy offers consistent patterns for self-supervised learning to discover common representation of a particular body part.

Q: 请问跟腾讯的MedicalNet相比Models Genesis的特点和优势是什么呢?

腾讯的最新论文“Med3D: Transfer Learning for 3D Medical Image Analysis”也是做医学影像预训练模型的,这些模型也公开在了GitHub上。但是他们的工作和我们的工作有很多本质的区别:

首先,MedicalNet的特征学习是监督学习,需要大量的人工标签;Models Genesis的特征学习是自监督学习,可以整合利用大量不同来源的医学影像数据集。

其次,由于MedicalNet依赖于数据集中的标签,而不同的数据集标签是不一样的,因此MedicalNet在训练的时候decoder是会根据数据集的变化而变化的,事实上,他们的decoder预训练好的权重最后是没有被利用的;而Models Genesis是图像复原的集大成者,虽然整合了大量的方法,最终得到的模型结构是一致的,所以它的encoder和decoder都是可以被利用的。

我们会在Models Genesis的期刊版本中和Med3D进行性能比较,但是由于两者发表时间原因非常接近,在我们的MICCAI会议论文中是来不及比的了。

Q: 请问这篇文章和 Chen et al. 的论文“Self-supervised learning for medical image analysis using image context restoration”有什么联系和区别?

Chen et al. 在今年七月份在医学影像顶级期刊“Medical Image Analysis”中发表了题为“Self-supervised learning for medical image analysis using image context restoration”的工作。这项工作的中心思想也是通过重建原图的方式来让模型学习先验的视觉特征,从而应用在大量的医学图像任务中。这篇论文的写作和实验功力非常强,在Related Work和Baseline Comparison方面可以说非常完备的,称得上是一篇高质量的期刊论文。由于他们的论文中没有给提出的方法取一个名字,所以我后续就称它为“Chen et al.”。我们的Models Genesis和Chen et al.有很多明显的不同:

  1. Models Genesis是以3D深度模型作为预训练的,而Chen et al.预训练了2D深度模型。不可否认的是他们的方法照样在3D上面可行,但是我不清楚为什么要侧重在2D的模型预训练上,因为2D的模型已经有一个非常通用的Models ImageNet了,并且大家都在用ImageNet基础上的迁移学习。
  2. 非常可惜的一点是他们的2D预训练模型没有和2D Models ImageNet比较。这是一个非常明显的漏洞,Models ImageNet是一个大家都在用的2D预训练模型,如果说要提出一个新的2D预训练模型,并且要让大家去用这个模型,和Models ImageNet的比较是势必避不开的。这篇论文在实验部分只是和其他的自监督学习方法做了比较。这一点可以稍微展开来谈一谈,我们其实心里很清楚在2D的模型预训练上,自监督学习是很难超过在ImageNet中监督学习而来的模型的。这也是为什么我们主打3D预训练模型的其中一个原因。我们希望能做出在Medical Imaging上和ImageNet一样有影响力的预训练模型,但是发现在2D的解决方案中,我们提出的四个自监督学习方法(Non-linear,Local-shuffling,Out-painting和in-painting)都和Models ImageNet没有统计上的差异,所以果断面向3D模型。首先3D的解决方案天然的比2D就有优势,最直观来讲input image里面的可用像素就比2D的input多。如果能提供一个非常不错的(或者只是还行的)3D预训练模型,是很容易一举超过所有2D或者2.5D的解决方案的。在Models Genesis的实验中,不出所料,3D的模型经过我们的自监督学习方法,超过了所有2D的结果,也当然超过了3D从头训练的结果。面向3D的预训练是一个很棒的决策:一来降低了工作负荷,用了3D的丰富信息作为助推,二来迎合了大量医学影像的实际背景,CT和MRI自带的3D属性,没有必要用自然图像分析的那一套来做。

还有很多其他的细节差异,我就不细说了,总结在下面的ppt中。他们提出的方法和我们的local-shuffling和in-painting非常类似,我们提出的方法更类似于一个自监督学习的框架,我们在这个框架中建议了四个图像变换,也用实验证明了加入更多有意义的图像变换会让预训练模型更鲁棒。Chen et al.的方法就是一个很不错的图像变换,完全可以收入到我们的自监督学习框架中去。

Q: 三维图像比较大,输入网络之后溢出GPU显存了,这个怎么解决呢?

这篇论文不能解决3D网络吃GPU显存的问题。只能保证说用Models Genesis的预训练权重,能给你带来更佳的结果,并且收敛更快,效果更稳定。



参考文献与拓展阅读

  1. Chen, L., Bentley, P., Mori, K., Misawa, K., Fujiwara, M. and Rueckert, D., 2019. Self-supervised learning for medical image analysis using image context restoration. Medical image analysis, 58, p.101539.
  2. Chen, S., Ma, K. and Zheng, Y., 2019. Med3D: Transfer Learning for 3D Medical Image Analysis.arXiv preprint arXiv:1904.00625.
  3. Doersch, C., Gupta, A. and Efros, A.A., 2015. Unsupervised visual representation learning by context prediction. InProceedings of the IEEE International Conference on Computer Vision(pp. 1422-1430).
  4. He, K., Girshick, R. and Dollár, P., 2018. Rethinking imagenet pre-training. arXiv preprint arXiv:1811.08883.
  5. Goyal, P., Mahajan, D., Gupta, A. and Misra, I., 2019. Scaling and benchmarking self-supervised visual representation learning. arXiv preprint arXiv:1905.01235.
  6. Gidaris, S., Singh, P. and Komodakis, N., 2018. Unsupervised representation learning by predicting image rotations.arXiv preprint arXiv:1803.07728.
  7. Kang, G., Dong, X., Zheng, L. and Yang, Y., 2017. Patchshuffle regularization. arXiv preprint arXiv:1707.07103.
  8. Pathak, D., Krahenbuhl, P., Donahue, J., Darrell, T. and Efros, A.A., 2016. Context encoders: Feature learning by inpainting. InProceedings of the IEEE conference on computer vision and pattern recognition(pp. 2536-2544).
  9. Shin, H.C., Roth, H.R., Gao, M., Lu, L., Xu, Z., Nogues, I., Yao, J., Mollura, D. and Summers, R.M., 2016. Deep convolutional neural networks for computer-aided detection: CNN architectures, dataset characteristics and transfer learning. IEEE transactions on medical imaging, 35(5), pp.1285-1298.
  10. Tajbakhsh, N., Shin, J.Y., Gotway, M.B. and Liang, J., 2019. Computer-aided detection and visualization of pulmonary embolism using a novel, compact, and discriminative image representation.Medical image analysis,58, p.101541.
  11. Tajbakhsh, N., Shin, J.Y., Gurudu, S.R., Hurst, R.T., Kendall, C.B., Gotway, M.B. and Liang, J., 2016. Convolutional neural networks for medical image analysis: Full training or fine tuning?. IEEE transactions on medical imaging, 35(5), pp.1299-1312.
  12. Zhang, R., Isola, P. and Efros, A.A., 2016, October. Colorful image colorization. InEuropean conference on computer vision(pp. 649-666). Springer, Cham.

编辑于 2019-10-28