想象你刚成为放射科实习生,坐在阅片灯前,手里是一张布满灰白阴影的胸部CT。老主任指着一处几乎看不见的小白点说:“这里,可能是个肺结节。”你的眼神得有多尖,才能天天在成百上千张片子中找到这样的细节?科室新来了三个“机器学徒”,各有绝活。ViT把片子切成整齐小方格,像拼图一样逐块审视后拼出整体判断;Swin像手机地图,先在街道搜细节,再拉远成城市全貌;TransUNet则像病理医生,先低倍镜锁定可疑区,再换高倍镜把病灶边界一笔一画描出来。它们背后共享同一套心法——注意力机制。这篇文章,就带你看看这套心法如何让机器学会“读片”。

岗位关联

掌握Transformer在医学影像中的三类代表作,是AI医疗工程师的核心竞争力。从ViT全局建模、Swin层级窗口到TransUNet精准分割,这套技术栈直接决定了影像AI产品的诊断精度与落地效率。

目录
  1. 可视化演示
  2. Transformer基础——会抓重点的读片心法
  3. ViT图像分类——方格读片法
  4. Swin层级视觉——街区巡逻法
  5. TransUNet分割——深描病灶法
  6. 训练优化策略——跟师学习法
  7. 医学落地实战——执业考核
  8. 挑战与展望——治未病
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

演示ViT、Swin与TransUNet在医学影像中基于注意力机制的分块、分层与分割流程。

本节配有交互动效(进入视口后自动加载,约 3KB)。

ViT分块 影像 块 Img→Patch 影像切分为序列块并嵌入

Transformer基础——会抓重点的读片心法

老主任常说,好医生看片子不是从头扫到尾,而是先扫一眼全图,让目光自动停在异常的地方——比如肺结节边上的毛刺、脑白质里的亮斑。这种“主动选择重点”的能力,就是Transformer的看家本领:注意力机制。它让模型在读取一张CT时,不再是机械地逐像素扫过,而是每一处都观察、打分、权衡,最后形成对整张片的综合理解。

传统CNN像用放大镜以固定步长扫过整张图,每个位置只能看到自己周围一个小窗口,远处的关系需要堆叠很多层才能传到。Transformer则让每个位置与全图所有位置直接“对话”,一次跳跃就能抓住长距离依赖。在自注意力计算中,每个位置都用三元组(查询Q、键K、值V)参与:查询是“我要找什么”,键是“我有什么特征标签”,值则是“我提供的信息”。所有位置两两打分,分数归一化后作为权重,加权求和得到新特征。

公式:

这就像会诊现场——医生(Q)提问,病历摘要(K)指向相关线索,最终大家把各自看到的信息(V)汇总加权,形成集体判断。Transformer的编码器正是这样一层层堆叠,让每个位置都能“听到”全图的意见。

Attention(Q,K,V)=softmax(QK⊤dk)V\text{Attention}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) = \text{softmax}\left(\frac{\mathbf{Q}\mathbf{K}^{\top}}{\sqrt{d_k}}\right)\mathbf{V}
  1. 查询向量Q代表“想找的内容”,是注意力计算的出发点,就像医生在脑中提出的问题。
    Q\mathbf{Q}
  2. 键向量转置K是每个位置对外展示的名片,转置后可与所有查询做匹配。
    K⊤\mathbf{K}^{\top}
  3. 点积缩放查询与键做点积得到相似度分数,除以$\sqrt{d_k}$防止分数过大导致梯度消失。
    QK⊤dk\frac{\mathbf{Q}\mathbf{K}^{\top}}{\sqrt{d_k}}
  4. Softmax归一化将相似度分数变为和为1的注意力权重,相当于“会诊表决”。
    softmax(⋅)\text{softmax}\left(\cdot\right)
  5. 加权融合值用权重对V加权求和,得到当前关注位置的输出表示。
    ∑iαivi\sum_i \alpha_i \mathbf{v}_i

