跳转至

第11章 人工智能与生物医学图像处理

一、医学人工智能发展历程(Introduction to AI in Medicine)

1.1 医学AI发展时间线

医学人工智能经历了从专家系统到深度学习再到如今大模型的四个发展阶段:

时期 阶段 代表系统 特点
1980–2000 专家系统 MYCIN(血液感染控制)、关幼波肝病诊疗程序 基于规则,知识由专家手工编码
2000–2015 机器学习 数据驱动方法 从数据中学习特征,开始深入探索医疗领域
2015–2017 深度学习 CNN/DL 多细分领域应用 推动医疗AI商业化落地
2018–至今 大模型 GPT、BERT、ChatGPT、DeepSeek 头部医院积极部署大模型

1.2 大模型在医学中的变革

大模型(Large Model)的定义:在海量数据上进行大规模预训练,然后通过指令微调以适应一系列下游任务的人工智能模型,被视为人工智能技术迈向通用智能的里程碑式进展。

两大类型:

类型 英文 定义 特点
通用大模型 General-Purpose Model 跨领域、跨任务的深度学习模型 广泛适用性,可用于各种不同的任务和场景
领域大模型 Domain-Specific Model 针对特定领域的大规模深度学习模型 通用大模型 + 领域知识 + 领域数据

1.3 医疗大模型发展目标

发展目标的核心要点:

  • 数据层面:隐私保护、多源融合、数据治理、数据质控
  • 训练层面:群体学习、多任务学习、自监督学习、领域泛化
  • 模型迁移:模型压缩、迁移学习、高效标注、连续学习、知识蒸馏
  • 验证体系:多模态影像、多组学数据、电子病历、影像报告
  • 总体目标:构建隐私保护、用户友好框架下的大规模分布式医疗通用模型,形成基于医疗多模态大模型的开放共享体系和模型效能综合评测体系,实现高泛化表征学习以及其向下游任务的低成本迁移

二、医学图像处理中的机器学习(Machine Learning in BIP)

2.1 什么是高质量医学图像

医学图像的根本评判标准:是否可诊断(Diagnosable)

人眼评分(Human Grade / Golden Standard)作为金标准。

2.2 特征工程(Feature Engineering)

传统特征工程的评判维度:

特征 含义 高质量 低质量
边缘清晰度(Clear Edge) 组织边界是否锐利
对比度(High Contrast) 组织间灰度差异
信噪比(High SNR) 信号与噪声的比值
运动伪影(Motion Artifact) 是否存在运动模糊

特征工程的局限性:

  • 可解释性强,易于微调
  • 但受限于人类认知、样本量小、无法获取高维特征、存在主观偏差(Subject Bias)

2.3 从特征工程到机器学习

核心转变:从人工定义特征数据驱动的可学习特征(Learned Features)

\[ \text{Score} = \sigma\left(\sum w_i \cdot \text{Feature}_i + b\right) \]

机器学习可以处理的任务类型:

任务 输入 输出
图像质量评估 医学图像 高质量 / 低质量
图像分割 医学图像 像素级标签
图像分类 医学图像 疾病类别

2.4 高维特征与非线性可分

当数据在低维空间中非线性可分时(如异或 XOR 分布),可以通过增加维度将数据映射到高维空间,使其变得线性可分。

核心思想:

  • 原始特征空间中的非线性问题 → 高维空间中的线性问题
  • 例子:在 \((x, y)\) 平面中非线性可分的点,通过增加 \(d = \sqrt{x^2 + y^2}\)(到原点的距离)作为新维度,可以在三维空间中用平面分开

三、神经网络基础(Neural Networks)

3.1 感知机(Perceptron)

  • 历史:第一个学习机器——感知机,1960 年由 Frank Rosenblatt 在 Cornell 大学建造
  • 本质:在简单特征提取器之上的线性分类器
  • 限制:需要专家人工设计特征提取器

决策函数:

\[ y = \text{sign}\left(\sum_{i=1}^{N} W_i F_i(X) + b\right) \]

其中 \(F_i(X)\) 是由专家设计的特征提取函数。

3.2 神经网络动机

  • 模式类的统计特性往往是未知的,但可以通过训练直接获得并生成所需的决策函数
  • 神经网络:大量基本非线性计算单元(神经元)以类似大脑中相互连接的神经元的方式组织成网络结构

3.3 感知机的向量化表示与训练算法

\(\boldsymbol{y} = \{x_1, x_2, \cdots, x_n, 1\}^T\)\(\boldsymbol{w} = \{w_1, w_2, \cdots, w_n, w_{n+1}\}^T\),则决策函数:

\[ d(\boldsymbol{y}) = \sum_{i=1}^{n+1} w_i x_i = \boldsymbol{w}^T \boldsymbol{y} \]

线性可分类的训练算法

  • 理想情况:若 \(\boldsymbol{y} \in C_1\)\(\boldsymbol{w}^T\boldsymbol{y}(k) > 0\);若 \(\boldsymbol{y} \in C_2\)\(\boldsymbol{w}^T\boldsymbol{y}(k) < 0\)
  • 更新规则

  • \(\boldsymbol{y} \in C_1\)\(\boldsymbol{w}^T\boldsymbol{y} \leq 0\),则 \(\boldsymbol{w}(k+1) = \boldsymbol{w}(k) + \alpha \boldsymbol{y}\)

  • \(\boldsymbol{y} \in C_2\)\(\boldsymbol{w}^T\boldsymbol{y} \geq 0\),则 \(\boldsymbol{w}(k+1) = \boldsymbol{w}(k) - \alpha \boldsymbol{y}\)

  • 否则 \(\boldsymbol{w}(k)\) 保持不变

  • 当整个训练集的两类样本循环通过机器而没有任何错误时,算法收敛

3.4 单层感知机的局限——XOR 问题

单层感知机是线性分类器,无法解决 XOR 等非线性可分问题。

XOR 定义\(f^*(\boldsymbol{x}) = 1\)\(x_1 \neq x_2\),否则 \(f^*(\boldsymbol{x}) = 0\)

\(x_1\) \(x_2\) \(y\)
0 0 0
0 1 1
1 0 1
1 1 0

使用线性回归模型 \(f(\boldsymbol{x}; \boldsymbol{w}, b) = \boldsymbol{x}^T\boldsymbol{w} + b\) 和 L2 损失函数,求解得 \(\boldsymbol{w} = \boldsymbol{0}, b = 1/2\)\(\hat{y} \equiv 1/2\)——完全不工作

3.5 引入隐藏层

\[ \begin{aligned} \boldsymbol{h} &= f_1(\boldsymbol{x}; \boldsymbol{w}, \boldsymbol{b}) \\ y &= f_2(\boldsymbol{h}, \boldsymbol{w}) \end{aligned} \]

其中 \(f_1\)非线性激活函数,如 ReLU(Rectified Linear Unit):

\[ f_1(x) = \max\{0, x\} \]

XOR 问题的 MLP 解决方案:

\[ y = \boldsymbol{m}^T \max\{0, \boldsymbol{w}^T\boldsymbol{x} + \boldsymbol{b}\} + c \]

具体参数:

\[ y = \begin{bmatrix} 1 & -2 \end{bmatrix}^T \max\left\{ 0, \begin{bmatrix} 1 & 1 \\ 1 & 1 \end{bmatrix} \boldsymbol{x} + \begin{bmatrix} 0 \\ -1 \end{bmatrix} \right\} \]

经计算验证,输出为 \((0, 1, 1, 0)^T\),正确实现了 XOR。

3.6 多层感知机(Multi-Layer Perceptron, MLP)

架构属性

属性 说明
层内连接 (同层神经元之间无连接)
输入-输出直连 (输入层与输出层之间无直接连接)
层间连接 全连接(相邻层之间所有神经元两两相连)
Width 每层神经元数量
Depth 层数

通用近似定理(Universal Approximation Theorem)

具有单个隐藏层且包含有限数量神经元的前馈网络(MLP),在激活函数的温和假设下,可以逼近 \(\mathbb{R}^n\) 紧致子集上的连续函数

3.7 激活函数(Activation Functions)

激活函数必须是可微分的,以便使用梯度下降进行训练。

常见激活函数:

激活函数 公式 特点
Sigmoid \(\sigma(x) = \frac{1}{1 + e^{-x}}\) 输出 (0,1),易饱和
Tanh \(\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}\) 输出 (-1,1),零中心
ReLU \(f(x) = \max(0, x)\) 稀疏激活,缓解梯度消失
Leaky ReLU \(f(x) = \max(\alpha x, x)\) 解决"死神经元"问题

3.8 反向传播算法(Back Propagation, BP)

3.8.1 代价函数

对于单样本 \((\boldsymbol{x}, y)\)

\[ J(\boldsymbol{W}, \boldsymbol{b}; \boldsymbol{x}, y) = \frac{1}{2} \| \boldsymbol{h}_{\boldsymbol{W},\boldsymbol{b}}(\boldsymbol{x}) - y \|^2 \]

