背景:
Krizhevsky等人的突破是由于在具有100万张训练图像的ImageNet数据集上对具有8层和数百万个参数的大型网络进行监督训练。从那以后,更大更深入的神经网络得到了训练。
卷积网络的典型应用是分类,其中图像的输出是单个标签,在许多视觉任务中,特别是在生物医学图像领域,需要对图像的每个像素分配标签,但是在生物医学任务中,很难获得大量的训练图像。
Ciresan等人,在滑动窗口设置中训练了一个网络,通过以像素周围的局部区域(patch)作为出入来预测每个像素的类标签。
这个网络有两个优点:
1.它可以定位(localize)
2.以patch为单位的训练数据量远大于训练图像的数量。
同时也有两个缺点:
1.很慢,因为网络必须为每个补丁单独运行,并且由于重叠的补丁而存在大量冗余。
2.定位精度和上下文使用间需要权衡:补丁越多,最大池化层越多,定位精度越低;补丁越小,网络看到的上下文越少
本文的创新:
1.构建了 U 型结构,网络架构包括encoder和decoder(论文中称为收缩缩路径(contracting path)和扩展路径(expanding path),实际上就是encoder和decoder),encoder可以有效地捕捉上下文信息,而decoder可以较好地预测位置信息。
2.通过连续的层来补充通常的收缩网络,其中池化算子被上采样算子取代。从而提高了输出的分辨率。为了进行定位,收缩路径中的高分辨率特征与上采样输出相结合。然后,连续的卷积层可以学习根据此信息组装更精确的输出。
3.在上采样部分,feature map的通道数非常大,作者认为这样可以将上下文信息传递到分辨率更高的层当中。
4.仅使用输出的有效部分(在每个外接操作之后,输出图像中的某些像素可能包含有用的信息,而其他像素可能不包含),也就是说只对有效部分进行分割。这样就可以通过Overlap-tile(滑动平铺)的策略对对任意大的图像进行无缝分割。
滑动平铺策略:这种策略通常涉及将一个固定大小的窗口(也称为平滑或滑动窗口)获取图像的图像不同的位置。窗口在图像上滑动或平铺到不同的位置,每次都捕获一个小区域的像素值。这个过程可以帮助在图像中识别物体、边界或其他感兴趣的特征。
5.为了预测图像边界区域的像素,通过镜像输入图像来推断缺失的上下文。
6.由于训练数据太少,采用大量弹性形变的方式增强数据。这可以让模型更好学习形变不变性。这种增强方式对于医学图像来说很重要。
7.在细胞分割任务中的另一个挑战是,如何将同类别的相互接触的目标分开。本文提出了使用一种带权重的损失(weighted loss)。在损失函数中,分割相互接触的细胞像素获得了更大的权重。
网络结构:
收缩路径:
每经过两个3x3conv(没有padding)之后使用ReLU激活函数,然后会跟上一个2x2的max-pooling进行下采样。
扩展路径:
1.使用2x2的deconv来进行上采样,上采样的过程中,通道数减半。然后与收缩路径中分辨率相同的图像进行连接。再进行两次卷积,后面跟上ReLU激活函数。
eg.收缩路径最终为28*2*1024,进行反卷积后得到56*56*512,将对应的收缩路径中64*64*512的图像大小进行裁剪后,将二者进行连接得到56*56*1024的图像,然后再进行两次卷积。
每次上采样,会进行一次反卷积,一次拼接,两次卷积,图片大小扩大一倍,卷积核缩小一倍,特征通道减小一倍
2.最后一层使用1x1的卷积。实际上就是一个二分类操作,把图片变成背景和目标两个类别.
训练:
-
随机梯度下降(SGD):使用随机梯度下降优化算法来训练网络。这是一种常见的神经网络训练方法,其中模型的参数被迭代更新以最小化损失函数。
-
无填充卷积:网络似乎使用没有填充的卷积层。这意味着这些层的输出将比输入小一个常数边框宽度。
-
大输入块:训练策略更倾向于使用大的输入块,而不是使用大批量大小。这个选择可能是为了最大化GPU内存使用并减少开销。
-
高动量(0.99):动量是SGD中的一个超参数。动量值为0.99表示高动量,这意味着当前优化步骤中大部分更新由先前观察到的训练样本决定。这可以帮助训练过程更快地收敛,并在使用较小批量大小时特别有用。
损失函数:
U-Net中使用交叉熵损失函数,作者提出在医学图像分割任务中,使用二元交叉熵损失生成分数交叉熵损失通常是合适的,具体涉及任务是否为二元分类网格分类。
其表达式为
其中:
softmax函数
- x 表示某个像素点在二维平面 的位置。
- k 表示某一个特征通道(类别), k'为索引, K表示类别总数。
- 表示像素点x在通道k处的激活值。这个激活值表示了特征通道k对于输入图像在位置x的响应或激活程度。通道k可能对特定类型的特征或信息(如边缘、纹理等)敏感,因此激活值可以反映出在该位置上这种特定类型的特征的存在程度。
- 表示像素点x是类别k的概率。
-
"wc : Ω → ℝ" 描述了一个函数 wc,其定义域(输入)是 Ω(通常表示像素的空间或图像范围),值域(输出)是实数集合 ℝ。这个函数 wc 通常用于平衡不同类别在图像中的像素频率,以便训练过程更好地处理不平衡的数据。类别出现的频率越高,应该给的权重越低,频率越低则给的权重越高。
在生物医学图像分割中,不同的类别可能在图像中出现的频率不同。例如,一种细胞可能出现得更频繁,而另一种细胞可能更少见。为了确保模型在训练中不会被频繁出现的类别所主导,可以使用 wc 函数来调整损失函数的权重。这将使罕见类别的像素在训练中具有更大的权重,以便网络更好地学习它们。
- 和 是调整参数用的权重。本文w0 = 10 andσ ≈ 5 像素
- d1 : Ω → ℝ 表示到最近细胞边界的距离,d2 : Ω → ℝ 表示到第二近细胞边界的距离
初始化:
标准差为 的高斯分布,N:神经元传入节点的数目
E.g.对于3x3卷积和前一层的64个特征通道,N = 9·64 = 576
数据增强:
数据增强是一种通过对现有数据应用各种变换和扰动来人为地增加训练数据集大小的技术。这有助于神经网络在只有有限数量的训练样本时学习重要的不变性和鲁棒性属性。
对于显微图像,我们主要需要平移和旋转不变性以及对形变和灰度值变化的鲁棒性
本文讨论了如下进行数据增强的方法:
1. 随机弹性变形:该段落强调,随机弹性变形是使用非常少的标注图像训练分割网络的关键概念。弹性变形涉及以平滑和自然的方式扭曲图像,以模拟真实世界的变化。当你只有有限数量的标注图像可供训练时,这种技术尤其有价值。
2. 随机位移向量:为了生成平滑的变形,使用粗糙的3x3网格上的随机位移向量。这些向量表示图像中每个点的位移,并从标准差为10像素的高斯分布中进行采样。这种随机性增加了训练数据的多样性。
3. 双三次插值:使用双三次插值计算每个像素的位移。这种插值方法确保变形被平滑且准确地应用,保持图像的完整性。
4. Drop-out层:一种正则化技术,防止过拟合。
实验:
文章提到了两个实验:
1.在电子显微镜记录中对神经元结构进行分割
2. 光学显微图像中的细胞分割
3. 比较和性能:
1.U-Net 在第一个任务中的性能明显超过其他方法,即使其他算法使用了特定的后处理技术。
2.对于第二个任务,U-Net 达到了显著更高的 IOU 得分(语义分割的评价指标),相比其他算法。
结论:
弹性可变(elastic deformations)数据增强,只需要很少的数据样本就能获得不错的效果。