ViT图像分类——方格读片法

第一位学徒ViT的绝活,是把整张CT片画上方格网,每格像便签一样独立编号。他不像CNN那样用放大镜滑动,而是把每格内容直接变成一张“特征卡片”,一次性铺满桌面。这个思路来自NLP:一句话可以切成词,一张图自然也可以切成“视觉词”——Patches。

ViT先将图像切成固定大小(如16×16像素)的Patch,每个Patch展平成一维向量,乘一个可学习的线性嵌入矩阵,映射成指定维度的向量。所有Patch向量加上位置编码后,一起送入Transformer编码器堆叠处理。为了输出“整张片子正常还是异常”的结论,ViT在序列最前面插入一个[CLS]标记,它就像会议主持人,不具体负责某个区域,却在听完所有Patch的发言后汇总出全局意见。最后,[CLS]的最终向量被分类头映射成类别概率。

公式:

方格读片法简单直观,却有个短板:它需要海量数据“喂大”。就像刚毕业的医生,见过的病例多才能诊断得准。在医学影像这种数据稀缺领域,直接从头训练ViT往往效果不佳,这个短板也正是Swin要解决的。

z0=[xclass;xp1E;xp2E;⋯ ;xpNE]+Epos\mathbf{z}_0 = [\mathbf{x}_{\text{class}}; \mathbf{x}_p^1 \mathbf{E}; \mathbf{x}_p^2 \mathbf{E}; \cdots; \mathbf{x}_p^N \mathbf{E}] + \mathbf{E}_{\text{pos}}
  1. Patch序列$\mathbf{x}_p^1, \mathbf{x}_p^2, \ldots, \mathbf{x}_p^N$ 是把图像分成N个不重叠的小块后展平的向量。
    xp1,xp2,…,xpN\mathbf{x}_p^1, \mathbf{x}_p^2, \ldots, \mathbf{x}_p^N
  2. 线性嵌入矩阵$\mathbf{E}$ 将每个Patch的原始像素投影到低维特征空间,相当于给每个方格做一次“特征压缩”。
    E\mathbf{E}
  3. 拼接类别标记$[\mathbf{x}_{\text{class}}; \cdot]$ 在序列最前面接一个可学习的分类令牌,它会汇总全局信息。
    [xclass;⋅][\mathbf{x}_{\text{class}}; \cdot]
  4. 位置编码$+ \mathbf{E}_{\text{pos}}$ 给每个Patch加上位置信息,避免模型丢失空间顺序。
    +Epos+ \mathbf{E}_{\text{pos}}

Swin层级视觉——街区巡逻法

第二位学徒Swin觉得ViT太“耗神”——每个格子都要和全图所有格子打招呼,图像一大就吃不消。他的办法像手机地图:先在街道级别仔细搜索小窗口,再拉远视野合并成城区,逐级构建全貌。这个“先局部、后全局、再层级”的思路,就是Swin的核心。

Swin把注意力限制在局部窗口内,每个窗口互相独立计算,计算量与图像大小呈线性关系,效率大增。但纯局部窗口会让不同窗口间“老死不相往来”,整个模型看不到全局。于是Swin引入移动窗口操作:下一层把窗口整体偏移半个窗口的距离,这样原本在不同窗口的Patch就有机会在相邻层相遇,实现跨窗口的信息交换。同时,Swin用Patch Merging把相邻小Patch合并成大Patch,像池化一样缩小特征图,形成从高分辨率到低分辨率的金字塔结构,这让它天然适合分割、检测这类需要多尺度信息的任务。

公式:

街区巡逻法的精髓是“先局部后全局、逐层放大视野”。它让模型既有街头的细节,又有全城的地图,为医学影像中大尺寸图像的分析提供了高效且精准的解法。

