假设你是一位面馆老板小李,刚训练出一个 AI 小助手来识别顾客上传的菜品照片,却发现它连“红烧牛肉面”都认不准——原因很简单:你得拿出 5000 张红烧牛肉面的照片喂给它,而你的手机相册里只有 5 张。传统做法是翻翻转转、调调色,好比把同一碗面换个盘子、换个灯光重拍,本质上还是同一碗面。这时候,一位“魔法大厨”出现了。他的画技独树一帜:先在白纸上撒满彩色噪点,再像擦玻璃上的雾气一样,一层层擦掉噪点,每擦一层画面清晰一点,最后竟露出一碗热气腾腾、以假乱真的红烧牛肉面。更妙的是,他每画一碗都会稍有不同——有的多撒葱花,有的换了青花碗。这就是基于扩散模型的数据增强:让生成模型学会“红烧牛肉面长什么样”,再批量画出全新且多样的样本,把 AI 的练习册从 5 页填到 5000 页。

岗位关联

对 AI 从业者的价值:掌握基于扩散模型的增强,意味着你能在医学影像、工业质检等“好数据稀缺”的场景中,用生成模型低成本补足训练样本,这是数据为中心 AI 范式下最硬核的竞争力之一。

目录
  1. 可视化演示
  2. 数据稀缺难题
  3. 扩散模型原理
  4. 条件生成控制
  5. ControlNet结构控制
  6. 增强实践流程
  7. 低数据场景应用
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

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

数据稀缺难题

小李的面馆开张后,他想用 AI 识别顾客晒出的菜品图。可翻遍相册,只有 5 张红烧牛肉面的照片。AI 像极了刚入学的小学徒:看 5 遍就死记硬背,等顾客拍一张俯视角、加了滤镜的照片进来,它立刻慌了神——“这是辣油,不是牛肉”!这种困境在数据领域叫“样本稀缺”:真实世界中罕见类别(如某种肿瘤的 CT 切片、电路板上极少出现的划痕)天然就难收集,标注更是贵得离谱。

更麻烦的是类别失衡。训练集里其他菜各有 8000 张,唯独红烧牛肉面 5 张,AI 会偷懒:全部猜成“番茄炒蛋”也能拿到 99.9% 的准确率。而只用 5 张图训练,模型几乎必然过拟合——它背下了这 5 张照片的每一个噪点,而不是学会“红烧牛肉面”这个概念。传统数据增强这时候能帮忙吗?翻转、裁剪、调亮度,无非是把同一碗面换个盘子、换个灯光重拍,像素层面的信息在语义上并没有增加。小李需要的,是一位能“无中生有”画出几千万种不同红烧牛肉面的魔法大厨——这正是生成式增强登场的时刻。

回到面馆:小李需要的不是“再多拍几张同款照片”,而是让大厨端出“形形色色但都是红烧牛肉面”的宴席。补足样本的语义多样性,AI 才能从“背答案”变成“真会”。

模型泛化∝训练样本的语义多样性\text{模型泛化} \propto \text{训练样本的语义多样性}
样本的语义多样性决定了模型能学到的规律广度。传统增强只提供“表象多样性”,生成式增强才能提供“语义多样性”。
  1. 模型泛化指模型在没见过的新数据上依然表现良好,即“换了新碗、新角度也能认出面”。
    模型泛化\text{模型泛化}
  2. 训练样本的语义多样性样本在“是什么、长什么样、什么结构”等本质层面的丰富程度,而非单纯的像素扰动。
    训练样本的语义多样性\text{训练样本的语义多样性}

扩散模型原理

魔法大厨的画法令人费解:他不直接动笔,而是先在一张白纸上撒满彩色噪点,直到什么图案都看不见;然后再像擦拭结满雾气的玻璃窗,一遍又一遍地从中心向外擦。每擦一圈,画面就清晰一分——先是大致轮廓,再是碗沿的弧度,最后连葱花和热气都显露出来。这个“先毁掉画面,再学着复原”的修炼方法,正是扩散模型的精髓。

在技术世界里,前向加噪过程就是把一张干净的图 \(x_0\) 一步步掺入高斯噪声,经过 \(T\) 步后彻底变成纯噪声。第 \(t\) 步的中间结果可以一步到位地写出来:原图乘以一个逐渐缩小的保留系数,再加上强度逐渐增大的噪声。整个过程中,训练一个神经网络 \(\epsilon_\theta\) 专门负责“猜噪声”——给它看一张被污染到 \(t\) 程度的图,让它猜刚才到底加了什么噪声。大厨在练习中看过了几百万张被雾蒙住的画,于是练就了一身“透过迷雾见真容”的直觉。