对整个训练集(含 \(m\) 个样本)加上权重衰减正则化

\[ \begin{aligned} J(\boldsymbol{W}, \boldsymbol{b}) &= \frac{1}{m} \sum_{i=1}^{m} J(\boldsymbol{W}, \boldsymbol{b}; \boldsymbol{x}^{(i)}, y^{(i)}) + \frac{\lambda}{2} \sum_{l=1}^{n_l-1} \sum_{i=1}^{s_l} \sum_{j=1}^{s_{l+1}} (W_{ji}^{(l)})^2 \\[4pt] &= \frac{1}{m} \sum_{i=1}^{m} \frac{1}{2} \| \boldsymbol{h}_{\boldsymbol{W},\boldsymbol{b}}(\boldsymbol{x}^{(l)}) - y \|^2 + \frac{\lambda}{2} \sum_{l=1}^{n_l-1} \sum_{i=1}^{s_l} \sum_{j=1}^{s_{l+1}} (W_{ji}^{(l)})^2 \end{aligned} \]
  • 第一项:均方误差项(Mean Square Error)
  • 第二项:正则化项(Regularization),减小权重幅度,防止过拟合

3.8.2 BP 算法流程

1.参数随机初始化

2.前向传播:计算 \(L_2, L_3, \ldots, L_{n_l}\) 各层的输出值

3.计算输出层残差\(n_l\) 层第 \(i\) 个单元):