z^l=W-MSA(LN(zl−1))+zl−1,zl=MLP(LN(z^l))+z^l\hat{\mathbf{z}}^l = \text{W-MSA}(\text{LN}(\mathbf{z}^{l-1})) + \mathbf{z}^{l-1}, \quad \mathbf{z}^l = \text{MLP}(\text{LN}(\hat{\mathbf{z}}^l)) + \hat{\mathbf{z}}^l
  1. 窗口自注意力$\text{W-MSA}$ 只在局部窗口内计算多头自注意力,控制计算规模。
    W-MSA(⋅)\text{W-MSA}(\cdot)
  2. 层归一化$\text{LN}$ 让每一层特征分布保持稳定,加速训练收敛。
    LN(⋅)\text{LN}(\cdot)
  3. 残差连接$+ \mathbf{z}^{l-1}$ 把输入特征加回来,保留原始信息,防止深层网络退化。
    +zl−1+ \mathbf{z}^{l-1}
  4. MLP与残差$\text{MLP}$ 做通道间的非线性变换,再接一次残差,完成一个Swin Block。
    zl=MLP(…)+z^l\mathbf{z}^l = \text{MLP}(\ldots) + \hat{\mathbf{z}}^l

TransUNet分割——深描病灶法

第三位学徒TransUNet的目标不是“判断有没有病”,而是“把病灶的边界一笔一画描出来”。这就像病理科医生,先低倍镜扫视切片找到可疑区域,再换高倍镜沿着细胞形态勾出边界。这种“先粗定位、再精修边”的策略,正是医学图像分割的基本思维。

纯CNN分割靠卷积堆叠扩大感受野,长距离依赖弱;纯Transformer全局建模好,但边界细节容易模糊。TransUNet的做法是两者混合:用CNN编码器抽取底层纹理和边缘等局部特征,再用Transformer层捕捉整体语义关系,最后通过解码器逐步恢复分辨率。编码时分辨率逐渐降低、通道数增加,解码时不断上采样并把浅层的细节“跳跃连接”直接送回来,弥补下采样丢失的精细边缘信息。最终,解码器输出每个像素属于病灶的概率图,配合Dice损失优化轮廓贴合度。

公式:

深描病灶法的核心是“编码器负责缩图找区域,解码器负责放大描边界”。TransUNet也因此成为U-Net与Transformer融合的标杆架构,后续大量医学分割工作都建立在它的设计思想之上。

Dice=2∑iyiy^i∑iyi+∑iy^i\text{Dice} = \frac{2 \sum_{i} y_i \hat{y}_i}{\sum_{i} y_i + \sum_{i} \hat{y}_i}
  1. 真实标签$y_i$ 表示第i个像素的真实类别,病灶为1、背景为0。
    yiy_i
  2. 预测概率$\hat{y}_i$ 是模型对该像素输出的病灶概率。
    y^i\hat{y}_i
  3. 交集求和$2 \sum y_i \hat{y}_i$ 统计预测与真实重叠的像素数,乘以2是为了平衡分母。
    2∑iyiy^i2 \sum_{i} y_i \hat{y}_i
  4. 分母归一$\sum y_i + \sum \hat{y}_i$ 是真实和预测的正像素总数,让Dice落在0到1之间。
    ∑iyi+∑iy^i\sum_{i} y_i + \sum_{i} \hat{y}_i

训练优化策略——跟师学习法

三位学徒天赋虽好,但医学影像数据既贵又少,直接从头训练很容易“营养不良”。师傅的办法是让他们先在ImageNet等海量自然图像上“实习”,学习通用的边缘、纹理、形状概念,再到医学影像上“专科进修”。这套流程就是鼎鼎大名的预训练-微调范式,也是迁移学习的核心实践。