训练时,大厨的目标是提高“猜噪声”的准确度。对真实样本、随机时间步和随机噪声求平均,让网络输出的预测噪声与真实加入的噪声尽可能接近——这就是“擦雾”本事来源。

小李看着大厨的训练过程恍然大悟:原来“会画红烧牛肉面”的背后,是“一眼就能看出玻璃上哪块雾厚、哪块雾薄”的本领。当大厨从纯噪声开始,一步步擦掉预测出的噪声,一张全新的、世上从未有过的红烧牛肉面照片便诞生了。

xt=αˉt x0+1−αˉt ϵx_t = \sqrt{\bar{\alpha}_t}\, x_0 + \sqrt{1-\bar{\alpha}_t}\, \epsilon
训练目标:让网络预测的噪声与真实噪声的误差平方和尽量小。
  1. 损失函数 \(\mathcal{L}\)衡量大厨“猜错雾”的惩罚值,值越小,手感越好。
    L\mathcal{L}
  2. 期望 \(\mathbb{E}\)对所有的真实样本、所有加噪步数和随机取的噪声做平均,保证练到全面。
    Ex0,t,ϵ\mathbb{E}_{x_0, t, \epsilon}
  3. 噪声预测网络 \(\epsilon_\theta\)大厨的手——一个以被污染的图、时间步、条件信息为输入、预测噪声为输出的神经网络。
    ϵθ(xt,t,c)\epsilon_\theta(x_t, t, c)
  4. 真实噪声 \(\epsilon\)前向过程中实际撒下去的那把噪声,作为“标准答案”。
    ϵ\epsilon

条件生成控制

大厨虽然画技高超,但偶尔也会“画飞”:明明是红烧牛肉面,画着画着冒出一只章鱼腿。小李想了个办法——给大厨递一张“配方小抄”,上面写着:牛肉切块、面条细圆、汤色红亮、撒葱花。大厨一边擦雾一边瞄配方,所有想象力都被收拢到这个范畴里。这张配方小抄,在学术上就叫“条件”(condition),可以是文本提示词,也可以是一个类别标签。

问题来了:配方看多了手会抖,条件太强,画面千篇一律都是同一个角度;条件太弱,又容易跑偏。经典解决方案是 Classifier-Free Guidance(无分类器引导):让网络同时学会两件事——不看配方时按“通用画法”擦雾,看配方时按“指定画法”擦雾。最终采样时,大厨的实际手势是两股力量的叠加:默认手感再加上 \(s\) 倍的“配方偏移量”。当 \(s>1\) 时,配方的影响力被放大,生成样本更贴切但多样性降低;调低 \(s\),则多样性上升但可能不太像目标类别。

这正好解释了大厨在面馆的日常:小李说“红烧牛肉面少放辣”,大厨便在默认画法上轻轻加上一点“微辣修正”。对生成增强而言,这个系数决定了合成样本在“贴题”与“多样”之间的位置,是增强流程中最重要的旋钮之一。

ϵ~θ(xt,t,c)=ϵθ(xt,t,∅)+s(ϵθ(xt,t,c)−ϵθ(xt,t,∅))\tilde{\epsilon}_\theta(x_t, t, c) = \epsilon_\theta(x_t, t, \varnothing) + s\left( \epsilon_\theta(x_t, t, c) - \epsilon_\theta(x_t, t, \varnothing) \right)
引导采样:最终擦雾方向 = 无条件基线 + 引导强度 × 条件带来的方向修正。
  1. 无条件预测 \(\epsilon_\theta(x_t, t, \varnothing)\)大厨不看配方时的“本能手感”,对应通用的去噪能力。
    ϵθ(xt,t,∅)\epsilon_\theta(x_t, t, \varnothing)
  2. 有条件预测 \(\epsilon_\theta(x_t, t, c)\)大厨盯着“红烧牛肉面”配方时的手感。
    ϵθ(xt,t,c)\epsilon_\theta(x_t, t, c)
  3. 配方偏移量两者之差,表示“从默认画法转向指定画法”需要做出的方向修正。
    ϵθ(xt,t,c)−ϵθ(xt,t,∅)\epsilon_\theta(x_t, t, c) - \epsilon_\theta(x_t, t, \varnothing)
  4. 引导强度 \(s\)配方话语权的放大器。\(s\) 越大越听话但越保守,\(s=0\) 则完全无视配方。
    s(ϵθ(xt,t,c)−ϵθ(xt,t,∅))s\left( \epsilon_\theta(x_t, t, c) - \epsilon_\theta(x_t, t, \varnothing) \right)

