(一:2020.07.06)nnUNet论文主体解析(持续更新认识)

讲在前面

  • 一.更新于2020.07.10,读完整篇nnUNet的20年4月份发表的论文,在更深的理解之后,做一些修正;
  • 二.我设计了几种字体颜色用于更加醒目地表现关键的思想和主题:
    • 红色表示尚未理解透彻的一些概念
    • 蓝色表示对原来的理解做的一些修改或补充
    • 绿色表示此处需要参考的论文其他部分
    • 橙色表示本文的重要关键字
    • 我会用删除线将自己曾经不到位的理解进行删除
  • 三.一些关键字总结(对于理解整篇论文都相当有必要,按照文中意思进行的理解):
    • 1.实验者( end-users):医学图像分割的实践者和研究人员
    • 2.病例(cases):在本文包括之后的文章,我都会把case翻译成病例,一个病例指的就是一套CT。
    • 3.数据指纹(data fingerprint):数据属性的集合
    • 4.管道指纹(pipeline fingerprint):从数据到模型这个过程中所经历的参数和设计方法;
    • 5.启发性规则( heuristic rules):一些医学图像处理的专业知识的集成和经验的总结,当你想通过数据指纹计算出所需要的管道指纹时,正是依靠的这些算法和方法;

摘要

        医学图像作为科学研究的重要驱动和医疗界的核心元素,最近被深度学习深深的刺激。而语义分割使得很多领域的3D图像分析和应用成为可能,而且针对不同的任务的不同的方法都是不简单的,而且相当依赖数据集的质量和硬件条件。我们提出nnUNet,一种浓缩了该领域的大部分知识,并且具备自动为不同任务设计不同训练方案的框架(源自一个最基本框架的衍生)。不需要人工进行调参,nnUNet在19个国际竞赛中取得最优结果,而且在49个任务的大多数中,都达到了SOTA级别。结果证明了这种深度学习的自适应机制具有巨大的潜力。我们将该框架开源,使得它变得开箱即用,只是为了使得这种SOTA级别的方法更加平民化,从而来促进自动化框架设计的发展。


论文内容

