神经网络的创新通常通过架构变化来实现。事实上,架构的改变可以说是深度神经网络(DNNs)普及的原因。DNN的卷积变种在1989年第一次在主流分类中获得成功,它采用了一种现在已经过时的模型,称为LENet。2012年,AlexNet被引入用于更难的数据集,但组成AlexNet的块大多与组成LeNet的块相同。AlexNet的创新主要在于块之间的相对位置和使用的块的数量-换句话说,架构1。
如果架构在性能中扮演如此重要的角色,那么如何选择架构是很自然的问题。在计算机视觉领域,已经有大量的论文介绍了截然不同的体系结构和渐进式改进。然而,在医学图像分割中,体系结构似乎常常缺省为U-Net。
U-Net是一种易于实现的DNN架构,在医学成像领域获得了极大的成功;介绍U-Net的论文发表于2015年,是在享有盛誉的医学成像会议MICCAI上被引用最多的论文。然而,在过去的五年中,细分任务的体系结构有了显著的改进,假设U-Net将提供近乎最先进的性能已经不再安全。
本文将提供U-Net的概述,解释它工作的原因和为什么它是默认的,然后讨论一些最新的体系结构,这些体系结构在医学成像应用中很有前途。
U-网是一种2D或3D全卷积神经网络结构,它由编码器和解码器组成,编码器和解码器具有跳跃连接,在不同的特征抽象级别将两者连接起来。
编码器由卷积层和渐进下采样组成,该下采样以压缩表示捕获关于输入的上下文信息。解码器由具有渐进上采样的卷积层组成,该卷积层与跳过连接一起保留了关于输入图像的清晰边界和结构信息。图1显示了U-Net体系结构的示例。
解码器中的下采样(在这种情况下是通过最大合并)的目的不仅是增加网络的接受场2,而且使其在计算和存储器上高效地创建大量卷积特征映射。更多的功能映射意味着网络可以了解输入和输出之间更复杂的关系。
上采样的目的是恢复输出中的空间结构,以便预测与输入的像素或体素相对应。否则,由于下采样,这种对应就不会出现这种情况。跳过连接可恢复每个级别的空间结构。
下采样和上采样的编解码器结构相结合,使U网在保持预测空间结构的同时具有较大的接受域。
U-net在医学成像会议和期刊文章中无处不在。显而易见的原因是,它被确立为工作得相当好,而且该模型很容易实施。因此,它是原型机的首选。与我将要讨论的其他一些模型不同,U-Net可以用PyTorch编写,只需几行代码,这使得支持和调试变得非常迅速。
有关示例实现,请参阅此处。我试图保持实现简短,而不做任何直接野蛮的事情。为了直观地了解为什么经常使用这个网络,我花了大约30分钟从头开始实现这个示例(尽管我之前已经实现过几次)。
在U-Net之外,医学成像领域的深度学习从业者有哪些选择?我们将从ResNet开始,这是一个现在很经典的体系结构,然后转到构建在U-Net编解码器体系结构上的更新的体系结构。
ResNet体系结构引入了剩余连接-类似于U-Net的跳跃连接-这使得使用更多卷积层来训练体系结构成为可能。残差连接将前几层的特征添加到后几层,因此卷积层只需了解差异(即残差)。这可以在下面的公式中看到,其中x是输入,y是输出,f是残留层。
这个技巧帮助解决了一个长期存在的问题,即让反向传播来更新非常深的神经网络中早期层的权重。
ResNet最初是为分类任务而提出的,因此是一种由残差块和汇聚层组成的直截了当的体系结构,用于将输入下采样为根据目标类的数量成形的输出向量。下采样和缺乏上采样层使得该体系结构不能立即转移到分段,但是可以对该体系结构进行修改以实现这一点。
用于医学成像目的的该网络的另一个问题是该网络的实现是针对2D网络的。当处理像MR和CT这样的3D图像时,您需要使用2D或2.5D切片提取方法来使图像适合网络。鉴于我们将在本文剩余部分讨论的体系结构是为自然图像创建的,这个2D维度问题仍然存在;但是,所有提到的2D网络都可以通过替换2D卷积、池化和其他层的3D等价物来转换为3D网络。这种转换可能会使参数的数量呈爆炸式增长,并且由于内存限制,最终的网络可能无法进行训练。然而,修改超参数以便从2D模型创建工作3D模型通常是直接的。
DeepLabv3+架构是修改ResNet以进行语义分割的一种方式。有几个修改,但与我们的目的最相关的一个修改是修改为具有跳过连接的编解码器(类似于U-net)。这是通过使ResNet进入编码器并添加附加的上采样层来形成解码器来实现的。跳过连接使用来自ResNet中间层的功能,并将它们连接到解码器中的中间功能。有关体系结构的框图,请参见图2(有关ASPP块的描述,请参阅原始论文)。
另一个重要的修改是,该架构使用膨胀卷积而不是下采样来增加接收野。对于扩张卷积的示例,见图3,其中底部阵列中的蓝色阴影方块表示扩张卷积的核心(映射到顶部阵列上的阴影蓝绿色正方形)。
扩展卷积的好处是特征图的大小保持不变,同时增加了接受野。虽然保持特征映射的恒定大小在计算上更多,并且存储效率低,但是所产生的密集特征使得更容易解析输入图像中的小对象-这是分割的一个重要特征。
这两个修改已经被证明在医学成像中的许多语义分割数据集上产生了最先进的性能。虽然网络的参数数量很大,运行起来的计算成本也很高,但此架构的优点是使用ResNet作为编码器,可以在所有最常见的深度学习框架(例如,PyTorch和TensorFlow)中找到预先训练的编码器。使用预先训练的网络通常可以减少训练时间或提高网络在底层任务上的健壮性(正如我们上一篇关于自我监督学习的文章中所讨论的那样)。
这个网络的许多实现都是免费提供的,但是我们发现的许多PyTorch实现很难遵循,所以我们实现了我们自己的实现,试图最大限度地提高来自PyTorch Vision存储库的代码重用。
ResNet的主要贡献-使用剩余连接-提出了一个问题:如果将以前的层输出连接到后面的层是好的,那么将所有以前的层连接到所有未来的层是否更好?事实证明,在某些应用中,答案是肯定的。DenseNet由几个紧密相连(根据剩余连接)的块组成,提高了图像分类任务的性能。图4显示了密集连接块的一个示例。然而,与ResNet一样,DenseNet是为分类而设计的,并且需要针对语义分割进行修改。
Tiramisu体系结构将DenseNet和编解码器与U-Net的跳跃连接结构结合在一起,以获得U-Net的密集连接卷积层的好处,以及U-Net更大的空间结构保持方面的优势。
如何将这两种体系结构融合在一起的想法很简单,但它很适合医学图像分析应用程序。其思想是简单地将U网的卷积块替换为密集连接的块。如果你看一下图5中的体系结构框图,你会发现它们之间的相似之处很明显。
密集连接块的使用使此体系结构更难实现和调试,并使其内存效率大大降低,因为它需要存储许多中间功能以供以后级联使用。无论如何,密集连接层的使用减少了所需参数的数量,并可以在困难的小数据集语义分割任务(如多发性硬化症病变分割)中实现最先进的性能。
最近对DNN体系结构的另一个修改是使用注意块;例如,注意门控网络、ResNest和挤压-兴奋网络。卷积网络中的注意主要有两种类型:空间注意和通道注意。
空间注意力允许长范围的依赖性,这允许网络将图像中相对较远的对象联系起来;如果没有空间注意力,卷积层被限制为计算对应于卷积核大小的局部特征。空间注意力的另一种表述是将网络“聚焦”在图像的某些区域,而忽略其他区域。
通道注意力为卷积层的输出计算相当于通道(即,特征映射)的重要性加权方案的值。加权方案对某些特征映射进行衰减,以便将网络的“注意力”集中在未衰减的信道上。
根据任务和注意力的表达方式,在网络架构中添加注意力块可能有助于提高性能。无论是利用空间注意力还是渠道注意力,我都取得了有限的成功,这是值得的。按照这里的表述,空间注意力是一种记忆消耗,并不能显著提高各种任务的表现。通道注意力也是如此。注意门控网络似乎是一种空间注意力的公式,它对内存的消耗较小,并在医学图像分割任务中显示出令人振奋的结果,但作者表示,训练比不训练要复杂得多。我们在这里实现了该体系结构中描述的注意力门的一个版本。
我们回顾了几种神经网络结构,描述了它们如何改进U-net。我们还提供了一些实现,可以用来测试所描述的网络,而不会带来太大的痛苦。最终,要在任何给定任务中最大限度地发挥DNN的性能,您必须尝试几种体系结构,并选择碰巧工作得最好的一种体系结构。虽然体系结构选择很重要,但选择正确的损失函数和设置正确的超参数对于最大限度地发挥DNN的性能也至关重要。
您不需要回到LeNet并测试每个构思的架构;您可以使用DeepLabv3+和Tiramisu模型,并对这两个模型执行超参数扫描,以确定哪一个最适合您的应用程序。在未来,架构的创新将提供比Deeplabv3+和Tiramisu更大的好处,就像这些型号在U-Net上的改进一样,而且将会有新的型号进行测试,它们在所有方面都工作得更好。然而,选择架构和训练DNN永远不会有灵丹妙药,最优选择将随着机器学习领域的不断演变。
架构的改变不是在真空中发生的。例如,GPU使更大的网络架构得以培训。-↩
网络的接受场是与输出像素或体素相对应的输入区域。-↩