ControlNet结构控制

配方小抄管住了“画什么”,却管不住“画得结构对不对”。有几次大厨画出的面碗悬浮在半空中,面条拧成了麻花。小李眉头一皱,把 5 张真实照片的轮廓线拓下来,装订成一本“描红本”:碗是碗的圆弧,面是面的波浪。他告诉大厨:“你照着描红本的线条擦雾,形状锁死,剩下的碗花、光线随便发挥。”这就是 ControlNet 的核心思想——在扩散模型之外,额外输入一张结构条件图(如边缘图、深度图、姿态图),严格约束生成物的几何结构。

ControlNet 的实现非常巧妙:它复制了一份主干网络作为“可训练副手”,副手接收结构条件图,通过零卷积(zero convolution)把信息渐进式地注入原始网络。零卷积的初始权重为零,因此在训练开始时不会干扰大厨原有的手艺,之后随着训练逐步“松绑”,让副手学会在不破坏生成质量的前提下遵守描红本。这样,主干网络负责“画得像红烧牛肉面”,ControlNet 副手负责“长得像那张描红本”——结构和内容被优雅地解耦了。

在增强场景中,ControlNet 的价值是把“语义天马行空”的扩散模型驯化成“结构严谨”的数据生产机器。小李把 5 张照片的边缘图交给大厨,大厨照着描红本画了 1000 张——张张都是规规矩矩的碗与面,但在花纹、配菜、光线上千变万化。这正是增强最需要的“可控多样性”。

y=FΘ(x)+Z(FΘz(x+Z(c)))y = \mathcal{F}_{\Theta}(x) + \mathcal{Z}\left( \mathcal{F}_{\Theta_z}(x + \mathcal{Z}(c)) \right)
ControlNet 前向:原始网络的输出,叠加一个经零卷积注入的结构条件修正项。
  1. 主干网络输出 \(\mathcal{F}_{\Theta}(x)\)大厨原本的能力——对当前带噪图进行去噪处理。
    FΘ(x)\mathcal{F}_{\Theta}(x)
  2. 条件输入 \(c\)描红本,即边缘图、深度图这样的额外结构条件。
    Z(c)\mathcal{Z}(c)
  3. 可训练副本 \(\mathcal{F}_{\Theta_z}\)ControlNet 复制出的“副手网络”,它看着描红本学习结构约束。
    FΘz(x+Z(c))\mathcal{F}_{\Theta_z}(x + \mathcal{Z}(c))
  4. 零卷积 \(\mathcal{Z}\)初始权重为零的卷积层,像一扇慢慢打开的门,让结构条件渐进地影响输出。
    y=FΘ(x)+Z(⋅)y = \mathcal{F}_{\Theta}(x) + \mathcal{Z}(\cdot)

增强实践流程

1000 张画摆在小李面前,他却不敢全收——大厨偶尔也有失手:几张面碗边缘渗出了像素马赛克,还有一张不知为何把牛肉画成了石头。小李请了三位老师傅(质量过滤器)专门挑刺,不符合要求的直接扔进废纸篓。这个环节至关重要:合成样本若带了与真实样本不一致的伪影,AI 学会后就会在真实的照片上犯低级错误。

一套标准的增强流程大致是:先用条件生成模型批量合成候选样本;随后用 CLIP 分数等质量指标过滤低置信度的生成图,必要时人工抽检;再把通过筛选的合成样本按一定比例(通常是 1:1 或 1:4)与原始真实数据混合,放入训练集;最后在验证集上做消融实验——只用原始数据、只用合成数据、两者混合各跑一遍,观察指标变化。值得注意的是,合成数据并非越多越好,盲目的 1:9 大比例混合可能让模型被“AI 的画风”带跑,偏离真实世界的分布。