预训练阶段,模型在千万级通用图像上学会“什么是边缘”“什么是纹理”。微调阶段,用少量医学标注数据调整参数,让模型从“看得懂图”进化为“看得懂病灶”。由于医学影像与自然图像分布差异大,微调时通常采用较小的学习率和较少的训练轮数,防止模型“忘掉”预训练学到的通用知识,这种“失忆”在学术上叫灾难性遗忘。此外,医学影像中病灶往往只占全图不到1%的像素,普通交叉熵会让模型偷懒地“全预测为背景”,因此常用Focal Loss压低易分样本的权重,把训练重心推向少数难分样本。旋转、翻转、弹性形变等数据增强则进一步扩大了有效训练集。

公式:

跟师学习法让学徒们在数据稀缺的医学影像领域也能快速上岗。师傅领进门,修行在个人——学习率如何衰减、数据增强怎么组合、Focal Loss的gamma取多少,就是每个工程师的“个人修行”。

LCE=−1N∑n=1N∑c=1Cyn,clog⁡y^n,c\mathcal{L}_{\text{CE}} = -\frac{1}{N} \sum_{n=1}^{N} \sum_{c=1}^{C} y_{n,c} \log \hat{y}_{n,c}
  1. 样本维度求和$\sum_{n=1}^{N}$ 遍历训练集中的N个样本。
    ∑n=1N\sum_{n=1}^{N}
  2. 类别维度求和$\sum_{c=1}^{C}$ 遍历C个类别,让每个类别都参与损失计算。
    ∑c=1C\sum_{c=1}^{C}
  3. One-hot标签$y_{n,c}$ 为1表示第n个样本属于第c类,否则为0。
    yn,cy_{n,c}
  4. 预测概率对数$\log \hat{y}_{n,c}$ 取预测概率的对数,预测越离谱惩罚越大。
    log⁡y^n,c\log \hat{y}_{n,c}
  5. 平均与负号$-\frac{1}{N}$ 对所有样本损失取平均,负号把“最大化概率”变成“最小化损失”。
    −1N-\frac{1}{N}

医学落地实战——执业考核

出师前,学徒们要过三关考核:漏诊率要低、误报率要可控、判读速度要快。这对应着医学影像AI落地的核心评价体系。分割任务常用Dice和IoU衡量区域重叠;检测任务则看灵敏度(也叫召回率,把真病灶找出来的比例)和阳性预测值(标注为阳性里真阳性的比例)。灵敏度低意味着漏诊,在医学场景中尤其危险;假阳性过高则会让医生陷入“狼来了”般的疲劳和信任危机。

以肺结节CT筛查为例,ViT先对每一层CT切面做快速分类初筛,把可疑切面标记出来;TransUNet再对可疑区域精确分割,输出结节的尺寸、形态与边缘特征。整套流程嵌入放射科工作流:AI初筛结果给到医生复核并签名确认,人机协同效率远高于医生从零开始逐层读片。在脑肿瘤MRI分割中,Swin的层级特征能精确定位胶质瘤的浸润边界,帮助神经外科医生在术前规划手术入路。多模态融合也在兴起——CT与MRI影像、基因表达、临床文本报告共同输入,像多科室联合会诊一样形成综合判断。

公式:

AI是医生的“第二双眼睛”,而不是替代者。评判它是否合格,不仅看精度指标,更要看它能否真正融入临床工作流——降低漏诊、减少误报、压缩阅片时间,让医生把精力留给最需要判断力的疑难病例。

IoU=∣X∩Y∣∣X∪Y∣\text{IoU} = \frac{|X \cap Y|}{|X \cup Y|}
  1. 预测区域$X$ 表示模型分割出的病灶像素集合。
    XX
  2. 真实区域$Y$ 表示医生标注的真实病灶像素集合。
    YY
  3. 交集$|X \cap Y|$ 是预测与真实重合的像素数量。
    ∣X∩Y∣|X \cap Y|
  4. 并集$|X \cup Y|$ 是两个区域覆盖的总像素数量,完全重合时IoU为1。
    ∣X∪Y∣|X \cup Y|

挑战与展望——治未病