1.介绍

        语义分割将医学图像转化成有意义的空间结构信息,因此对医学的发展有相当必要的作用,尤其对于很多临床应用来说是十分必要的元素,比如一些与人工智能相关的诊断系统、治疗计划、术中协助以及肿瘤的生长监视。自动的医学图像分割是如此的火热,以至于国际上的图像分析赛事有将近70%是有关于医学图像的。
        尽管最近基于深度学习的图像分割方法取得了重大的进展,但是对于终端用户实验者 来说,这些方法都有特定问题上的局限性。某个特定的分割任务的设计往往需要大量的实验时间和很高的训练水平,往往一个很小的错误就会导致一个巨大的效果落差。尤其是在3D医学图像领域,遇到图片质量、图片模态、图片大小、体素大小、类别比率都有差别的这种挑战,这时整个方法的设计可能就会非常笨重和繁琐,因此适应于其他数据或任务的好的优化方法(参数)可能对你手头的任务和数据并没有太大作用。大部分专业的人士做的事情,都是从网络结构的优化设计,到数据增强和后处理。每一个子组件都由一些基础的超参数所决定,例如learn rate、batch size、或者class sample
        还有另一个问题就是训练和推理对于硬件的需求。算法的优化往往依赖于对高纬度的超参数的需求,由于训练范例 病例(cases):的增多也会使得计算资源几何式增长。导致的结果就是,实验者通常都会经过千百次的实验之后得到一个不好的结果,其实这是和他们自己的任务和数据集特性相关的,而且这种错误很难说明也不好复制,他们便不可避免的得到了并不是最佳的方法或者并不适用于其他数据集的研究成果。
        有篇论文对这些情况做了一些解释反而使情况变得更加复杂,这个研究的很大一部分对于非专业人士来说是难以理解的,甚至对于专业人士来说也很难评估。2015年共有将近12000片论文引用了nnUNet用来作为医学图像分割的工具,并且很多对nnUNet做了拓展和改进。我们假设最原始的nnUNet仍然是足够强大的,只要它具备足够合适的设计。
        最后,我们提出了nnUNet,最终这个网络使得医学研究的实际应用成为了可能,至于这个框架为什么可以适应任意的数据集并且能够开箱即用,主要缘于以下两点:

  • 1.我们用公式来明确表示与数据的关键属性有关的“管道”(方法)优化问题和分割算法的一些关键的设计选择;
    • 数据指纹(data fingerprint):(表示数据集的关键属性)
    • 管道指纹(pipeline fingerprint):(表示‘管道’关键的优化设计)
  • 2.我们通过将大多数的理论知识集成为一种启发性规则,来使得上面两者的关系更加的准确,这个规则可以从原有的data fingerprint中生成出pipeline fingerprint(即我可以通过数据的性质来推出它可能需要进行什么样子的训练),同时将硬件的局限条件考虑进去。

        与专门为不同的训练任务调节不同的参数设置不同的算法不一样的是,nnUNet很容易就能执行系统性的规则,并依据看不见的数据集来生成相关的深度学习的方法,而且还不需要进一步的优化。
        接下来,我们会证实我们概念的先进性,看看各项挑战究竟是如何在我们的算法之下实现最优的效果的。这些强有力的结果更加证明了,对于那些想要做语义分割的使用者来说,nnUNet的巨大意义:nnUNet作为一款开源工具,可以被轻松的下载和使用,并且轻而易举就可以训练出SOTA级别的模型,甚至不需要专业的知识储备。我们进一步证实了最近的很多医学图像分割方法的缺点。我们尤其深入的的了解了2019年的KiTS挑战,同时证明了与选择一些相当顶尖的先进的Unet网络架构相比,针对不同任务而进行的不同的设计和参数的调整方法似乎更加重要。nnUNet让所有的研究人员对此更加充满热情,这样也就有了更多的实验结论可供参考,无形中为医学图像领域的方法论发展也起到了促进作用。


2.结果

        nnUNet是一个不需要任何实验设计和参数调节就可以为你训练3D医学图像的深度学习语义分割框架。一些对于比较典型的数据集的分割效果在图一中展示。

  • (图一):nnUNet掌握了数据集的多样性和标签的属性: 以上所有的测试集都来自nnUNet对国际上各项挑战赛事的数据集的应用,左边是原数据的标签,右边是nnUNet模型的推理结果。所有这些可视化操作是在MITK上进行的。
    图一

  • (图二):人为调节的参数和本文提出的自动参数调节对比:

    • a) 最近普遍的深度学习的步骤:进行迭代式的训练和调参,训练之后评估结果,效果不好则进行调参,调参之后继续训练,最终进行侦测,反复如此;
    • b) nnUNet:
      • 1.数据【无论是训练数据还是测试数据,都具有相对应的属性,即指纹】的属性会被总结成一种“数据指纹”;
      • 2.一系列的启发式的规则会推理出适合这种指纹的“管道”(由蓝图参数(计划参数)推理得出):
      • 3.上一步推理出的参数,例如image resample、batch_size等,联合起来成为“管道指纹”:
      • 4.2D、3D和3D_Cascaded三个网络分别训练,得出各自的模型(三个网络结构共享一个“管道指纹”,五折交叉验证)
      • 5.选择出最优的模型进行推理(可以单个进行推理,也可以三个模型一起进行推理)
        在这里插入图片描述