小李把最终筛选出的 800 张画和原片一起塞进 AI 的练习册,一周后再测:无论俯拍、侧拍、加滤镜,AI 都能稳稳认出红烧牛肉面。这就是“生成—过滤—混合—验证”四步法在实战中的力量:先确保数量,再确保质量,最后用实验数据说话。

最终训练集=真实样本∪Filter(扩散生成样本)\text{最终训练集} = \text{真实样本} \cup \text{Filter}\left( \text{扩散生成样本} \right)
增强决策:真实样本全部保留,生成的候选样本先过滤再并入,且通常限制其占比。
  1. 真实样本集那 5 张来之不易的手拍照片,是“基本面”,永远保留。
    真实样本\text{真实样本}
  2. 过滤操作 Filter用质量分数把关,剔除伪影和不合语义的生成图,相当于三位挑刺老师傅。
    Filter(⋅)\text{Filter}(\cdot)
  3. 并集 \(\cup\)把两类样本合并成一个训练集,共同进入模型的训练过程。
    真实样本∪Filter(生成样本)\text{真实样本} \cup \text{Filter}(\text{生成样本})

低数据场景应用

小李的“魔法大厨”出了名,两单生意找上门来。第一家是医院:胰腺癌的 CT 影像数据集里,带病灶的切片只有 31 张,医生标注费时费力,AI 模型怎么训都欠火候。大厨用这 31 张图的边缘作为描红本,配上方子“胰腺病灶,低密度区域”,一口气生成上千张带病灶的切片,AI 的病灶检出率立刻上了一个台阶。第二家是电子工厂:电路板质检流水线上,良品率高达 99.7%,坏品(划痕、虚焊)图片一年才攒下 40 张,缺陷检测模型形同虚设。大厨如法炮制,把 40 张划痕图扩散成 3000 张不同位置、不同深浅的划痕样本,检测模型的召回率从 62% 提升到 94%。

这两个场景有一个共同点:目标类别的样本极其稀缺,而生成模型恰好可以从少量样本中学到该类别的先验分布,再通过条件控制批量产出“和而不同”的新样本。医学与工业之外,少样本分类、罕见物种识别、长尾商品识别等任务同样适用。评估方法则以“增强前后模型在真实测试集上的性能差”为准——毕竟增强的价值最终要体现在实际任务的指标上,而不是生成图的精美程度。

小李看着医院的感谢信和工厂的验收单,感慨万千:当年只有 5 张红烧牛肉面引发的难题,如今被“撒噪点、擦雾、描红本”三板斧解决得漂漂亮亮。数据稀缺不再是绝症——只要有一丁点火种,扩散模型就能为 AI 烹制出一桌满汉全席。

性能增益=Accuracy真实+合成−Accuracy仅真实\text{性能增益} = \text{Accuracy}_{\text{真实}+\text{合成}} - \text{Accuracy}_{\text{仅真实}}
性能增益:混合训练后的模型准确率减去只用真实数据的准确率,差值越大增强越有效。
  1. 混合训练准确率在真实数据与合成数据共同训练后,模型在真实测试集上的表现。
    Accuracy真实+合成\text{Accuracy}_{\text{真实}+\text{合成}}
  2. 基线准确率只用原始稀缺数据训练时的模型表现,作为对照标杆。
    Accuracy仅真实\text{Accuracy}_{\text{仅真实}}
  3. 差值 \(\Delta\)增强带来的净收益,衡量“魔法大厨”这顿饭到底值不值。
    性能增益\text{性能增益}

AI 应用场景

医学影像罕见病灶扩充

阶段:数据准备阶段

解决的问题:胰腺癌 CT、罕见皮肤病等医学影像中,病灶样本极度稀缺,且医生标注成本极高。传统增强(翻转、旋转)无法产生新的病灶形态,模型对真实病灶的泛化能力差。基于扩散模型的增强可以从少量病灶图像中学习病灶的纹理与形态分布,生成大量逼真且多样的病灶样本。

具体案例:某三甲医院利用 31 张胰腺癌 CT 病灶切片,通过 ControlNet 注入病灶边缘图、并以文本提示词引导生成,扩充至 1200 张合成切片。与原始数据混合训练后,模型在真实测试集上的病灶检出敏感性提升了约 18%。医院还额外设了一道“医生抽检”关卡,确保合成的病变特征与病理学常识一致。

工业质检缺陷样本补全

阶段:数据增强与模型训练阶段