\[ \delta_i^{(n_l)} = \frac{\partial}{\partial z_i^{(n_l)}} J(\boldsymbol{W}, \boldsymbol{b}; \boldsymbol{x}, y) = -(y - a_i^{(n_l)}) \cdot f'(z_i^{(n_l)}) \]

其中 \(\boldsymbol{h}_{\boldsymbol{W},\boldsymbol{b}}(\boldsymbol{x}) = a_i^{(n_l)} = f(z_i^{(n_l)})\)

4. 逐层回传残差(对 \(l = n_l-1, n_l-2, \ldots, 2\)):

\[ \delta_i^{(l)} = f'(z_i^{(l)}) \cdot \sum_j \left( W_{ji}^{(l)} \cdot \delta_j^{(l+1)} \right) \]

即第 \(l\) 层的残差 = 激活函数的导数 × 第 \(l+1\) 层残差的加权和(反向传播)。

5. 计算偏导数

\[ \frac{\partial}{\partial W_{ij}^{(l)}} J(\boldsymbol{W}, \boldsymbol{b}; \boldsymbol{x}, y) = \delta_i^{(l+1)} \cdot a_j^{(l)} \]
\[ \frac{\partial}{\partial b_i^{(l)}} J(\boldsymbol{W}, \boldsymbol{b}; \boldsymbol{x}, y) = \delta_i^{(l+1)} \]

6. 参数更新(梯度下降):

\[ W_{ij}^{(l)} := W_{ij}^{(l)} - \alpha \left[ \frac{1}{m} \sum a_j^{(l)} \delta_i^{(l+1)} + \lambda W_{ij}^{(l)} \right] \]
\[ b_i^{(l)} := b_i^{(l)} - \alpha \cdot \frac{1}{m} \sum \delta_i^{(l+1)} \]

3.9 梯度下降变体

方法 批量大小 特点
Batch GD 全部样本 内存和计算代价极高
Mini-batch GD 40, 256… 快速收敛,最常用
SGD 1 在深度学习中 SGD ≈ Mini-batch GD

学习率衰减策略

策略 公式
阶梯衰减(Step Decay) \(\eta_{t+k} = \lambda \eta_t\)(如 \(k=20\), \(\lambda=0.1\)
指数衰减(Exponential Decay) \(\eta_t = \eta_0 e^{-kt}\)
\(1/t\) 衰减 \(\eta_t = \frac{\eta_0}{1 + kt}\)

SGD + 动量(Momentum)

\[ \begin{aligned} \boldsymbol{v}_t &= \gamma \boldsymbol{v}_{t-1} + \eta \nabla_{\boldsymbol{\theta}} J(\boldsymbol{\theta}) \\ \boldsymbol{\theta} &:= \boldsymbol{\theta} - \boldsymbol{v}_t \end{aligned} \]

四、卷积神经网络(Convolutional Neural Network, CNN)

4.1 为什么需要 CNN

全连接网络处理图像的问题——以 \(200 \times 200\) 图像为例:

连接方式 参数量
全连接,400,000 隐藏单元 160 亿参数
局部连接,400,000 隐藏单元,\(10 \times 10\) 感受野 4000 万参数

局部连接可以捕获局部依赖性(Local Dependencies),大幅减少参数量。

4.2 CNN 的三大设计原则

原则 英文 含义
原则 1 Some patterns are much smaller than the whole image 关键模式远小于整张图像 → 用小卷积核
原则 2 The same patterns appear in different regions 同一模式可出现在不同位置 → 共享权重(Shared Weights)
原则 3 Subsampling the pixels will not change the object 下采样不改变物体语义 → 池化(Pooling)

4.3 CNN 基本结构

典型 CNN 流水线:

输入图像 → 卷积(Conv) → 池化(Pooling) → 卷积(Conv) → 池化(Pooling) → ... → Flatten → 全连接(FC) → 输出

4.4 卷积运算(Convolution)

卷积核(Filter/Kernel) 在输入图像上滑动,计算局部区域的加权和。

  • 每个卷积核负责检测一种局部模式(边缘、纹理等)
  • 权值共享:同一个卷积核在整个图像上使用相同的权重 → 大幅减少参数
  • 步长(Stride):卷积核每次移动的像素数
  • 输出尺寸公式:\(\text{output\_size} = \frac{\text{input\_size} - \text{kernel\_size} + 2 \times \text{padding}}{\text{stride}} + 1\)

权值共享与全连接的对比

在全连接中,每个输入-输出连接都有独立的权重;在卷积中,同一个滤波器在图像的所有位置共享相同的权重——这就是为什么 CNN 的参数量远小于全连接网络。

4.5 零填充(Zero Padding)

在输入图像的边缘填充零值像素,使输出特征图保持与输入相同的大小。

  • 有效卷积(Valid):无填充,输出尺寸 < 输入尺寸
  • 相同卷积(Same):填充使输出尺寸 = 输入尺寸

4.6 矩阵运算优化(im2col)

为提高计算效率,卷积运算通常转化为矩阵乘法:

  1. 将输入图像的各 patch 展平为列向量 → 构成输入矩阵
  2. 将卷积核展平为行向量 → 构成核矩阵
  3. 卷积 = 核矩阵 × 输入矩阵(一次矩阵乘法完成所有位置的卷积)

这种方法称为 im2col(Image to Column)。

4.7 感受野(Receptive Field)

感受野:某一层特征图上一个像素点映射回原始输入图像的区域大小。

类型 说明
局部感受野(Local Receptive Field) 相邻两层之间的直接对应区域
全局感受野(Global Receptive Field) 当前层映射回输入层的累加区域

实际中我们关注的是全局感受野。例如:

  • 第 1 层:局部/全局感受野 = \(3 \times 3\)
  • 第 2 层:局部感受野 = \(3 \times 3\),全局感受野 = \(5 \times 5\)

深层网络中的高层特征具有更大的全局感受野,能捕获更大的图像上下文。

4.8 池化(Pooling)

池化是对特征图进行下采样的运算,通常添加在卷积层之后。

常见池化类型

类型 操作 特点
最大池化(Max Pooling) 取池化窗口内的最大值 保留最显著特征,最常用
平均池化(Average Pooling) 取池化窗口内的平均值 平滑,信息保留更均匀
中位数池化(Median Pooling) 取窗口内中位数 抗噪声
随机池化(Random Pooling) 按概率随机采样 正则化效果
全局池化(Global Pooling) 对整个特征图池化 → 单个值 替代 Flatten,减少过拟合

池化的三大优势

  1. 特征不变性(Feature Invariance):小的平移/旋转不影响池化输出
  2. 特征降维(Feature Dimension Reduction):减少计算量
  3. 防止过拟合:降低模型复杂度

4.9 平移不变性(Translation Invariance)

平移不变性是 CNN 最重要的特性之一:指 CNN 对输入图像中物体的位置平移不敏感——无论物体出现在图像的哪个位置,CNN 都能识别出相同的特征。

平移不变性来源于 CNN 的两个核心机制:

1. 卷积的权值共享 → 特征检测的位置无关性

由于同一个卷积核在整张图像上滑动,使用相同的权重检测相同的局部模式,无论该模式出现在左上角还是右下角,卷积核都会产生相同的响应。这保证了特征检测的位置无关性

2. 池化的局部平移不变性

池化操作(尤其是最大池化)通过下采样实现局部平移不变:即使输入有 1–2 个像素的平移,池化窗口内的最大值位置可能不变,输出完全一致。池化丢弃了特征的精确位置信息,只保留"该特征是否存在"的信息。

平移等变性 vs 平移不变性

概念 英文 含义 具有此性质的组件
平移等变性 Translation Equivariance 输入平移 → 输出也相应平移 卷积层
平移不变性 Translation Invariance 输入平移 → 输出保持不变 池化层(逐步实现)

关键理解:CNN 的平移不变性是逐层累积的:

  • 卷积层保持平移等变性——位置信息仍在特征图中
  • 池化层逐步将等变性转化为不变性
  • 多个 Conv + Pool 的堆叠使深层特征具有越来越强的平移不变性

常见误区——平移不变性 ≠ 全连接层的作用

全连接层不具备平移不变性——每个输入神经元有独立的权重,FC 层对输入位置高度敏感。实际上,移除全连接层(使用全卷积网络)反而可以保留空间定位能力,这正是 UNet 等分割网络的设计理念。

与医学图像的关系:在医学图像中,器官和病变可能因患者体位、扫描参数不同而出现在图像的不同位置。CNN 的平移不变性使网络能鲁棒地处理位置变化,无需精确对齐即可识别病变。

4.10 Flatten

将池化后的多维特征图展平为一维向量,以便输入全连接层进行分类。

4.11 CNN 的训练

CNN 的训练并无特殊之处——同样使用梯度下降:

  1. Step 1:定义函数集合(网络结构)
  2. Step 2:定义损失函数(评估函数好坏)
  3. Step 3:选择最佳函数(梯度下降优化)

4.12 需要考虑的问题

问题 说明
网络容量(Capacity) 层数、每层神经元数——需要与任务复杂度匹配
激活函数选择 ReLU 及其变体是默认选择
过拟合(Overfitting) 使用正则化、Dropout、数据增强
训练速度 选择合适的优化器和学习率策略
数据增强(Augmentation) 旋转、翻转、缩放、裁剪等扩充训练集

4.13 CNN 在 3D 医学图像中的应用

医学图像通常是 3D 体数据(如 MRI、CT),需要使用 3D CNN

  • 3D Patch:以 3D 小块作为输入
  • 归一化
  • MRI:z-score 归一化
  • CT:HU 值归一化(Hounsfield Unit)
  • 3D 模型在分类、分割等任务中应用广泛

五、经典网络架构

5.1 LeNet(1998)

  • Yann LeCun 提出,最早的 CNN 之一
  • 用于手写数字识别(MNIST)
  • 定义了 Conv → Pooling → Conv → Pooling → FC 的基本范式

5.2 AlexNet(2012)

  • Geoffrey Hinton 及其学生 Alex Krizhevsky 在 ILSVRC 2012 竞赛中打破图像分类记录
  • 主要创新:
创新 说明
ReLU 激活函数 替代 Sigmoid/Tanh,缓解梯度消失
Dropout 以 0.5 概率将隐藏神经元输出置零——被 "drop out" 的神经元不参与前向传播和反向传播,有效防止过拟合
数据增强 图像平移、水平翻转、PCA 颜色增强
双 GPU 训练 加快训练速度
重叠最大池化 避免平均池化的模糊效应
LRN 层 局部响应归一化,增强模型泛化能力

双 GPU 训练使 top-1 和 top-5 错误率分别降低了 1.7% 和 1.2%。

5.3 VGG(2015)

  • Visual Geometry Group (Oxford) 提出,分为 VGG16 和 VGG19
  • 相比 AlexNet 的优势:
改进 说明
更深的网络 16(VGG16)或 19(VGG19)个卷积层
统一的小卷积核 所有卷积核统一为 \(3 \times 3\)
堆叠小卷积核 两个 \(3 \times 3\) 卷积等价于一个 \(5 \times 5\) 的感受野,但参数更少、非线性更强

堆叠小卷积核的优势:以更低的代价增加网络深度,确保学习到更复杂的模式。

5.4 ResNet(残差网络)

核心问题:网络越深越好吗?——梯度消失/爆炸导致深层网络退化。

残差学习

关键思想:学习残差 \(\mathcal{F}(\boldsymbol{x}) = \mathcal{H}(\boldsymbol{x}) - \boldsymbol{x}\),而非直接学习目标映射 \(\mathcal{H}(\boldsymbol{x})\)

\[ \begin{aligned} \boldsymbol{y}_l &= h(\boldsymbol{x}_l) + \mathcal{F}(\boldsymbol{x}_l, \boldsymbol{W}_l) \\ \boldsymbol{x}_{l+1} &= f(\boldsymbol{y}_l) \end{aligned} \]

其中:

\(\mathcal{F}\)​:残差函数(Residual Function)

\(h\)​:恒等映射(Identity Mapping)

\(f\):激活函数

当残差为 0 时,堆叠层仅做恒等映射,网络性能不会退化;实际上残差不为 0,堆叠层会在输入特征基础上学习新的特征

ResNet 的贡献

  • 大幅增加网络层数(ResNet34, ResNet50, ResNet101, ResNet152)
  • 解决梯度消失问题
  • 提高模型精度

5.5 UNet

5.5.1 背景与动机

UNet 由 Ronneberger, Fischer & Brox 在 2015 年 MICCAI 会议上提出(论文:U-Net: Convolutional Networks for Biomedical Image Segmentation),是医学图像分割领域影响力最大的网络架构,截至 2026 年引用量已超过 70,000 次。

提出的动机

传统的分类 CNN(如 AlexNet、VGG)输出的是整张图像的类别标签,而医学图像分析中更常见的需求是像素级的分割——即对图像中每一个像素判断它属于哪个组织/器官/病变。此外,医学图像数据集通常标注样本极少(几十到几百张),需要在有限数据下实现高精度分割。UNet 正是为解决这两大挑战而设计的。

5.5.2 整体架构——U 形对称结构

UNet 的整体架构形如字母 "U",由三部分组成:

输入图像 ──────────────────────────────────────────→ 输出分割掩膜
    │                                                    ↑
    ▼                                                    │
  编码器(Contracting Path)                          解码器(Expanding Path)
    │                                                    ↑
    ├─ [Conv3×3×2 + ReLU + MaxPool2×2] × 4 ──┐          │
    │                     │                   │          │
    │                     └─── Skip ──────────┼──→ [UpConv2×2 + Concat + Conv3×3×2 + ReLU] × 4
    │                                         │          │
    └──────────────→ Bottleneck ──────────────┘──────────┘
组成部分 英文名称 功能
编码器(收缩路径) Contracting Path / Encoder 逐层提取特征,空间分辨率逐步降低,通道数逐步增加
瓶颈层 Bottleneck 最深层的特征表示——空间尺寸最小(\(32 \times 32\)),通道数最多(\(1024\)),语义信息最丰富
解码器(扩张路径) Expanding Path / Decoder 逐层恢复空间分辨率,通道数逐步减少,最终输出像素级预测
跳跃连接 Skip Connection 将编码器第 \(l\) 层的特征图直接复制并拼接到解码器的对应层

5.5.3 编码器(Contracting Path)——特征提取

编码器的设计遵循典型的 CNN 结构,每一层包含:

  1. 两个 \(3 \times 3\) 卷积(Valid Convolution,无填充),每个卷积后接 ReLU 激活
  2. 一个 \(2 \times 2\) 最大池化(步长为 2),将特征图尺寸减半

编码器共 4 次下采样

层级 操作 特征图尺寸(以 \(572 \times 572\) 输入为例) 通道数
输入 \(572 \times 572\) 1(灰度图)
Encoder 1 Conv3×3 ×2 + ReLU → MaxPool2×2 \(568 \to 284\) \(1 \to 64\)
Encoder 2 Conv3×3 ×2 + ReLU → MaxPool2×2 \(280 \to 140\) \(64 \to 128\)
Encoder 3 Conv3×3 ×2 + ReLU → MaxPool2×2 \(136 \to 68\) \(128 \to 256\)
Encoder 4 Conv3×3 ×2 + ReLU → MaxPool2×2 \(64 \to 32\) \(256 \to 512\)
Bottleneck Conv3×3 ×2 + ReLU \(32\) \(512 \to 1024\)

每次下采样操作:特征图尺寸减半,但通道数翻倍——这是 CNN 设计的经典模式:空间信息压缩,语义信息浓缩

5.5.4 瓶颈层(Bottleneck)

瓶颈层是编码器和解码器的交汇处:

  • 空间尺寸达到最小(原图的 \(1/16\)
  • 通道数达到最大\(1024\)
  • 这一层的每个像素具有极大的全局感受野,可以"看到"输入图像的很大区域
  • 此处的特征表示包含了最高级别的语义抽象——"这个区域是肝脏"、"这是肿瘤"

瓶颈层仅做两个 \(3 \times 3\) 卷积(不再下采样),保持特征图尺寸不变。

5.5.5 解码器(Expanding Path)——分辨率恢复

解码器的任务是从压缩的语义特征恢复出与输入同尺寸的分割掩膜。每一层包含:

  1. \(2 \times 2\) 转置卷积(Transposed Convolution / Up-Convolution):将特征图尺寸放大 2 倍,通道数减半
  2. 跳跃连接拼接(Skip Connection Concatenation):将对应编码器层的特征图沿通道维度拼接
  3. 两个 \(3 \times 3\) 卷积 + ReLU:融合拼接后的特征

解码器共 4 次上采样,每次将特征图尺寸加倍:

层级 操作 特征图尺寸 通道数
Decoder 4 UpConv2×2 + Concat(E4) + Conv3×3 ×2 \(32 \to 56\) \(1024 \to 512\)
Decoder 3 UpConv2×2 + Concat(E3) + Conv3×3 ×2 \(56 \to 104\) \(512 \to 256\)
Decoder 2 UpConv2×2 + Concat(E2) + Conv3×3 ×2 \(104 \to 200\) \(256 \to 128\)
Decoder 1 UpConv2×2 + Concat(E1) + Conv3×3 ×2 \(200 \to 392\) \(128 \to 64\)
输出 Conv1×1 \(388\) \(64 \to N_{class}\)

上采样方式:原始 UNet 使用转置卷积(学得的参数化上采样);后续变体也常用双线性插值 + 普通卷积的组合。

5.5.6 跳跃连接(Skip Connection)——UNet 最核心的设计

跳跃连接是 UNet 区别于普通编码器-解码器(如 SegNet)的关键创新,也是其在医学图像分割中表现卓越的根本原因。

操作方式

将编码器第 \(l\) 层的特征图完整复制,并与解码器对应层上采样后的特征图沿通道维度拼接(Concatenate)

\[ \text{Decoder\_input}_l = \text{Concat}\left(\text{UpConv}(\text{Decoder}_{l+1}),\; \text{Encoder}_l\right) \]

为什么是拼接而非相加?

融合方式 代表模型 特点
拼接(Concatenation) UNet 保留两路特征的独立性,后续卷积层可以学习如何最优地融合——哪些特征来自编码器,哪些来自解码器
逐元素相加(Element-wise Addition) ResNet, FCN 假设两路特征在同一特征空间中,直接将它们叠加——但编码器和解码器的特征性质差异很大,直接相加可能损失信息

UNet 的拼接策略使得解码器可以选择性利用跳跃连接传递的低级特征和解码器自身的高级特征,融合更加灵活。

跳跃连接的四大作用

  1. 融合低级空间信息与高级语义信息
信息类型 来源 包含的内容
低级空间信息 编码器浅层 精确的边缘方向、边界位置、细小结构(如血管末梢)
高级语义信息 瓶颈层 + 解码器深层 "这一大片区域是肝脏"、"这些像素属于肿瘤"

在编码器深层,感受野已经非常大了,网络有很强的语义判别能力,但由于多次池化,空间位置已经非常模糊。编码器浅层相反——感受野很小(\(3 \times 3 \sim 5 \times 5\)),网络的空间定位能力极强(知道边界的确切位置),但语义判别能力很弱(不知道"这是哪种组织的边界")。

跳跃连接将两者拼接,解码器就可以同时知道"是什么"和"在哪里",实现精确的分割边界。

  1. 补偿下采样造成的信息损失

  2. 4 次 \(2 \times 2\) 池化使空间分辨率下降 16 倍

  3. 每个池化操作丢弃了 75% 的空间信息(\(2 \times 2\) 窗口只保留一个值)
  4. 仅靠上采样(插值或转置卷积)是无法完全恢复这些被丢弃的细节
  5. 跳跃连接提供了"旁路通道",将未被池化的原始低级特征直接传给解码器——绕过了信息瓶颈

  6. 改善梯度流动,缓解深层网络训练困难

  7. UNet 共 23 个卷积层,属于深层网络

  8. 反向传播时,梯度从输出层逐层回传,经过 23 层后可能衰减到几乎为零(梯度消失
  9. 跳跃连接为梯度提供了一条直接流向编码器浅层的捷径(Shortcut)
  10. 这使得编码器的浅层也能获得足够强的训练信号——类似于 ResNet 中残差连接的梯度流动作用,但 UNet 的跳跃是跨整个网络的,跨度更大
\[ \frac{\partial L}{\partial \theta_{\text{encoder}}} = \underbrace{\frac{\partial L}{\partial \text{output}} \cdot \frac{\partial \text{output}}{\partial \text{decoder}} \cdot \frac{\partial \text{decoder}}{\partial \text{skip}}}_{\text{经解码器的长路径}} + \underbrace{\frac{\partial L}{\partial \text{output}} \cdot \frac{\partial \text{output}}{\partial \text{skip}}}_{\text{经跳跃连接的短路径}} \]

短路径的存在保证了编码器浅层参数的梯度不会因路径过长而消失。

  1. 多尺度特征融合
层级 编码器跳跃连接传递的信息 解码器对应层处理的内容
Encoder 1 → Decoder 1 最细粒度的边缘/纹理 与深层语义融合,恢复最精确的边界
Encoder 2 → Decoder 2 局部形状、中等纹理 恢复器官的大致轮廓
Encoder 3 → Decoder 3 区域级特征 确定器官的大致位置
Encoder 4 → Decoder 4 较抽象的局部语义 与瓶颈层的全局语义协调

解码器因此可以同时感知从最精细到最粗糙的多个尺度的信息,实现多尺度分析。

5.5.7 损失函数

UNet 常用的损失函数:

1. 交叉熵损失(Cross-Entropy Loss)

对于 \(C\) 类分割任务,逐像素计算:

\[ \mathcal{L}_{\text{CE}} = -\frac{1}{N} \sum_{i=1}^{N} \sum_{c=1}^{C} y_{i,c} \log \hat{y}_{i,c} \]

其中 \(y_{i,c} \in \{0, 1\}\) 是像素 \(i\) 属于类别 \(c\) 的真实标签(one-hot),\(\hat{y}_{i,c}\) 是网络输出的 Softmax 概率。

问题:医学图像中常存在严重的类别不平衡(如肿瘤像素仅占整张图的 1%),模型会倾向于将所有像素预测为背景。

2. Dice 损失(Dice Loss)

基于 Dice 相似系数(Dice Similarity Coefficient, DSC):

\[ \text{Dice} = \frac{2 |A \cap B|}{|A| + |B|} \]

Dice 损失:

\[ \mathcal{L}_{\text{Dice}} = 1 - \frac{2 \sum_{i} y_i \hat{y}_i}{\sum_{i} y_i + \sum_{i} \hat{y}_i} \]

优势:Dice 损失直接优化分割质量指标,对类别不平衡不敏感——因为它在计算时对前景和背景做了等权处理(Dice 衡量的是重叠度,而非像素级准确率)。

3. 组合损失(Combined Loss)

实践中常将两者结合:

\[ \mathcal{L} = \mathcal{L}_{\text{CE}} + \mathcal{L}_{\text{Dice}} \]

交叉熵保证训练稳定性,Dice 损失处理类别不平衡。这已成为许多医学图像分割任务的默认损失配置

V-Net 的贡献(Milletari et al., 2016):将 UNet 扩展到 3D,并首次提出用 Dice 损失替换交叉熵,在类别严重不平衡的前列腺 MRI 分割中取得显著提升。

5.5.8 UNet 成功的原因总结

原因 说明
对称的编码器-解码器结构 天然的像素级密集预测架构——输入图像,输出等大的分割掩膜
跳跃连接 弥补下采样造成的信息损失,融合低级空间精度与高级语义理解
全卷积设计 没有全连接层,理论上可处理任意尺寸的输入图像(实际受限于拼接时尺寸匹配)
数据效率高 跳跃连接减少了网络需要从头学习的参数——低级的边缘/纹理特征被直接传递给解码器,而非从噪声中重新学习。在标注样本极少(几十张)的医学图像任务中,这种设计尤为重要
端到端训练 输入原始图像,直接输出分割掩膜——无需手工设计特征或后处理步骤
易于扩展 架构灵活,可通过替换骨干(如 VGG → ResNet)、添加注意力机制、修改跳跃连接方式等衍生出大量变体

5.5.9 UNet 变体

维度 网络名称 特点
2D UNet(Ronneberger et al., 2015) 经典 U 形结构,\(3 \times 3\) Valid Convolution
3D 3D-UNet(Çiçek et al., 2016) 将 2D 卷积替换为 3D 卷积,适用于 CT/MRI 体数据
3D V-Net(Milletari et al., 2016) 引入残差连接 + Dice 损失函数
2D/3D Attention UNet(Oktay et al., 2018) 在跳跃连接前加入注意力门(Attention Gate),让网络自动学习关注相关区域,抑制无关背景
2D UNet++(Zhou et al., 2018) 嵌套的密集跳跃连接,通过深度监督实现可灵活剪枝的架构
2D/3D nnUNet(Isensee et al., 2021) 自动化 UNet 配置——根据数据集特性自动调整预处理、网络结构、后处理,无需人工调参,成为医学图像分割的事实标准基准(De Facto Standard)

5.5.10 与分类 CNN 的本质区别

维度 传统分类 CNN(AlexNet, VGG) UNet
网络形状 单塔形(仅编码器) U 形(编码器 + 解码器对称)
输出类型 图像级标签(\(1 \times 1 \times C\) 像素级分割掩膜(\(H \times W \times C\)
编码器 有,以分类为导向 有,以特征提取和复用为导向
解码器 无(Flatten 后直接 FC) 有(上采样恢复分辨率)
跳跃连接 无(ResNet 有残差连接但局限于残差块内) 核心设计——编码器→解码器跨层直连
全连接层 有(分类头) (全卷积,用 \(1 \times 1\) 卷积产生输出)
输入尺寸 固定(FC 层要求固定维度) 灵活(全卷积,理论上任意尺寸)
适用任务 图像分类 图像分割、去噪、重建、合成


六、注意力机制(Attention)

6.1 注意力机制的直觉

源于人类视觉系统——大脑不会同时处理整个视野,而是选择性地关注最本质的特征

在深度学习中的含义:以灵活的方式利用输入中最相关的部分,相关性越高的部分获得越高的注意力权重

6.2 硬注意力与软注意力

类型 特点 实现
硬注意力(Hard Attention) 选择特定区域,不可微 LSTM + 注意力
软注意力(Soft Attention) 对所有区域加权,可微 SE Block, CBAM 等

6.3 通道注意力——SE Block(Squeeze-and-Excitation Block)

核心思想:让网络自动学习每个特征通道的重要性

两步操作

Squeeze(压缩):对每个通道做全局平均池化,将 \(H \times W\) 的特征图压缩为单个值: $$ F_{sq} = \frac{1}{HW} \sum_{h=1}^{H} \sum_{w=1}^{W} u_{h,w} = z_c $$

Excitation(激发):通过一个瓶颈结构(Bottleneck)学习通道权重: $$ F_{ex} = \sigma\left(W_2 \delta(W_1 z_c)\right) = s_c $$

其中 \(\delta\) 为 ReLU,\(\sigma\) 为 Sigmoid,Bottleneck 压缩比为 \(r\)

最终,将原始特征图按通道加权:

\[ \tilde{X} = s_c \cdot u_c \]

6.4 空间注意力——BAM(Bottleneck Attention Module)

空间维度上计算注意力,关注"在哪里"很重要:

\[ \boldsymbol{M}_s = BN(f_1^{1\times1} f_3^{3\times3} f_3^{3\times3} f_1^{1\times1}(\boldsymbol{F})) \]
\[ \boldsymbol{M}(\boldsymbol{F}) = \sigma(\boldsymbol{M}_c + \boldsymbol{M}_s) \]

其中 \(\boldsymbol{M}_c\) 为通道注意力,\(\boldsymbol{M}_s\) 为空间注意力。

6.5 通道与空间联合注意力——CBAM

CBAM(Convolutional Block Attention Module) 串联通道注意力和空间注意力:

通道注意力

\[ \boldsymbol{M}_c = \sigma\left(MLP(Ave(\boldsymbol{F})) + MLP(Max(\boldsymbol{F}))\right) \]

空间注意力

\[ \boldsymbol{M}_s = \sigma\left(f^{7\times7}\left([Ave(\boldsymbol{F}); Max(\boldsymbol{F})]\right)\right) \]

CBAM 即插即用,可嵌入任何 CNN 架构。

6.6 Transformer —— "Attention is All You Need"

Vaswani et al., 2017 提出的革命性架构,完全基于注意力机制,不含任何卷积或循环结构。

6.6.1 缩放点积注意力(Scaled Dot-Product Attention)

\[ \text{Attention}(\boldsymbol{Q}, \boldsymbol{K}, \boldsymbol{V}) = \text{softmax}\left(\frac{\boldsymbol{Q}\boldsymbol{K}^T}{\sqrt{d_k}}\right) \boldsymbol{V} \]
  • \(\boldsymbol{Q}\)(Query):查询向量——"我在找什么?"
  • \(\boldsymbol{K}\)(Key):键向量——"我有什么?"
  • \(\boldsymbol{V}\)(Value):值向量——"我的内容是什么?"
  • \(\sqrt{d_k}\):缩放因子,防止点积过大导致 softmax 梯度消失
  • Self-Attention\(\boldsymbol{Q}, \boldsymbol{K}, \boldsymbol{V}\) 来自同一输入

6.6.2 多头注意力(Multi-Head Attention)

\(\boldsymbol{Q}, \boldsymbol{K}, \boldsymbol{V}\) 通过 \(h\) 组不同的线性投影,并行计算 \(h\) 次注意力,最后拼接:

\[ \text{MultiHead}(\boldsymbol{Q}, \boldsymbol{K}, \boldsymbol{V}) = \text{Concat}(\text{head}_1, \ldots, \text{head}_h) \boldsymbol{W}^O \]
\[ \text{head}_i = \text{Attention}(\boldsymbol{Q}\boldsymbol{W}_i^Q, \boldsymbol{K}\boldsymbol{W}_i^K, \boldsymbol{V}\boldsymbol{W}_i^V) \]

多头机制允许模型同时关注不同表示子空间的信息

6.6.3 ViT(Vision Transformer)

将 Transformer 应用于图像的里程碑式工作:

  1. Patch Embedding:将 \([224, 224, 3]\) 图像切分为 \(14 \times 14\)\(16 \times 16\) 的 patch → 投影到 \(768\) 维 → \([196, 768]\)
  2. 添加分类 Token:可学习的 \([class] \text{token}\) 拼接 → \([197, 768]\)
  3. 添加位置编码\([197, 768] \to [768]\)(保持维度信息)
  4. Transformer Encoder:N 层交替的多头注意力 + MLP

6.7 Transformer 在医学图像中的应用

应用 代表模型 说明
医学图像分割 UNETR 将 Transformer 编码器与 UNet 解码器结合
医学图像合成 ResViT 残差 + ViT 结合的生成模型

七、生成网络(Generative Networks)

7.1 判别模型 vs 生成模型

特性 判别模型(Discriminative) 生成模型(Generative)
目标 学习 \(P(y \| \boldsymbol{x})\)(条件分布) 学习 \(P(\boldsymbol{x})\)(数据分布)
输出 预测标签 \(\hat{y}\) 生成符合数据分布的新样本
训练 监督学习 无监督/自监督学习
好坏标准 预测准确率 生成样本与真实数据无法区分

7.2 GAN(生成对抗网络)

Ian Goodfellow, 2014(引用量超 50K)。

7.2.1 基本架构

GAN 由两个子模型组成:

子模型 功能 目标
生成器(Generator, G) 从随机噪声生成新的样本 生成"以假乱真"的样本,骗过判别器
判别器(Discriminator, D) 判断样本是真实数据还是生成的 正确区分真实样本与生成样本

7.2.2 训练过程(交替训练)

步骤 操作 目标
Step 1 固定 G,更新 D 提高判别器识别真伪的能力
Step 2 固定 D,更新 G 让生成器产生更逼真的样本以骗过判别器

这是典型的零和博弈——G 和 D 在相互对抗中共同进步。

7.2.3 GAN 变体

变体 提出者 核心改进
InfoGAN 引入辅助网络,控制生成的特定类别特征(如指定生成哪个数字)
DCGAN Radford et al. 将 CNN 结构引入 GAN,大幅提升生成图像质量
CycleGAN Zhu et al., 2017 处理非配对数据的域转换(如照片→梵高风格,无需配对训练数据)

7.3 扩散模型(Diffusion Model)

7.3.1 动机

  • GAN 的问题:训练不稳定、生成多样性不足
  • VAE 的问题:使用替代损失(Surrogate Loss),生成质量受限

扩散模型应运而生,提供更稳定的训练和更高质量的生成。

7.3.2 前向扩散过程(Forward Process)

  • 本质:马尔可夫链(Markov Chain)
  • 操作:逐步向原始图像 \(\boldsymbol{x}_0\) 添加高斯噪声
  • 方差调度:由 \(\beta_t\) 控制每步的噪声量

单步前向转移:

\[ q(\boldsymbol{x}_t | \boldsymbol{x}_{t-1}) = \mathcal{N}\left(\boldsymbol{x}_t; \sqrt{1 - \beta_t} \boldsymbol{x}_{t-1}, \beta_t \boldsymbol{I}\right) \]

整个前向过程的联合分布:

\[ q(\boldsymbol{x}_{1:T} | \boldsymbol{x}_0) = \prod_{t=1}^{T} q(\boldsymbol{x}_t | \boldsymbol{x}_{t-1}) \]

在足够大的 \(T\) 下(通常 \(T = 1000\)),\(\boldsymbol{x}_T\) 渐近于各向同性的高斯分布(Isotropic Gaussian)

重参数化技巧:可以直接从 \(\boldsymbol{x}_0\) 一步计算任意时刻 \(t\)\(\boldsymbol{x}_t\)

\[ q(\boldsymbol{x}_t | \boldsymbol{x}_0) = \mathcal{N}\left(\boldsymbol{x}_t; \sqrt{\bar{\alpha}_t} \boldsymbol{x}_0, (1 - \bar{\alpha}_t) \boldsymbol{I}\right), \quad \bar{\alpha}_t = \prod_{s=1}^{t} (1 - \beta_s) \]

7.3.3 逆向扩散过程(Reverse Process)

目标:从纯噪声 \(\boldsymbol{x}_T\) 开始,逐步去噪恢复出 \(\boldsymbol{x}_0\)

  • 真实的反向转移 \(q(\boldsymbol{x}_{t-1} | \boldsymbol{x}_t)\) 需要遍历整个数据集才能估计 → 难以直接计算
  • 解决方案:用神经网络参数化逆向过程,设 \(\beta_t\) 足够小使逆过程也是高斯的:
\[ p_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1} | \boldsymbol{x}_t) = \mathcal{N}\left(\boldsymbol{x}_{t-1}; \boldsymbol{\mu}_{\boldsymbol{\theta}}(\boldsymbol{x}_t, t), \boldsymbol{\Sigma}_{\boldsymbol{\theta}}(\boldsymbol{x}_t, t)\right) \]

训练目标:让神经网络 \(\boldsymbol{\theta}\) 学会预测每一步的均值方差

7.3.4 训练目标

最大化训练数据的似然 → 等价于最小化负对数似然的变分上界(ELBO):

\[ \mathbb{E}[-\log p_{\boldsymbol{\theta}}(\boldsymbol{x}_0)] \leq \mathbb{E}_q\left[-\log \frac{p_{\boldsymbol{\theta}}(\boldsymbol{x}_{0:T})}{q(\boldsymbol{x}_{1:T} | \boldsymbol{x}_0)}\right] \triangleq L \]

损失函数 \(L\) 分解为 \(T+1\) 项:

\[ L = L_0 + L_1 + \cdots + L_T \]

对于 \(t \geq 1\) 的每项 \(L_{t-1}\),使用 KL 散度(Kullback-Leibler Divergence)

\[ L_{t-1} = D_{\text{KL}}\left(q(\boldsymbol{x}_{t-1} | \boldsymbol{x}_t, \boldsymbol{x}_0) \| p_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1} | \boldsymbol{x}_t)\right) \]

KL 散度衡量两个概率分布之间的差异:

\[ D_{\text{KL}}(p \| q) = \int p(x) \log \frac{p(x)}{q(x)} dx \]

实际优化中,通常将方差固定为 \(\sigma_t^2 \boldsymbol{I}\),只学习均值——此时损失简化为:

\[ L_{t-1} \propto \left\| \boldsymbol{\mu}_t(\boldsymbol{x}_t, \boldsymbol{x}_0) - \boldsymbol{\mu}_{\boldsymbol{\theta}}(\boldsymbol{x}_t, t) \right\|^2 \]

即预测均值与真实后验均值的均方误差

7.3.5 扩散模型的核心特征

特征 说明
输入输出同维度 去噪过程不改变图像尺寸
U-Net 类骨干网络 最常用的去噪网络架构
马尔可夫链 潜变量依赖前(或后)一个时间步
高斯转移 所有转移分布均为高斯分布
渐进高斯化 \(T\) 足够大时 \(x_T\) 为各向同性高斯
灵活骨干 可用 UNet 或其他结构

7.3.6 条件扩散(Conditional Diffusion)

对于配对数据 \(\{\boldsymbol{x}, \boldsymbol{y}\}\),希望建模 \(p(\boldsymbol{x} | \boldsymbol{y})\)​:

  • 挑战:条件信号 \(\boldsymbol{y}\) 可能与 \(\boldsymbol{x}\) 形状不同、非同质
  • 解决方案:通过注意力机制或其他方式将条件信号注入去噪网络

例如:用文本描述("哈利波特风格的大学")作为条件,引导扩散模型的生成方向。

7.3.7 得分扩散模型(Score-based Diffusion)

另一种视角:不直接建模概率分布,而是学习概率分布的得分函数(Score Function) \(\nabla_{\boldsymbol{x}} \log p(\boldsymbol{x})\) ——即对数概率密度关于 \(\boldsymbol{x}\) 的梯度。得分函数指向数据密度增加最快的方向,去噪过程可视为沿得分方向移动。

7.3.8 三种生成模型对比

模型 优点 缺点
GAN 生成速度快 训练不稳定,模式坍塌
VAE 有理论保证的似然下界 生成图像模糊
Diffusion 高质量、稳定训练 采样速度慢(需多步迭代)

7.4 生成模型在医学图像中的应用

应用 方法 说明
MRI 图像重建 扩散模型 + K-Space Guidance + Coarse-to-Fine Sampling 从欠采样 k 空间数据重建高质量 MRI
MRI 图像合成 条件扩散模型 ASL → 合成 T1w 图像
高分辨率 MRI 合成 潜在扩散模型(LDM) 基于 LDM 高效合成大量高分辨率 MRI 图像

八、历年卷解答

2022 年大题第 6 题:人工智能(CNN 分割 vs 传统方法 / CNN vs UNet)

题目来源:2022 年历年卷 大题第 6 题

(1) 相比传统方法(如 Otsu),CNN 在分割任务中的优势

Otsu 阈值法的原理与局限

Otsu(大津法)是一种基于灰度直方图的自动阈值分割方法——遍历所有可能的阈值,选择使类间方差最大的阈值作为最优分割点。

Otsu 的局限:

  • 仅利用灰度信息:只考虑像素灰度值,忽略了纹理、形状、空间上下文等
  • 假设两类分布:适用于双峰直方图,多目标分割效果差
  • 对灰度不均匀敏感:光照不均、场偏移效应(MRI 中常见)使分割失败
  • 全局阈值:整张图使用同一个阈值,不能局部自适应

CNN 在分割任务中的优势

维度 Otsu CNN(如 UNet)
利用的信息 仅灰度值 灰度 + 纹理 + 形状 + 空间上下文
特征来源 手工(灰度统计) 数据驱动自动学习层次化特征
对复杂场景 灰度不均匀时失效 可学习不变性特征,鲁棒性强
多目标分割 需多次分割或复杂多阈值 端到端多类分割(Softmax 输出)
上下文建模 无(逐像素独立决策) 感受野覆盖大范围上下文
泛化能力 每张图独立计算 训练后可在相似数据上直接推理
边界精度 粗糙(全局阈值一刀切) 精细(UNet Skip Connection 保留边界信息)

具体优势总结

  1. 层次化特征学习:浅层学习边缘/纹理,深层学习语义/形状——自动适应不同组织的视觉特征
  2. 上下文感知:大感受野使网络能利用周围组织的空间关系辅助决策(如肿瘤与周围正常组织的关系)
  3. 灰度不变性:通过 BN(Batch Normalization)和数据增强,CNN 对灰度偏移和对比度变化更鲁棒
  4. 端到端:输入原始图像,直接输出分割掩膜——无需人工设计中间步骤

(2) CNN 与 U-Net 的结构区别,U-Net 的 Skip Connection 在分割任务中的作用

一、传统分类 CNN 的结构

典型分类 CNN(如 AlexNet、VGG):

输入图像 → [Conv → ReLU → Pool] × N → Flatten → FC → FC → Softmax → 分类标签
  • 只有编码器(Encoder):空间分辨率逐步降低
  • 最终输出:图像级的类别概率(如"有肿瘤"0.92)
  • 空间信息在逐层池化中不可逆地丢失
  • 全连接层需要固定大小的输入

二、U-Net 的结构

输入图像 → [Conv×2 → Pool] → [Conv×2 → Pool] → ... → Bottleneck
              ↓ Skip                ↓ Skip
         [↑Conv×2 ← Concat] ← [↑Conv×2 ← Concat] ← ...
              ↓
         输出分割掩膜(与输入同尺寸)

U-Net 的核心结构特征:

组成部分 功能
编码器(收缩路径) 逐层 Conv+Pool 提取特征,空间分辨率降低,语义信息逐层抽象
瓶颈层(Bottleneck) 最深层的特征表示,空间最小但语义最丰富
解码器(扩张路径) 逐层上采样(转置卷积/插值+卷积),恢复空间分辨率
跳跃连接(Skip Connection) 将编码器第 \(l\) 层的特征图直接拼接到解码器对应层

三、CNN vs U-Net 的结构区别

维度 传统分类 CNN U-Net
网络形状 单塔形(仅编码器) U 形(编码器 + 解码器对称)
输出类型 图像级标签(1×1×类别数) 像素级分割掩膜(H×W×类别数)
编码器
解码器 有(上采样恢复分辨率)
跳跃连接 无(或仅 ResNet 中的残差连接) 核心设计(编码器→解码器直连)
全连接层 有(分类头) 无(全卷积)
输入尺寸 固定 灵活(全卷积,理论上任意尺寸)
空间信息保留 丢失(池化不可逆) 保留(Skip Connection 传递精确空间信息)
适用任务 分类 分割、去噪、重建、合成

四、Skip Connection 在分割任务中的作用(核心考点)

U-Net 的跳跃连接将编码器第 \(l\) 层的特征图直接复制并拼接到解码器的对应层。其作用:

1. 融合低级空间信息与高级语义信息

信息类型 来源 内容
低级空间信息 编码器浅层 精确的边界位置、边缘方向、细小结构
高级语义信息 编码器深层 + 瓶颈层 "这个区域是肿瘤"、"这是正常组织"
  • 在编码器深层:感受野大(如 \(200 \times 200\)),网络知道"这是肿瘤区域"——但边界位置已模糊
  • 在编码器浅层:感受野小(如 \(3 \times 3\)),边界位置精确——但不知道"这是什么组织"
  • Skip Connection 将两者拼接 → 解码器同时拥有语义知识精确定位 → 分割边界更精确

2. 解决下采样导致的空间信息丢失

  • 编码器通过池化逐层下采样(如 4 次 2× 池化 = 16 倍分辨率降低)
  • 池化丢弃了空间细节——哪些像素恰好构成了边界?
  • 仅靠上采样无法完全恢复这些丢失的细节(上采样是插值/学习的近似)
  • Skip Connection 将未池化的原始低级特征直接传给解码器——绕过信息瓶颈

3. 改善梯度流动(训练角度)

  • 深层网络的梯度在反向传播中逐渐衰减(梯度消失)
  • Skip Connection 提供了梯度直接流向浅层的捷径 → 编码器浅层也能获得有效训练信号
  • 类似 ResNet 的残差连接思想,但 U-Net 是在编码器-解码器跨整个网络跳跃

4. 多尺度特征融合

  • 不同深度的 Skip Connection 传递了不同尺度的特征:
  • 最浅层 → 最精细的空间细节
  • 中间层 → 中等尺度的纹理和结构
  • 最深层(Bottleneck)→ 最抽象的语义信息
  • 解码器同时接收所有这些尺度的信息 → 多尺度感知

五、为什么 U-Net 在医学图像分割中特别有效

原因 说明
医学图像边界模糊 肿瘤与正常组织常无明显边界——需要同时利用低级纹理(边缘对比度)和高级语义(解剖知识)来界定边界
数据量有限 跳跃连接减少了网络需要从头学习的参数——低级特征被直接复用,而非重新学习
结构固定 医学图像中器官结构位置相对固定——多尺度融合能更有效地建模这种解剖先验
需要精确边界 肿瘤体积、放疗靶区勾画需要精确边界——Skip Connection 提供的空间精度至关重要

2025 年选择题第 6 题:CNN 的优势

题目:以下哪个是 CNN 的优势?

答案:可以自动从数据中学习到层次化的特征。

解析:CNN 的核心优势在于层次化特征学习(Hierarchical Feature Learning)——浅层学习边缘/纹理等低级特征,中层学习形状/局部结构,深层学习语义/类别等高级特征。整个过程是端到端的,无需手工设计特征提取器。

对比维度 传统方法(手工特征) CNN
特征来源 专家人工设计(如 SIFT, HOG) 数据驱动自动学习
适应性 针对特定任务优化,难以迁移 可迁移学习,泛化能力强
表达能力 受限(低维特征) 强(可学习高维非线性特征)
上下文利用 弱(通常逐像素独立处理) 强(感受野覆盖空间上下文)

2025 年判断题第 7 题:CNN 的平移不变性

题目:CNN 的平移不变性是否由全连接(Fully Connection)层实现?移除全连接层后,是否严重影响对解剖结构的定位?

答案不是。全连接层与平移不变性无关,反而会破坏空间定位能力。

解析

  • CNN 的平移不变性来源于卷积的权值共享(同一滤波器在整张图上检测相同特征)和池化操作(下采样丢弃精确位置信息),而非全连接层。
  • 全连接层的每个输入神经元有独立的权重,对输入位置高度敏感——位置一变,FC 层的输入就完全不同,输出也会改变。因此 FC 层不具备平移不变性。
  • 移除全连接层(使用全卷积网络)反而可以保留空间定位能力——这正是 UNet 等分割网络的设计理念:去掉 FC 层,用 \(1 \times 1\) 卷积替代,输出像素级预测。

参见本文第四章 4.9 平移不变性 节。


2024 年选择题:CNN 相关

题目:关于 CNN 的选择题(具体选项暂缺)。

涉及知识点(根据题目位置和上下文推断):

  • CNN 的基本结构(Conv → ReLU → Pool → ... → FC)
  • 各层的作用(卷积提取特征、池化下采样、全连接分类)
  • 常见激活函数(ReLU、Sigmoid、Tanh)
  • CNN 的训练方式(梯度下降 + 反向传播)

建议重点复习本文第三至五章内容。


2023 年选择题:CNN 的性质

题目:CNN 的性质,有哪些层、用什么池化、什么激活函数等。

答案要点

CNN 的典型层结构

层类型 功能 备注
卷积层(Conv) 提取局部特征,通过卷积核滑动检测边缘/纹理/模式 权值共享,参数量远小于 FC
激活函数(Activation) 引入非线性,使网络能学习复杂模式 常用 ReLU(缓解梯度消失)
池化层(Pooling) 下采样,降低空间分辨率,提供局部平移不变性 最常用 Max Pooling
全连接层(FC) 将特征映射到类别输出 分类 CNN 的最后一层
Flatten 将多维特征图展平为一维向量 连接卷积部分和 FC 部分

常用激活函数

函数 公式 特点
ReLU \(\max(0, x)\) 默认选择,稀疏激活,缓解梯度消失
Sigmoid \(\frac{1}{1+e^{-x}}\) 输出 (0,1),易饱和
Tanh \(\frac{e^x-e^{-x}}{e^x+e^{-x}}\) 输出 (-1,1),零中心
Leaky ReLU \(\max(\alpha x, x)\) 解决"死神经元"

常用池化:Max Pooling(最常用,保留最显著特征)、Average Pooling(平滑)、Global Pooling(替代 Flatten)。

参见本文第三至四章各节了解详情。


九、补充练习题

题 1:CNN 在医学图像分割中的应用流程设计

题目:某医院希望构建一个基于深度学习的肺部 CT 结节自动分割系统。请回答以下问题:

(1) 请画出 CNN 在医学图像分割中的典型流水线架构(从输入图像到最终分割结果),并标注每个模块的名称和功能。

(2) 为什么在医学图像分割中,UNet 比传统的分类 CNN(如 AlexNet)更合适?请从网络结构的角度分析。

(3) 3D 医学图像(如 CT 体数据)的深度学习方法与 2D 图像处理有何不同?请列举至少两个关键差异。

解答

(1) CNN 医学图像分割流水线

典型分割流水线(UNet):

\[ \text{CT图像} \to \text{编码器(下采样)} \to \text{瓶颈层} \to \text{解码器(上采样)} \to \text{分割掩膜} \]
模块 功能
输入 原始 CT 切片或 3D Patch
编码器 逐层卷积+池化,提取从低级到高级的语义特征,空间分辨率逐步降低
瓶颈层 最深层的特征表示,空间分辨率最低但语义信息最丰富
解码器 逐层转置卷积/上采样,恢复空间分辨率
跳跃连接 将编码器各级的低级空间信息直接传递给解码器对应级,融合细节与语义
输出 与输入等大的分割掩膜(每个像素为结节/非结节)

(2) UNet vs AlexNet 的适用性分析

维度 UNet AlexNet
输出类型 像素级密集预测(分割掩膜) 图像级单标签(分类)
结构对称性 编码器-解码器对称结构 仅有编码器(卷积→全连接)
空间恢复 通过跳跃连接+上采样恢复分辨率 无空间恢复机制
低级信息利用 跳跃连接保留精确的边界位置信息 池化后低级空间信息不可恢复
适用任务 分割、去噪、重建、合成 分类

医学图像分割需要像素级精确定位——UNet 的跳跃连接将编码器的低层(边界位置精确)与解码器的高层(语义信息丰富)融合,恰好满足这一需求。

(3) 3D vs 2D 医学图像深度学习的关键差异

差异 2D 3D
输入形式 单张切片 \([H, W]\) 3D Patch / 体数据 \([H, W, D]\)
卷积核 2D 卷积 \([k_h, k_w]\) 3D 卷积 \([k_h, k_w, k_d]\)
归一化 按图像归一化 MRI: z-score;CT: HU 值归一化
上下文信息 仅利用平面内信息 利用层间上下文(切片间连续性)
计算量 大(参数量 × 深度维度)
数据增强 2D 旋转/翻转 3D 旋转/翻转/弹性形变

题 2:感受野与网络深度的分析

题目:在生物医学图像处理中,感受野(Receptive Field)的大小直接影响模型捕获上下文信息的能力。请回答:

(1) 什么是全局感受野?对于一个使用了 5 层 \(3 \times 3\) 卷积(步长均为 1,无池化)的网络,最后一层相对于输入的全局感受野是多少?

(2) 堆叠小卷积核(如 \(3 \times 3\))与使用单个大卷积核(如 \(7 \times 7\))相比,在感受野和参数效率方面有何优劣?以 \(3 \times 3 \times 3\) vs \(7 \times 7\) 为例计算参数比。

(3) 结合本课程的图像分割(第 8 章)和特征提取(第 10 章)内容,分析为什么在肿瘤分割任务中,足够大的感受野是重要的,但过大的感受野也可能带来问题。

解答

(1) 全局感受野计算

每层 \(3 \times 3\) 卷积使感受野在每个方向上扩展 1 个像素。

递推公式(从深层到浅层):\(RF_l = RF_{l+1} + (k-1) \times \prod_{i=l+1}^{L} s_i\)

本例中所有 \(k=3\), \(s=1\),递推:

局部 全局感受野
Layer 1 \(3 \times 3\) \(3 \times 3\)
Layer 2 \(3 \times 3\) \(5 \times 5\)
Layer 3 \(3 \times 3\) \(7 \times 7\)
Layer 4 \(3 \times 3\) \(9 \times 9\)
Layer 5 \(3 \times 3\) \(11 \times 11\)

:5 层 \(3 \times 3\) 卷积的全局感受野为 \(11 \times 11\)

(2) 小卷积核堆叠 vs 大卷积核

三个堆叠的 \(3 \times 3\) 卷积等效于一个 \(7 \times 7\) 的感受野:

  • \(3 \times 3\)(第1层)→ \(5 \times 5\)(第1+2层)→ \(7 \times 7\)(第1+2+3层)

参数对比(假设通道数为 \(C\)):

方案 参数量 非线性层数
三个 \(3 \times 3\) \(3 \times (3 \times 3 \times C \times C) = 27 C^2\) 3(每层间有 ReLU)
一个 \(7 \times 7\) \(7 \times 7 \times C \times C = 49 C^2\) 1

参数比 = \(49/27 \approx 1.81\)——小卷积核堆叠的参数量仅为大卷积核的 55%

优势:参数更少、非线性更强(三个 ReLU vs 一个)、对细节的建模能力更强。

这就是 VGG 全面采用 \(3 \times 3\) 卷积的理论依据。

(3) 感受野与肿瘤分割

感受野要足够大的原因

  • 肿瘤分割需要区分肿瘤与周围正常组织,这需要对比上下文
  • 如果感受野太小(如仅 \(3 \times 3\)),网络只能看到单个像素的局部纹理,无法区分"肿瘤内部的不均匀灰度"和"肿瘤边缘的灰度过渡"
  • 足够的感受野让网络理解组织结构上下文(如肿瘤相对于器官的位置)

感受野过大的潜在问题

问题 说明
边界模糊 过大的感受野将来自远处组织的信息混入边界像素,可能导致边界定位不精确
无关信息干扰 远处的正常组织信息可能对局部肿瘤边界判断产生误导
计算效率 更大感受野意味着更深网络或更大卷积核,增加计算负担

UNet 的优雅解决方案:通过跳跃连接,解码器的高层(大感受野,强语义)与编码器的低层(小感受野,精确边界)信息融合——在感受野和定位精度之间取得最优平衡。


题 3:扩散模型在 MRI 重建中的综合应用题

题目:MRI 的成像速度受限于 k 空间的逐行采集。为加速成像,通常采用欠采样策略,但这会引入混叠伪影。近年来,扩散模型被应用于从欠采样的 k 空间数据中重建高质量的 MRI 图像。

(1) 请描述扩散模型中前向过程和逆向过程的基本原理,并解释为什么逆向过程可以用神经网络来近似。

(2) 在 MRI 重建中,如何将欠采样的 k 空间测量作为条件融入扩散模型?请提出至少一种条件注入策略。

(3) 结合本课程第 2 章(图像变换,傅里叶变换)和第 6 章(图像复原,退化模型)的知识,分析将 k 空间欠采样建模为图像退化过程时,扩散模型相对于传统逆滤波方法的优势。

解答

(1) 前向与逆向过程的原理

前向过程(数据 → 噪声):

\[ q(\boldsymbol{x}_t | \boldsymbol{x}_{t-1}) = \mathcal{N}(\boldsymbol{x}_t; \sqrt{1 - \beta_t} \boldsymbol{x}_{t-1}, \beta_t \boldsymbol{I}) \]

对一张干净的 MRI 图像 \(\boldsymbol{x}_0\),逐步加入少量高斯噪声(方差 \(\beta_t\)),经 \(T\) 步(\(T \approx 1000\))后得到纯噪声 \(\boldsymbol{x}_T \sim \mathcal{N}(0, \boldsymbol{I})\)

逆向过程(噪声 → 数据):

真实逆向转移 \(q(\boldsymbol{x}_{t-1} | \boldsymbol{x}_t)\) 难以直接计算(需要对整个数据集积分)。但若 \(\beta_t\) 足够小,逆向过程也是高斯分布:

\[ p_{\boldsymbol{\theta}}(\boldsymbol{x}_{t-1} | \boldsymbol{x}_t) = \mathcal{N}(\boldsymbol{x}_{t-1}; \boldsymbol{\mu}_{\boldsymbol{\theta}}(\boldsymbol{x}_t, t), \sigma_t^2 \boldsymbol{I}) \]

用神经网络 \(\boldsymbol{\theta}\) 预测每一步的均值(或等效地,预测所加的噪声),通过最小化 \(\|\boldsymbol{\mu}_t - \boldsymbol{\mu}_{\boldsymbol{\theta}}\|^2\) 来训练。因为前向过程的每一步是可解析计算的(\(\boldsymbol{x}_t = \sqrt{\bar{\alpha}_t} \boldsymbol{x}_0 + \sqrt{1 - \bar{\alpha}_t} \boldsymbol{\epsilon}\)),逆向过程可以被神经网络有效近似。

(2) k 空间条件注入策略

MRI 欠采样的物理模型(频域约束):

\(\boldsymbol{y}\) 为欠采样的 k 空间数据,\(\boldsymbol{M}\) 为采样掩膜,\(\mathcal{F}\) 为傅里叶变换,则:

\[ \boldsymbol{y} = \boldsymbol{M} \mathcal{F} \boldsymbol{x} + \boldsymbol{\eta} \]

K-Space Guidance 策略

在逆向扩散的每一步,对去噪输出施加数据一致性约束

  1. 将当前估计 \(\hat{\boldsymbol{x}}_t\) 转换到 k 空间:\(\hat{\boldsymbol{k}}_t = \mathcal{F} \hat{\boldsymbol{x}}_t\)
  2. 在已采样位置用测量值替换:\(\hat{\boldsymbol{k}}_t' = \boldsymbol{M} \odot \boldsymbol{y} + (1 - \boldsymbol{M}) \odot \hat{\boldsymbol{k}}_t\)
  3. 逆变换回图像空间:\(\hat{\boldsymbol{x}}_t' = \mathcal{F}^{-1} \hat{\boldsymbol{k}}_t'\)

这确保了最终重建结果与已采样的 k 空间数据严格一致

(3) 扩散模型 vs 传统逆滤波

维度 传统逆滤波 扩散模型
理论基础 对退化函数 \(H(u,v)\) 取逆 数据驱动学习先验分布
噪声处理 噪声在 \(H(u,v)\) 接近零处被严重放大 通过学习的数据先验区分信号与噪声
伪影处理 混叠伪影是确定性的频率混叠,逆滤波无法消除(信息已丢失) 利用学习到的 MRI 图像先验填补缺失频率
适用范围 退化函数已知、可逆 任何有训练数据的退化模型
重建质量 在欠采样率较高时质量骤降 即使高倍欠采样仍可生成合理重建

核心优势:传统逆滤波是"被动的"——仅处理已有的频率信息;扩散模型是"主动的"——利用从大量 MRI 数据中学到的解剖结构先验,在缺失频率位置上生成与已有数据统计一致的合理估计。这与本课程第 6 章图像复原中维纳滤波需要知道信号和噪声功率谱的思想相通,但扩散模型不需要显式建模功率谱——它通过训练隐式学习了医学图像的统计分布。