1.nnUNet可以自动适应任何新的数据

        图二(a)展示了近来的多数医学图像分割是如何进行一个新的数据集的训练的。这个过程是“专家驱动”的,而且需要长时间的人为的试错的过程,显然,这样的训练方式对于手头上要处理的数据可能极少有先兆的参考。图二(b)中nnUNet却将这个自适应的过程系统化。
        因此,我们在此定义了一个类似于“图片大小”这样的标准数据集的属性——dataset fingerprint(数据指纹),和一个pipeline fingerprint(管道指纹)[一个训练计划中各个配置的合体]。对于一个给定的“数据指纹”,nnUNet负责生成一个指定的“管道指纹”。

  • 在nnUNet中,这些“管道指纹”被分为蓝图参数推理参数经验参数
    • 1.蓝图参数
      • ① 基础的网络架构选择:比如一个朴素的nnUNet网络;
      • ② 易于选择的一些表现较好的常用超参数:比如损失函数、训练进度表、数据增强方式;
    • 2.推理参数
      • ① 对一个新数据集进行适应性的编码,包括新的网络拓扑结构、patch_size、batch_size和图像预处理;
      • ② ‘数据指纹’和‘管道指纹’两者之间的关系可以通过执行一系列启发式的规则来进行建立,而且遇到未知的数据集时也不需要昂贵的反复训练的代价;
      • ③ 注意许多的设计选择都是相互依赖的:举个栗子
        • 影响
          确定
          影响
          为防止超显存而调整
          目标图像image_spacing
          image_size
          训练时的patch
          网络的拓扑结构
          mini_batch
        • nnUNet卸去了人为解释这些依赖关系的压力
    • 3.经验参数
      • ① 在进行训练时,经验参数会通过交叉验证被确定

        每进行一次训练,nnUNet都会为此创建三个不同的配置:

  • 2D、3D、3D_cascade
    • 2D_Unet: 普通的2D_Unet
    • 3D_Unet: 对一整张图片像素进行操作
    • 3D_cascade: 级联网络:第一个网络对下采样图片进行操作,而第二个网络对前一个网络产生的结果在整个图片的像素上进行调整。
  • 在进行完交叉验证之后,nnUNet会经验性的选择表现最好的参数,可能是独个的推理结果,也可能是一起推理的结果。在结果可以评估的情况下,把对次优效果的抑制作为一项后处理操作。

        nnUNet的输出是自适应的,对于未知的数据集,训练完整的模型同样能够做良好的预测。我们通过网络平台对nnUNet背后的方法论进行了深入的描述。我们最重要的设计原则(也就是我们对一个新的数据集训练提出的建议),都在后面附录的B中。而所有分割任务的“管道”的手稿,都放在附录的F中。

扫描二维码关注公众号,回复: 11463167 查看本文章

2.nnUNet极佳地掌握了目标标签的结构和数据图片的属性

        我们证明了nnUNet作为一个开箱即用的框架的价值:在19个数据集、共囊括49个分割任务上都有良好表现,这些任务包括器官的分割、器官的子结构分割、肿瘤分割、病灶分割等,而且实在多个模态下,例如MRI、CT、EM等。这些竞赛都是国际性的赛事,且被认为是临床实验算法的基准。很明显,举办赛事的人、机构、会社等都是不同的,所以挑战任务也具备独特性,他们的目的是评估在一个标准化的环境下,多个算法的表现。在所有的分割任务中,nnUNet仅仅使用竞赛公布的数据集。nnUNet对“十项全能数据”的方法论做了解释,其他的数据和任务也都进行了独立测试(简单应用并未进行调优)。从本质上说,nnUNet很好的处理了不同数据集的属性和不同标签的结构差异(所有生成的“管道”都被该领域的专家认为是合理甚至明智的)。结果在图一中有展示。


3.nnUNet在多个不同任务中的表现,都要比一些刻意设计的“管道”要好

        大多数的国际挑战使用dice系数来作为效果的评估标准,dice的衡量标准是1为最优,但也有人用normalized_surface_dice(越大越好)和霍夫距离(越小越好),这两个都可以作为分割的边缘效果的衡量标准。图三展示了nnUNet在49项任务上的量化结果。

  • (图三):nnUNet的优越之处: 这是参加的49项竞赛的结果,红色点是nnUNet的表现结果,而蓝色点是其他队伍的结果。右下角的rank指的是nnUNet的此次排名/此次竞赛共提交的论文数DC表示diceOH是另一种衡量的分数(越高越好),OL也是一种衡量分数(越低越好)。该排行截止到2019.12。
    图三
            尽管其他参赛人员针对不同任务进行了反复的调优,但是效果仍然不如自然发生的nnUNet。总的来说,nnUNet总共有29项竞赛表现都成为了SOTA级别,而其他的也相当接近顶级水准。