如果说今天的医学影像AI是“帮人看病”,那未来的愿景就是“治未病”——在症状出现之前就发现风险。但通往这个愿景的路上还有几道坎要迈,每一道都关系着技术能否真正惠及患者。

第一道坎是数据。医学影像标注依赖资深医生逐层勾画,昂贵且受隐私法规限制。小样本学习、自监督预训练、联邦学习成为研究热点。自监督预训练的思路是让模型自己和自己“玩”:把一张图的不同视角作为正样本对,把不相关图像作为负样本,拉近正样本的距离、推远负样本的距离,从而在无标注数据上学到医学影像的通用表征。第二道坎是可解释性,医生会追问“为什么圈出这个区域”,注意力热力图虽能给出部分解释,但离临床要求的严谨归因还有距离。第三道坎是部署,医院影像设备往往运行在院内网,边缘计算和模型轻量化是真实刚需。

公式:

未来的方向是让机器学习像一位全科医生加上专科医生的结合体:以Swin、ViT为代表的Transformer架构正在与文本、基因、影像多种模态融合,训练出“全科医生”级别的医疗多模态大模型。从方格读片到深描病灶,技术终究要为生命服务。

LCL=−log⁡exp⁡(sim⁡(zi,zj)/τ)∑k=1Kexp⁡(sim⁡(zi,zk)/τ)\mathcal{L}_{\text{CL}} = -\log \frac{\exp(\operatorname{sim}(\mathbf{z}_i, \mathbf{z}_j) / \tau)}{\sum_{k=1}^{K} \exp(\operatorname{sim}(\mathbf{z}_i, \mathbf{z}_k) / \tau)}
  1. 相似度函数$\operatorname{sim}(\mathbf{z}_i, \mathbf{z}_j)$ 计算两个特征向量之间的余弦相似度,衡量“长得像不像”。
    sim⁡(zi,zj)\operatorname{sim}(\mathbf{z}_i, \mathbf{z}_j)
  2. 正样本对$\mathbf{z}_j$ 是同一样本的不同增强视角,代表“同一个病人”。
    zj\mathbf{z}_j
  3. 负样本集合$\sum_{k=1}^{K}$ 对K个不相关样本求和,代表“不同病人”。
    ∑k=1K\sum_{k=1}^{K}
  4. 温度系数$\tau$ 控制分布的锐利程度,越小的温度让模型越“挑剔”。
    τ\tau

AI 应用场景

肺结节CT筛查

阶段:影像检测与诊断

解决的问题:放射科医生每天要读上百张CT,视觉疲劳容易导致漏诊。传统CAD系统依赖手工特征,灵敏度低且假阳性高。ViT先对全肺CT切面做快速分类初筛,把可疑切面筛出来,TransUNet再对可疑区域精确分割,输出结节大小、形态与边缘信息,辅助医生做最终决策。

具体案例:某三甲医院引入该流程后,肺结节检出灵敏度从82%提升到95%,假阳性率下降40%。医生只需复核AI标出的可疑区域,单例阅片时间从8分钟缩短到2分钟,筛查效率大幅提升。

脑肿瘤MRI分割

阶段:术前影像分析与三维重建

解决的问题:脑胶质瘤边界模糊,医生手工勾画需数小时且不同医生间差异大。Swin Transformer的多尺度窗口特征能精确定位肿瘤浸润边界,自动生成三维模型供神经外科手术规划使用。

具体案例:BraTS国际挑战赛上,Swin-UNet在脑肿瘤多序列分割任务中Dice超过0.85。外科医生在术前用AI生成的三维肿瘤边界规划入路,有效避开重要功能区,降低术后并发症风险。

病理全切片分析

阶段:数字病理智能分析

解决的问题:一张全切片病理图像可达10万×10万像素,普通ViT直接输入会内存爆炸。Swin的窗口机制天然适配超大图像,配合级联策略逐步放大可疑区域,既保留全局上下文又兼顾局部细节。

