UNet深入解析

UNet深入解析

概述

因为工作需要,重新深入研究医学影像分割的相关内容。(笔者水平有限,有些翻译不到位,直接附上原文。)

而基于深度学习的医学影像分割一个里程碑式的转折点当属U-Net: Convolutional Networks for Biomedical Image Segmentation.专门用于医学影像分割的卷积神经网络。

创新点

主要的创新点有三点:

  • 使用了弹性变形(elastic deformation)的数据增强方式,更高效的从以标注的训练集中进行特征学习;

  • 两条不同策略的神经网络路径:

    • contracting path: 捕捉上下文(capture context)
    • expansion path: 精准定位(precise localization)
  • 少量训练集,高效率:采用端到端(end-to-end)的训练方式,能够从很小的训练集中使用滑动窗(sliding-window)高效训练。

    Moreover, the network is fast.

UNet设计思路

原有神经网络的局限:

滑动窗的训练策略(Deep neural networks segment neuronal membranes in electron microscopy images(2012)):

  • 训练慢:分别训练每一个patch,且由于patch的重叠训练过程存在大量的冗余(redundancy);
  • 定位精度与上下文的均衡:较大的patch会损失精度,较小的patch又只能获取一小部分context;

改进策略:

  • 改进FNC网络设计UNet网络结构,用重采样(upsampling)代替池化操作(pooling operator);在上采样部分,通过大量的特征通道,将上下文信息传播(propagate)到高分辨率layer当中。
  • 特征学习:对训练集进行数据增强,并采用无监督的特征学习方法。
    • elastic deformation数据增强策略:能够从变形的数据中学习固定特征,不用再消耗多余资源去计算变形系数。

UNet神经网络结构

UNet的来源

如图所示,神经网络结构为U-型结构。

  • 左半边为contracting path(Encoder),是一个传统的卷积神经网络结构,两个3x3卷积层,每个卷积层有一个ReLU激活函数和一个2x2降采样的最大池化。-> 捕捉上下文,进行特征提取与学习。
  • 右半边为expansive path(Decoder)。每一个2x2的卷积(up-convolution),将特征通道的数量减半,与contracting path中相应裁剪的特征图的连接。这一步主要是弥补每一步卷积之后边界丢失的像素值。-> 定位,获取精确的位置信息。
    UNet深入解析_第1张图片

原理解析

Training

  • Soft-max
    p k = e x p ( a k ( x ) ∑ k ′ = 1 K a k ′ ( x ) ) (1) p_k = exp \left( \frac{a_k(\rm x)}{\sum_{k'=1}^{K}a_k'(\rm x)}\right) \tag{1} pk=exp(k=1Kak(x)ak(x))(1)
    a k ( x ) a_k(\rm x) ak(x) 是特征通道 k k k在每个像素位置 x ∈ Ω \rm x\in \Omega xΩ 的activation. K K K是类别, p k ( x ) p_k(\rm x) pk(x) 为最大似然函数。

  • Penalize

    使用 E q . ( 2 ) Eq.(2) Eq.(2)交叉熵惩罚项计算每个位置 p l ( x ) ( x ) p_{l(x)}(x) pl(x)(x)的与1的偏差:
    E = ∑ x ∈ Ω w ( x ) l o g ( p ℓ ( x ) ( x ) ) (2) E=\sum_{{\rm x} \in \Omega} w({\rm x})log(p_{\ell (\rm x)(\rm x)}) \tag {2} E=xΩw(x)log(p(x)(x))(2)
    这里的 ℓ : Ω → 1 , . . . , K \ell:\Omega \rightarrow {1,...,K} :Ω1,...,K是真实标签(Ground truth), w : Ω → R w:\Omega \rightarrow \mathbb{R} w:ΩR 是权重图;

  • 权重图(weight map)
    w ( x ) = w c ( x ) + w 0 ⋅ e x p ( − ( d 1 ( x ) + d 2 ( x ) ) 2 2 σ 2 ) (3) w({\rm x}) = w_c ({\rm x}) + w_0 \cdot exp \left(-\frac{(d_1({\rm x})+d_2({\rm x}))^2}{2\sigma^2} \right ) \tag {3} w(x)=wc(x)+w0exp(2σ2(d1(x)+d2(x))2)(3)
    文章中 w 0 = 10 w_0=10 w0=10 σ ≈ 5 \sigma \approx 5 σ5 pixels.

你可能感兴趣的:(神经网络,深度学习)