4.“管道”配置对结果的影响要比网络结构变化对结果的影响大

  • (图四):来自KiT2019的“管道指纹”:
    • a) 展示了各种各样的网络结构的变化,但是前15名全都用了skip_connection、3D卷积和类似于3D_Unet的网络结构,并没有新的变异的结构脱颖而出。同时,这些结构都无法保证足够优秀的结果,这说明网络结构的变化不足以支撑起好的模型效果;
    • b) 这是从所有参赛作品中挑选出来的非级联型且带有残差的、形如3D_Unet的网络的“管道指纹”,他们排名和“管道指纹”差别都相当大。看起来,这些模型的表现和一个独立的参数之间也没有明显的关联。CE: 交叉熵损失;Dice: soft dice loss; WBCE: weighted binary CE。

图四
        为了强调任务设计的针对性和具体方法的配置的重要性要比整些花里胡哨的网络结构要重要的多,我们对KiT2019的参赛者的作品进行了分析,KiT2019属于MICCAI的竞赛,而MICCAI每年举办几乎一半的医学图像竞赛,该竞赛有100个参赛成员,是竞赛项目里人数最多的。

  • 我们对这项竞赛的数据分析透露了我们对于近期医学图像分割领域的一些看法:
    • 1.排名前15的研究都是2016年的3D_UNet的产物;
    • 2.使用相同的网络却会产生不同的结果;
    • 3.更近一步的观察得出,前15名的研究普遍都没有用一些“高级”的网络设计(残差连接、稠密连接、注意力机制、膨胀卷积),由此可以看出最近很多的网络设计可能还没有最基础的网络效果好。

        图四则体现了对于使用同样的带有残差的3D_Unet网络架构来说,通过分析算法来进行超参数的调节是多么重要。当一个参赛者用这种方法赢得了竞赛,其他的基于这种规则的参赛作品可能覆盖整个的排行榜。图中选出了所有非级联型的带残差的Unet,并展示了他们的“管道指纹”,结果表明,每个队伍在进行“管道指纹”的设计都依据着这些“指纹”的相关性。这些看起来各有千秋的“管道指纹”,也恰恰证明了利用深度学习做医学图像分割时,超参数要进行高纬度优化的潜在复杂度。
        nnUNet通过对KiTS的数据集进行实验证明了,好的超参数对结果的利好大于网络结构的变异,而且仅仅用了一个3D_Unet。我们的结论通过被各种参赛者的采纳和引用,不断的被证实。


5.不同的数据集需要不同“管道”配置

  • (图五):来自不同竞赛的不同数据集的“管道指纹”:
    • 以下时nnUNet在19个数据集上的“管道指纹”(附录A),可见“管道指纹”体现了数据集的关键性质(displayed on z-score normalized scale)。数据集在他们的属性上体现出了巨大的差异,所以一方面需要很努力的适应不同的数据集,另一方面需要很大量的数据的支撑来得到其方法结论。右下角时三个模态。
      图五

        我们抽取了19个实验数据集和相对应的“管道指纹”,并展示在图五中。这记录了在医学图像领域,数据集具有超乎寻常的复杂性。同时也暴露了为什么其他算法不如nnUNet的原因:
        我们进行一次“管道指纹”的设计,要么就是人为的设置,要么就是利用各个“数据指纹”之间的隐藏关系进行设置。结果可能就是,对于一个数据集来说优化的效果很好,而对于其他数据集可能没有什么作用,对于一个新的数据集,就需要人为的不断的进行再建计划和再次优化。比如图片的尺寸会影响patch_size,patch_size会反过来影像网络的拓扑结构(下采样的次数和卷积核的尺寸等),而网络的拓扑结构将再次影响其他的超参数。