具体案例:某AI病理平台用Swin对乳腺癌前哨淋巴结转移筛查,结合临床文本报告做多模态融合,阴性预测值提升到99%以上,显著减少病理科医生的重复阅片负担。

Python 演示

python41 行
"""迷你自注意力演示: 模拟Transformer读医学影像的注意力计算输入一张32x32合成CT图(含圆形病灶), 输出注意力热力图"""import numpy as np # 1. 合成CT图: 背景噪声 + 病灶亮斑np.random.seed(0)img = np.random.normal(0.2, 0.05, (32, 32))h, w = np.mgrid[:32, :32]mask = ((h - 16)**2 + (w - 16)**2 <= 25).astype(np.float32)img += mask * 0.5 # 2. 将图像切成16个8x8的patch并展平patch_size = 8patches = img.reshape(4, patch_size, 4, patch_size)patches = patches.transpose(0, 2, 1, 3).reshape(16, -1)  # (16, 64) # 3. 线性投影: 64维 -> 8维嵌入E = np.random.randn(64, 8) * 0.1z = patches @ E  # (16, 8) 每个patch的嵌入向量 # 4. 自注意力: Q=K=V=z (简化版)Q = K = V = zscores = Q @ K.T / np.sqrt(8)            # (16, 16) 相似度矩阵np.fill_diagonal(scores, -1e9)           # 屏蔽"只关心自己"attn = np.exp(scores - scores.max(1, keepdims=True))attn = attn / attn.sum(1, keepdims=True)  # softmax归一化 # 5. 加权融合与热力图out = attn @ Vheat = attn.sum(0).reshape(4, 4)heat = heat.repeat(8, axis=0).repeat(8, axis=1)  # 上采样到32x32 # 6. 打印热力图: #=受关注高, .=受关注低print("注意力热力图:")for i in range(32):    row = "".join("#" if heat[i, j] > heat.mean() else "." for j in range(32))    print(row)print(f"病灶区平均关注度: {heat[mask > 0].mean():.3f}")print(f"非病灶区平均关注度: {heat[mask == 0].mean():.3f}")
目的:用NumPy从零实现一个迷你自注意力机制,演示ViT如何把一张合成CT图切成Patch、计算注意力分数,并生成热力图观察模型是否聚焦在病灶区域。
  1. patches = patches.transpose(0, 2, 1, 3).reshape(16, -1)将4×4个Patch按网格顺序展开成16个64维向量,模拟ViT的图像分块。
  2. z = patches @ E每个8×8的Patch通过线性投影变成8维嵌入向量,对应ViT的Patch Embedding。
  3. scores = Q @ K.T / np.sqrt(8)计算所有Patch两两之间的点积相似度,除以$\sqrt{8}$防止数值过大。
  4. np.fill_diagonal(scores, -1e9)将自身匹配分数设为极小值,强制模型关注“别人”而不是“自己”。
  5. attn = attn / attn.sum(1, keepdims=True)对每行做Softmax归一化,让每行注意力权重之和为1。
  6. heat = attn.sum(0).reshape(4, 4)统计每个Patch被全图关注的总量,还原成4×4网格后放大成热力图。

常见误区

误区总听人说“ViT刷新了ImageNet纪录”,于是认为医学影像里CNN已经过时了,所有模型都该用纯Transformer,甚至觉得混合架构是“不够先进”的表现。

正解Transformer擅长全局关系建模,CNN则更擅长提取局部纹理和边缘细节。在医学影像中,病灶的钙化点、毛刺、组织纹理等细节恰恰依赖CNN的归纳偏置。TransUNet本身就是“CNN编码器+Transformer中间层”的混合体,说明在分割这类密集预测任务中,两者互补远比替代更有效。实际比赛中胜出的医学影像模型也大多是混合架构。

为何常见:媒体和论文摘要往往强调Transformer的SOTA性能,弱化了CNN在混合架构中的关键作用,初学者容易被“碾压”式标题误导。