解决的问题:工业产线良品率极高,缺陷(划痕、脏污、虚焊)样本天然稀少且形态多样,缺陷检测模型容易漏检“没见过的缺陷”。扩散模型可以学习少量缺陷样本的分布,合成各种位置、光照、颜色下的缺陷图,补足训练集的“长尾”。

具体案例:某电子工厂收集了 40 张电路板划痕缺陷图,用 Stable Diffusion + 边缘条件生成 3000 张缺陷样本,并混合 2000 张真实良品图训练检测模型。在真实产线测试中,缺陷召回率从 62% 提升到 94%,误检率仅微增 0.3%,顺利通过产线验收。

Python 演示

python48 行
import numpy as npfrom sklearn.neural_network import MLPRegressor rng = np.random.default_rng(42) def make_real_samples(n=30, t=60):    """模拟稀缺类别的真实样本:带随机相位的正弦波"""    x = np.linspace(0, 6, t)    return np.array([np.sin(x + p) + 0.02 * rng.standard_normal(t)                     for p in rng.uniform(0, 0.5, n)]) real = make_real_samples()T = 80betas = np.linspace(0.0001, 0.02, T)alpha_bar = np.cumprod(1.0 - betas) def forward(x0, t):    """前向加噪: 保留信号 + 注入噪声"""    noise = rng.standard_normal(x0.shape)    a = alpha_bar[t]    return np.sqrt(a) * x0 + np.sqrt(1 - a) * noise, noise X_train, Y_train = [], []for _ in range(2000):    i = rng.integers(0, len(real))    t = rng.integers(0, T)    xt, eps = forward(real[i], t)    X_train.append(np.concatenate([xt, [t / T]]))    Y_train.append(eps) model = MLPRegressor(hidden_layer_sizes=(64, 64), max_iter=200, random_state=0)model.fit(np.array(X_train), np.array(Y_train)) def denoise_sampling(n_gen=20):    """反向去噪: 从纯噪声出发, 逐步擦雾生成新样本"""    for _ in range(n_gen):        x = rng.standard_normal(60)        for t in range(T - 1, -1, -1):            a = alpha_bar[t]            noise_pred = model.predict(np.concatenate([x, [t / T]]).reshape(1, -1))            x = (x - (1 - betas[t]) / np.sqrt(1 - a) * noise_pred) / np.sqrt(1 - betas[t])        yield x gen = list(denoise_sampling(20))gen = np.array(gen)print("真实样本方差:", real.var(axis=1).mean().round(4))print("生成样本方差:", gen.var(axis=1).mean().round(4))print("生成样本形状:", gen.shape, "-> 新增了", len(gen), "个'红烧牛肉面'样本")
目的:用 numpy + sklearn 实现一个极简扩散模型,从 30 条真实正弦波(稀缺类样本)出发,通过“前向加噪—训练去噪—反向采样”三步,合成 20 条全新的同类波形数据,直观演示基于扩散模型的增强全过程。
  1. real = make_real_samples()生成 30 条带随机相位的正弦波,代表仅有的 5 张“红烧牛肉面”照片。
  2. alpha_bar = np.cumprod(1.0 - betas)计算逐步累积的信号保留系数,控制“雾气”越来越浓。
  3. forward(x0, t)前向加噪的核心:用保留系数缩放原图、噪声系数缩放随机噪声,得到第 t 步“蒙雾图”。
  4. np.concatenate([xt, [t / T]])把当前噪化样本与时间步拼接,作为网络输入,让模型知道“雾厚不厚”。
  5. model = MLPRegressor(...)用两层神经网络充当“大厨的手”,学习预测被添加的噪声。
  6. denoise_sampling(n_gen=20)从纯噪声 rng.standard_normal(60) 出发,逐步调用模型减噪,反复“擦雾”形成新样本。
  7. for t in range(T - 1, -1, -1)从最浓的雾(第 79 步)一路擦回干净状态(第 0 步)。
  8. yield x每生成一条新样本就交给调用方,模拟大厨批量出摊。
  9. print("生成样本方差:", ...)输出方差对比,验证生成样本在统计特征上与真实样本接近,同时数量翻倍。

常见误区

误区我以为用 Stable Diffusion 生成增强数据,就是把已有的几张图放进模型里,让它输出换了个风格的版本,比如把照片变成油画风格。这样想对吗?总觉得生成图就是某种“高级滤镜”的产物。