6.多任务提升了决策(方案)的鲁棒性(Hard_Understand)

  • (图五):对多个任务的决策进行评估”:
    • 以下时nnUNet在19个数据集上的“管道指纹”(附录A),可见“管道指纹”体现了数据集的关键性质(displayed on z-score normalized scale)。数据集在他们的属性上体现出了巨大的差异,所以一方面需要很努力的适应不同的数据集,另一方面需要很大量的数据的支撑来得到其方法结论。右下角时三个模态。

图六
        nnUNet是能够使研发人员不必为不同的数据集人为的调整整个“管道”。为了证明这一点,同时为了支持我们在nnUNet中做的一些核心的设计,我们系统的测试了在十项全能的十个数据集上,仅仅使用一般的管道变化,却都使用nnUNet的蓝图参数的表现。(图六包含了两个备选损失函数【CE和TopK10】,介绍了编码阶段的残差连接,每层的残差从两次卷积变为三次卷积【使得网络更深】,两种优化器的修改【一种使减小优化器的冲量,一种是备用的Adam优化器】、用batch_normal来替代instance_normal和遗漏的参数)。根据挑战者工具的建议,通过bootstrapping来估计排名的稳定性。
        各数据集排名的波动性表明,超参数影像图像分割表现的程度取决于数据集。结果清晰的显示,如果是对 一个数目不足的数据集做方法论的评估一定要十分的小心。虽然9个变量中的5个在至少一个数据集中达到了排名1,但它们都没有在10个任务中显示出一致的改进。原始的nnU-Net配置在聚合所有数据集的结果时表现出最佳的泛化效果。
        在最近的研究中,一次评估很少用在两个以上的不同的数据集上,甚至两个不同的数据集还可能使同一模态,比如全是CT。就像我们展示的一样,这样的评估方法对于方法论的总结来说使不合理的。我们将缺乏足够广泛的评估与将现有管道调整到单个数据集所需的手动调优工作联系起来。nnU-Net以两种方式缓解了这一缺点:

  • 作为一个可扩展的框架,支持跨多个任务有效地评估新概念;
  • 作为一个即插即用的、标准化和最先进的基准,用于和一些评估做比较。

3.讨论

        第一段重复了nnUNet无需人为介入且表现优异的先进性。
        第二段重复改变网络结构对于提升效果的意义不大,而且很多基于一种数据集训练的模型对于新的数据集没有参考价值。
        第三段重复nnUNet的实际意义:一、对任意数据集可进行相应的调整;二、其对任意数据集的实验结果可以作为一种基准,来评判其他分割算法的好坏。
        第四段将nnUNet和AutoML等作比较,阐述了它的优点,自动创建决策的时候会消耗更少的资源,而且具有很强的适应性和稳定性。
        第五段提出nnUNet的局限性:1.举例说明了对于显微镜光学图像的预处理很可能会提升nnUNet的效果;2.nnUNet在两个方面仍然不是最优:① 对于一些潜在的cases,nnUNet自身的启发机制很有可能会随之扩展;② 对于一些极其专业的领域cases,nnUNet只能作为一个起点。
        第六段继续重复自己的牛逼之处。


本文依赖:

  • 框架源码
  • 论文源址
  • 个人对于本文章的解释:
    • 1.本文的翻译仅建立在个人的知识储备和截止现在为止对nnUNet的使用理解,非常欢迎各位的指正,本人分享理解的目的与论文作者的开源目的如出一辙,希望本框架乃至医学图像分割领域有更广阔的发展空间;
    • 2.红字标识是亟待继续理解的部分,很多部分仍然理解的较为浅显,因为尚未进行框架的完全开发使用和对随文目录的理解,本论文附录内容我将持续解读并发表;
    • 3.本文将会持续进行修改和更新,框架的相关使用方法和错误处理将会毫无保留的在之后的更新中推出,但碍于研发工作的私密性,训练数据和表现将不便透露,希望老铁们理解。
    • 4.nnUNet牛逼!

猜你喜欢

转载自blog.csdn.net/weixin_42061636/article/details/107132396