误区有的同学觉得自注意力已经能自动学到空间关系,位置编码可有可无,甚至听说“去掉位置编码也能跑”后,就认为它只是一个锦上添花的选项。

正解自注意力本质上是置换等变的——把Patch的顺序打乱,计算结果不变。这意味着如果没有位置编码,模型完全分不清“肺在图像上方”和“肺在图像下方”的区别。医学影像中器官的空间关系对诊断至关重要,位置编码相当于给每个Patch发一张“座位号”,让模型理解空间布局。实验证明,去掉位置编码后ViT在ImageNet上精度大幅下降。

为何常见:Transformer最初用于自然语言处理,语序天然由输入顺序决定,初学者容易把“顺序信息天然存在”的习惯带到图像中,忽略了图像本身没有顺序这件事。

误区看到Swin用窗口注意力降低了计算复杂度,就认定Swin的最大贡献是“更快更省显存”,只是一个工程优化版本,没有实质性的架构创新。

正解窗口注意力确实提升了效率,但Swin更重要的贡献是层级特征表示。通过Patch Merging不断合并相邻Patch,Swin形成了类似CNN金字塔的多尺度结构,这让它特别适合分割、检测这类需要同时理解“大致轮廓”和“细节边界”的任务。许多医学影像分割模型采用Swin作为骨干,看中的正是它的多尺度表征能力。

为何常见:论文摘要中最显眼的往往是"linear complexity"这类效率表述,多尺度特征的语义价值需要深入阅读才会被注意到。

误区训练分割模型时只盯Dice系数,看到Dice从0.7涨到0.9就认为模型已经可以上线了,忽视了其他更重要的问题。

正解在医学影像中,病灶通常只占全图不到1%的像素,Dice受背景像素影响较大,一个“全预测为背景”的模型在某些极端情况下也能拿到不低的Dice。临床评估必须结合灵敏度(漏诊率)、特异性(误报率)和边界误差综合判断。很多时候宁可Dice略低,也要优先保证灵敏度——因为在医学场景中,漏掉一个结节比多标记一个良性阴影严重得多。

为何常见:论文和竞赛榜单习惯用Dice做比较,给读者造成了“Dice是唯一标准”的印象,忽略了临床场景对误差类型的不同容忍度。

面试题

Q1. ViT将图像处理成什么样的输入?

单选题 · easy

  • A.直接展平成像素向量
  • B.切成Patch再嵌入映射← 正确答案
  • C.使用卷积核提取特征
  • D.缩放到统一灰度尺寸

答案:B。ViT把图像切成固定大小的Patch,每个Patch展平后通过线性嵌入变成向量,就像把大拼图拆成小碎片再给每块贴上标签。选项A丢掉了空间结构,C是CNN的做法,D只是预处理而并非输入表示方式。

Q2. 自注意力机制中Q、K、V分别类比为什么?

单选题 · easy

  • A.查询键与值三元素← 正确答案
  • B.输入输出与中间层
  • C.编码解码与注意力
  • D.像素标签与损失值

答案:A。Q是“我想找什么”(查询),K是“每个位置的标签”(键),V是“每个位置的实质内容”(值)。好比在图书馆查资料:查询词去匹配书名索引,再取出书的内容。其他选项都是混淆了概念。

Q3. ViT中的[CLS]标记的作用是什么?

单选题 · mid

  • A.负责位置编码信息
  • B.汇总全局类别特征← 正确答案
  • C.增强训练数据信息
  • D.解码分割区域特征

答案:B。[CLS]是一个额外插入的可学习令牌,它不携带具体某个Patch的信息,而是通过注意力机制汇总所有Patch的全局信息,最终经过分类头输出整张图的类别判断。它就像会议主持人,不负责具体议题,但最后代表大家总结发言。

Q4. Swin Transformer相比ViT的主要创新是什么?