正解扩散模型不是对原图做变换,而是学习整个类别的数据分布,然后从纯噪声中采样出全新样本。加滤镜、翻转、调色这类传统增强只改变表象特征,不创造新的语义内容;而扩散模型生成的是“分布中从未出现过的新个体”。好比大厨不是把同一碗面换个滤镜拍,而是学会了“红烧牛肉面普遍长什么样”,然后从零画出一碗全新的面。

为何常见:因为 Stable Diffusion 的输入输出都是图像,且生成结果往往与参考图风格相近,容易让人误以为是“风格迁移”类操作。

误区生成出来的样本越多,训练集越大,模型的效果就一定越好。我把 9000 张生成图和 1000 张真实图一起训练,结果模型在真实测试集上反而掉点了,这是怎么回事?

正解合成数据虽然数量充足,但存在伪影、分布偏移和重复模式。如果生成样本中带了真实世界不存在的像素特征,模型会学到这些“AI 画风”,从而在真实照片上犯错。正确做法是:质量过滤 + 控制合成数据比例(如 1:1 或 1:4)+ 消融实验验证。小李也是先让老师傅挑刺,再按比例掺入,才保证了 AI 分得清“画的”和“真实的面”。

为何常见:人类直觉上“数据越多越好”,而忽视了生成数据与真实数据之间的分布差异是有代价的。

误区我给了 ControlNet 一张边缘图,它生成的图里物体的形状完全正确,那应该可以不要文本提示词了吧?边缘图已经把结构都定死了,语义肯定也对。

正解ControlNet 约束的是“结构”(边缘、深度、姿态),而不是“语义”。只给描红本不给配方小抄,大厨画出碗的形状,却分不清该往碗里画牛肉面还是蛋糕。真实使用中必须同时提供文本提示词或类别条件,才能确定“这个结构代表什么物体”。两者搭配,一个锁形状、一个定内容,缺一不可。

为何常见:因为边缘图看起来非常具体,“像”就已经让人感觉语义也被确定了,混淆了结构与语义的层次。

误区既然我用提示词“红色宝马汽车”去生成,那每张生成图的标签天然就是“红色宝马汽车”,直接倒进训练集就行,不用人工看。

正解扩散模型可能生成语义漂移的样本:背景把“红色”染成“橙色”,或者车辆轮廓缺失。如果这类错误样本带着错误标签进入训练集,模型会学坏。落地流程中普遍用 CLIP 相似度分数进行自动过滤,再辅以人工抽检,确保每张生成图确实配得上它的标签。医生抽检病灶切片、老师傅挑刺废稿,都是必要的把关环节。

为何常见:生成图像太逼真、太像目标类别,让人放松了对“以假乱真却出错”的警惕。

面试题

Q1. 基于扩散模型的数据增强主要解决什么问题?

单选题 · easy

  • A.特定类别样本稀缺← 正确答案
  • B.模型推理速度过慢
  • C.图片分辨率不够高
  • D.标注预算特别充足

答案:A。扩散模型增强的核心价值是在样本稀缺、类别失衡时补充训练数据。推理速度慢是模型压缩的课题;分辨率不高是超分辨率任务的课题;标注充足时根本不需要生成增强。面馆老板只有一个“样本太少”的痛点,最对症的药方就是生成新样本。

Q2. 扩散模型的前向过程(加噪)在做什么?

单选题 · easy

  • A.把每张图片直接替换为空白图
  • B.将图片压缩成低分辨率小图
  • C.逐步把图片变成纯噪声← 正确答案
  • D.为图片标注类别标签

答案:C。前向加噪是一步一步掺入高斯噪声,最终让图片退化为纯噪声,对应大厨撒颜料把画面完全盖住的过程。压缩图片、替换空白图、标注标签都不是前向过程的定义。理解“毁掉画面”与“学会复原”的对偶关系,是理解扩散模型的关键。

Q3. 训练扩散模型时,神经网络的主要预测目标是什么?

单选题 · easy

  • A.加噪后的整张图片
  • B.图片所属的物体类别
  • C.图片的清晰程度分数
  • D.被添加的噪声← 正确答案

答案:D。扩散模型的训练目标是最小化“预测噪声与实际噪声”之间的误差,网络学会的是“猜雾”,即估算某一步被注入的噪声。注意它与分类网络预测类别完全不同。大厨练的不是“认出这碗面”,而是“看出这块雾该怎么擦”。