单选题 · mid

  • A.使用更大的图像块
  • B.移动窗口层级建模← 正确答案
  • C.直接删除位置编码
  • D.在网络中增加卷积

答案:B。Swin的核心创新是移动窗口机制配合Patch Merging构建层级特征。窗口注意力限制在局部提升计算效率,窗口偏移让信息跨窗口传播,层级结构则让模型同时具备局部细节与全局语义,非常适合医学分割等密集预测任务。

Q5. TransUNet的组成部分包括?

多选题 · mid

  • A.卷积编码器提取特征← 正确答案
  • B.注意力模块捕获全局← 正确答案
  • C.跳跃连接缝合特征← 正确答案
  • D.生成对抗网络架构

答案:ABC。TransUNet采用CNN编码器提取局部纹理细节,Transformer捕捉全局语义关系,解码器逐步恢复分辨率,跳跃连接把浅层细节直接送到深层弥补丢失的边缘信息。生成对抗网络(GAN)是另一条技术路线,不包含在TransUNet的标准架构中。

Q6. 为什么Transformer在医学影像中需要位置编码?

单选题 · mid

  • A.自注意力机制位置无关← 正确答案
  • B.卷积层需要位置信息
  • C.Patch嵌入需要降维
  • D.数据集规模过于庞大

答案:A。自注意力是置换等变的,打乱输入顺序计算结果不变,因此模型天然“分不清上下左右”。医学影像中器官的相对位置对诊断极其重要,位置编码相当于给每个Patch发座位号,让模型理解空间布局。CNN靠卷积核天然保留位置,不需要额外的位置编码。

Q7. 关于Dice系数与IoU的关系,下列说法正确的是?

单选题 · hard

  • A.模型训练时的收敛速度
  • B.预测与真实区域重合程度← 正确答案
  • C.医学图像增强后的质量
  • D.网络模型参数的总数量

答案:B。Dice系数 = 2×交集 /(预测+真实的总像素数),衡量预测分割区域与真实病灶的重叠程度,值越接近1越好。它相当于F1分数的软版本,相比IoU对类别不平衡更温和。选项A、C、D分别涉及速度、图像质量和参数量,与Dice的定义无关。

Q8. 关于预训练与微调在医学影像中的应用,正确的说法有?

多选题 · hard

  • A.通用预训练加快收敛← 正确答案
  • B.微调可用小规模数据← 正确答案
  • C.预训练无需调整学习率
  • D.预训练缓解标注不足← 正确答案

答案:ABD。在ImageNet等通用数据集上预训练,能让模型学会边缘、纹理等通用视觉特征,再在医学数据上微调,可用小规模标注数据达到较好效果,是缓解医学标注稀缺的主要手段。但微调阶段通常需要调低学习率防止灾难性遗忘,选项C的说法是错误的。

Q9. Swin中的“移动窗口”解决什么问题?

单选题 · easy

  • A.窗口之间无法通信← 正确答案
  • B.输入图像的尺寸过大
  • C.训练标签存在噪声
  • D.深层网络梯度消失

答案:A。固定窗口自注意力中,每个Patch只能看到自己窗口内的内容,窗口之间没有信息交换。移动窗口把窗口整体偏移半个窗口,让原本不相邻的Patch在下一层相遇,从而在保持局部计算效率的同时实现全局信息传播。

Q10. 医学影像中标注数据稀缺,以下哪种方法最直接有效?

单选题 · hard

  • A.增加卷积核的数量
  • B.迁移预训练模型微调← 正确答案
  • C.减少网络的整体深度
  • D.只依赖公开数据集

答案:B。医学影像标注依赖资深医生逐层勾画,成本高昂。使用ImageNet预训练模型进行微调,把通用视觉知识迁移到医学影像,是当前最成熟也最直接的方案。增加卷积核或减少网络深度都不解决样本不足的本质问题,而公开数据集无法覆盖特定临床任务的需求。