Q4. Classifier-Free Guidance 中的引导强度 s 增大时,会带来什么效果?

单选题 · mid

  • A.生成样本多样性显著提升
  • B.条件信息对采样的影响被放大← 正确答案
  • C.模型训练速度大幅加快
  • D.生成样本分辨率自动提高

答案:B。s 直接放大“有条件预测与无条件预测的差值”对采样的影响:s 越大,模型越听配方的话,生成样本更贴合条件,但多样性下降;s 越小越自由但可能跑偏。它不改变训练速度,也不干预分辨率,只调节采样时的“听话程度”。

Q5. ControlNet 在数据增强流程中的核心作用是什么?

单选题 · mid

  • A.将任何文本直接变成训练标签
  • B.自动标注所有无标签真实数据
  • C.用边缘图等条件约束生成形状← 正确答案
  • D.把生成图片的分辨率翻倍

答案:C。ControlNet 通过额外结构条件(边缘、深度、姿态图)约束生成物的几何形状,保证“结构正确”。它不负责文本转标签,不自动标注真实数据,也不做超分辨率。它相当于大厨的描红本,把碗和面的形状锁死,而配方和颜色交给扩散模型本身。

Q6. 在医学影像中使用扩散模型生成病灶样本,最需要警惕的风险是什么?

单选题 · hard

  • A.生成过程消耗太多电力
  • B.病理特征错误会误导模型← 正确答案
  • C.医生的标注习惯被改变
  • D.图片存储空间严重不足

答案:B。如果生成的病灶图像在病理特征上有误(比如把钙化点画成肿瘤),模型会学到错误规律,临床使用时可能造成漏诊或误诊。因此医学合成样本必须经过医生抽检和 CLIP 过滤。电力、存储属于工程成本问题,不构成核心风险,医生的标注习惯也不会因增强而改变。

Q7. 传统数据增强(翻转、裁剪、调色)与基于扩散模型的增强,核心差异是什么?

单选题 · easy

  • A.传统增强需要更长训练时间
  • B.传统增强无需使用任何真实数据
  • C.后者生成的图完全不可控
  • D.前者不变语义,后者生成新语义← 正确答案

答案:D。翻转、裁剪、调色只是对同一语义内容的像素级变换,不产生新的语义信息;扩散模型通过学习“类别分布”能生成从没见过但语义一致的全新样本。传统增强也需要真实数据,生成图也可以通过条件控制,因此 A/B/C 均不正确。

Q8. 以下哪些做法属于基于扩散模型的增强落地流程?

多选题 · mid

  • A.用提示词批量生成候选样本← 正确答案
  • B.用 CLIP 分数过滤低质量生成图← 正确答案
  • C.将合成样本按比例混入真实数据← 正确答案
  • D.用合成数据完全替换全部真实数据

答案:ABC。规范流程是“生成→过滤→混合→验证”:用提示词批量生成候选,用质量分过滤,按比例混合真实数据训练。完全替换真实数据是错误的,会丢弃真实分布锚点,导致模型被“AI 画风”带偏。这也呼应了面馆老板“先挑刺再入册”的做法。

Q9. 关于 ControlNet 的理解,以下说法正确的有哪些?

多选题 · hard

  • A.条件图可以是边缘、深度或姿态图← 正确答案
  • B.只用边缘图就能确保生成语义正确
  • C.它通过与主干网络的可训练副本注入条件← 正确答案
  • D.零卷积在训练初期就赋予最大影响

答案:AC。ControlNet 支持边缘、深度、姿态等多种结构条件,并通过可训练副本+零卷积渐进注入。零卷积初始权重为零,因此训练初期不干扰主干能力,而非“立即赋予最大影响”。只有结构条件没有文本条件,语义仍会跑偏,故 B 错误。

Q10. 低数据场景下,基于扩散模型的增强常见于哪些任务?

多选题 · mid

  • A.医学影像罕见病灶检测← 正确答案
  • B.工业缺陷样本扩充← 正确答案
  • C.海量互联网文本索引
  • D.少样本图像分类← 正确答案

答案:ABD。医学影像、工业缺陷、少样本分类都是典型的目标样本稀缺场景,扩散增强可以补足该类别的分布宽度。海量互联网文本本来就不稀缺,且扩散模型主要面向连续信号(图像/音频),不适用于文本索引问题,因此 C 不在应用范围之内。