想象你接管了一家“仿画工坊”:画师老周负责临摹名画,鉴定师老陈负责验真假。老周每交一张作品,老陈就挑毛病;老周再改,老陈再辨。几个回合下来,老周的画从抽象鬼画符慢慢变成足以乱真的高仿。这套“互相折磨、共同进步”的对抗机制,正是 GAN 数据合成的核心。 后来工坊升级了业务:客户可以“下订单”,要“戴帽子的橘猫”就给出条件标签;还能让一张静画变成连贯动画,人物的脸不能忽男忽女。更重要的是,这些高仿作品不仅能在展厅骗过鉴定师,还能进入你的数据仓库当训练数据——扩充稀缺样本、合成脱敏人脸、构造自动驾驶极端场景。当然,你也得学会用 FID 这样的“尺子”量一量合成画作的质量,再按流程训练和部署。本文就用“仿画工坊”的故事,带你把 GAN 数据合成从原理看到落地。

岗位关联

对 AI 从业者来说,掌握 GAN 数据合成,意味着能用低成本批量生成图像和视频数据,解决数据稀缺、类别失衡和隐私合规问题,是数据工程师与算法工程师在真实项目中值得掌握的“造数”能力。

目录
  1. 可视化演示
  2. GAN基础原理:画师与鉴定师的对弈
  3. 图像生成模型:从噪点涂鸦到高清画作
  4. 条件生成控制:按需求定制画作
  5. 视频合成技术:让画面动起来
  6. 合成数据应用:让假画进入数据仓库
  7. 质量评估方法:用尺子量一量
  8. 实战工作流:从零到一落地
  9. AI 应用场景
  10. Python 演示
  11. 常见误区
  12. 面试题

可视化演示

动态演示GAN数据合成的核心机制,通过源头/管道/节点/终端四种模式展示关键概念与交互流程。

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

GAN数据合成:TSTR TSTR评估范式的核心流程与原 合成数据替代真实数据训练的性能 核心机制可视化 GAN数据合成整体架构与关键组件

GAN基础原理:画师与鉴定师的对弈

仿画工坊里,画师老周每天交一幅“名画”,鉴定师老陈负责挑刺。最初老周的画连颜料都没干透,老陈不用细看就扔出去。老周便模仿被扔掉的画作里的笔触;老陈也开始研究真迹,专找细节漏洞。两人互相逼对方进步,这就是 GAN 最朴素的画面。

技术世界里,画师叫生成器,老陈叫判别器。生成器吃进一段随机噪声,吐出一张假图像;判别器读入一张图,输出它是真图的概率。真实数据集是“真迹库”,生成器输出是“伪作”。两者轮流升级,最终到达一个微妙平衡:伪作足够像真迹,判别器只能瞎猜。

整个对抗过程写成数学语言,就是一个极小极大问题:

这个公式读起来不难:判别器想让整体数值尽量大,因为这样才能认出真画、揭穿伪作;生成器想让整体数值尽量小,因为这样才能让伪作骗过判别器。

老周和老陈在一次次交锋中共同进化,最后老周的画能挂进展厅,这就是 GAN 基础原理的完整故事。

min⁡Gmax⁡DV(D,G)=Ex∼pdata[log⁡D(x)]+Ez∼pz[log⁡(1−D(G(z)))]\displaystyle \min_{G}\max_{D} V(D,G)=\mathbb{E}_{\boldsymbol{x}\sim p_{\text{data}}}[\log D(\boldsymbol{x})]+\mathbb{E}_{\boldsymbol{z}\sim p_z}[\log(1-D(G(\boldsymbol{z})))]
  1. 生成器 G 的作用把随机噪声 z 映射成一张假图像,公式里记为 \(G(\boldsymbol{z})\)。
    G(z)G(\boldsymbol{z})
  2. 判别器 D 的评分对任意输入图像 x 输出一个 0 到 1 之间的概率,\(D(\boldsymbol{x})\) 表示判断为真图的概率。
    D(x)∈[0,1]D(\boldsymbol{x})\in[0,1]
  3. 真样本项从真实数据分布 \(p_{\text{data}}\) 中取一批真图,让 \(D(\boldsymbol{x})\) 尽量接近 1,所以判别器要最大化 \(\log D(\boldsymbol{x})\)。
    Ex∼pdata[log⁡D(x)]\mathbb{E}_{\boldsymbol{x}\sim p_{\text{data}}}[\log D(\boldsymbol{x})]
  4. 假样本项从噪声分布 \(p_z\) 抽样生成伪作,让 \(D(G(\boldsymbol{z}))\) 尽量接近 0,所以判别器最大化 \(\log(1-D(G(\boldsymbol{z})))\)。
    Ez∼pz[log⁡(1−D(G(z)))]\mathbb{E}_{\boldsymbol{z}\sim p_z}[\log(1-D(G(\boldsymbol{z})))]
  5. 极小极大博弈外层 \(\min_{G}\) 让生成器最小化整体损失,内层 \(\max_{D}\) 让判别器最大化整体损失,二者形成对抗闭环,最终收敛到纳什均衡。
    min⁡Gmax⁡DV(D,G)\min_{G}\max_{D} V(D,G)

图像生成模型:从噪点涂鸦到高清画作

画师老周不能只会临摹某一张画,他需要一套稳定的作画流程:先打草稿,再描轮廓,再上色。早期 GAN 结构粗糙,训练常常画崩,后来研究者提出了 DCGAN,相当于给画师配了一个标准画室:生成器用反卷积把噪声一块块放大成图像,判别器用带步长的卷积一层层压缩信息做判断。

DCGAN 让 GAN 的训练稳定许多。它把普通卷积神经网络中的池化层换成“步长卷积”和“反卷积”,每一层后面加批归一化,生成器用 ReLU 激活,判别器用 LeakyReLU 激活。这套结构让“从噪声到图像”的映射更平滑。更高分辨率的图像则采用渐进式生成:先画 4×4 的草稿,训练稳定后再逐步放大到 8×8、16×16,直到高清,避免一步到位把画面画崩。

反卷积上采样时,特征图尺寸会按下面这个公式变化:

这个公式就像一个“画布放大规则”:输入画布是 \(H_{\text{in}}\),步长决定放大倍数,卷积核决定每次触摸几个像素,边缘填充会改变最终尺寸。

老周从乱涂鸦一步步升级到高清输出,靠的不是玄学手感,而是清晰的结构和每一层“画布尺寸”的精确控制。

Hout=(Hin−1)×s+k−2p\displaystyle H_{\text{out}}=(H_{\text{in}}-1)\times s + k - 2p
  1. 输入尺寸 \(H_{\text{in}}\)反卷积层输入特征图的边长,也就是当前草稿的尺寸。
    HinH_{\text{in}}
  2. 步长 \(s\)每次滑动的格子数。步长大于 1 时,特征图会被放大,相当于把草稿间距拉开再补细节。
    ss
  3. 卷积核 \(k\)生成器在放大后的画布上采样时使用的窗口大小,决定每个输出像素参考多少邻居。
    kk
  4. 填充 \(p\)在特征图边缘补零的像素数量,用来控制输出画布边缘是否有额外空白。
    pp
  5. 输出尺寸 \(H_{\text{out}}\)反卷积后特征图的新边长,公式把它和输入、步长、卷积核、填充串起来。
    Hout=(Hin−1)×s+k−2pH_{\text{out}}=(H_{\text{in}}-1)\times s + k - 2p

条件生成控制:按需求定制画作

客户不再满足于随机画作,而是要求“画一只戴帽子的橘猫”。于是工坊上线了接单系统:把订单要求 y 同时给画师和鉴定师看。画师要根据订单作画,鉴定师也要根据订单验货,这就是条件生成。

条件生成最经典的做法是 cGAN。类别标签、属性描述、甚至一段文本都可以作为条件 y,它与随机噪声 z 一起拼接到生成器输入;判别器在判断真假时也会看到 y。这样模型能学会“同一张脸,微笑和生气是两种输出”,而不是把所有样本混在一起随机生成。

cGAN 的目标函数只比原始 GAN 多了一个“条件”:

有了条件生成,工坊不再是“画到哪算哪”,而是“客户点什么,画师就画什么”。属性编辑、可控采样,本质上都是在这个订单系统里加入更细的备注。

min⁡Gmax⁡DV(D,G)=Ex,y∼pdata[log⁡D(x∣y)]+Ez∼pz,y∼py[log⁡(1−D(G(z∣y)))]\displaystyle \min_{G}\max_{D} V(D,G)=\mathbb{E}_{\boldsymbol{x},y\sim p_{\text{data}}}[\log D(\boldsymbol{x}|y)]+\mathbb{E}_{\boldsymbol{z}\sim p_z,y\sim p_y}[\log(1-D(G(\boldsymbol{z}|y)))]
  1. 条件 \(y\)就像订单备注,可以是类别标签、属性向量或文本描述,控制生成结果的方向。
    yy
  2. 真实样本条件项判别器在知道 y 的前提下评价真实样本,如果图片内容和订单不符,就会被判为假。
    D(x∣y)D(\boldsymbol{x}|y)
  3. 假样本条件项生成器根据噪声 z 和条件 y 输出 \(G(\boldsymbol{z}|y)\),判别器同样结合 y 来鉴定。
    G(z∣y)G(\boldsymbol{z}|y)
  4. 极小极大目标外层让生成器学会“按照订单造假”,内层让判别器学会“按订单验货”。
    min⁡Gmax⁡DV(D,G)\min_{G}\max_{D} V(D,G)

视频合成技术:让画面动起来

只画静画还不够,客户想要动画片。动画不是把几张画随意连起来,而是人物长相、背景、动作都要连贯,否则就成了“鬼畜视频”。老周必须保证上一帧的橘猫,下一帧还是同一只橘猫。

视频合成可以拆成几个子任务:帧预测是根据已有帧预测未来帧;时序一致性是让相邻帧之间的物体不跳变;动作迁移是把一个人的动作“搬”到另一个人身上;视频插帧是在两帧之间补出中间帧,让慢动作更流畅。它们都绕不开同一个核心约束——时间维度的连续。

一个常用的时序损失函数是同时约束特征空间和像素空间的一致性:

老周画动画时必须时刻记住上一帧,否则顾客会退货。视频合成也是一样:单帧好看只是入场券,连续不穿帮才是真本事。

Ltime=E[∥ϕ(I^t+1)−ϕ(It+1)∥22]+λE[∥I^t+1−It+1∥1]\displaystyle L_{\text{time}}=\mathbb{E}\left[\left\| \phi(\hat{I}_{t+1})-\phi(I_{t+1}) \right\|_2^2\right] + \lambda \mathbb{E}\left[\left\| \hat{I}_{t+1}-I_{t+1} \right\|_1\right]
  1. 预测帧 \(\hat{I}_{t+1}\)模型根据第 t 帧生成的下一帧,是“画师脑补的未来画面”。
    I^t+1\hat{I}_{t+1}
  2. 真实帧 \(I_{t+1}\)视频中真实存在的下一帧,是标准答案。
    It+1I_{t+1}
  3. 特征一致性项用特征提取网络 φ 把预测帧和真实帧都映射到高层语义空间,算它们之间的欧氏距离;距离越小,说明“画风”越一致。
    ∥ϕ(I^t+1)−ϕ(It+1)∥22\left\| \phi(\hat{I}_{t+1})-\phi(I_{t+1}) \right\|_2^2
  4. 像素一致性项直接用 L1 距离计算每个像素的差异,防止生成画面整体漂移。
    ∥I^t+1−It+1∥1\left\| \hat{I}_{t+1}-I_{t+1} \right\|_1
  5. 权重 \(\lambda\)调节“语义一致”和“像素精细”哪个更重要。
    λ\lambda

合成数据应用:让假画进入数据仓库

高仿画不再只挂在展厅,它们被扫描进素材库,成为训练数据。真实数据就像稀有名画,数量少、价格贵、还可能涉及隐私;合成数据则能批量复制、随意换装、不泄露真人身份。合成数据最重要的应用场景,就是数据增强。

在数据增强中,GAN 可以针对小样本类别专门生成数据。比如医疗影像里罕见病样本只有几百张,条件 GAN 就能按“患病”标签补齐更多病例;人脸识别场景里,可以用合成人脸替代真实人脸,规避隐私合规风险;自动驾驶场景里,还能把晴天视频转成雨夜视频,让模型见过更多极端场景。此外,合成数据还能做域自适应:先渲染大量带标注的虚拟图,再用 GAN 把虚拟图“翻译”成接近真实场景的图像,缩小仿真与真实世界的差异。

数据增强后的训练集可以写成这样一个并集:

素材库变大了,模型能学到的形态也更多。但千万不要把老周的高仿画当成真迹本身,合成数据是“帮手”而不是“替身”。

Dtrain=Dreal∪{G(zi∣yi)}i=1N\displaystyle \mathcal{D}_{\text{train}}=\mathcal{D}_{\text{real}}\cup \left\{ G(\boldsymbol{z}_i \mid y_i) \right\}_{i=1}^{N}
  1. 真实数据集合 \(\mathcal{D}_{\text{real}}\)原始真迹库,虽然珍贵但数量有限。
    Dreal\mathcal{D}_{\text{real}}
  2. 条件生成样本生成器按标签 \(y_i\) 和噪声 \(\boldsymbol{z}_i\) 生成第 i 个合成样本,相当于按订单批量画新画。
    G(zi∣yi)G(\boldsymbol{z}_i \mid y_i)
  3. 并集 \(\cup\)把真实数据和合成数据拼成一个更大的训练集,而不是用合成数据完全替代真实数据。
    Dreal∪Dsyn\mathcal{D}_{\text{real}}\cup \mathcal{D}_{\text{syn}}
  4. 生成数量 \(N\)需要补多少张合成图,通常根据类别失衡比例和业务需求决定。
    NN

质量评估方法:用尺子量一量

鉴定师老陈再厉害,主观眼力也会骗人。有的伪作乍一看很美,放大后笔触混乱;有的画师只会画同一种橘猫,样式过于单一。于是工坊引入了两把“尺子”:FID 和 IS。

FID 衡量真实图像集合与生成图像集合在特征空间中的分布距离。它先让预训练网络给每张图提取高层特征,再比较两堆特征的均值和协方差。FID 越低,说明生成图像的分布越接近真实分布。IS 则从分类器的角度打分:生成图像越容易被识别成某个明确类别,同时各类别越多样,IS 越高。除此之外,主观评测和下游任务效果也不能省——因为机器指标好看不等于业务真正好用。

FID 的计算公式如下:

FID 像一把游标卡尺,能快速测出“伪作群体的整体水准”。但它量的是整体分布,不是单张画的业务价值,所以真正上线前还要让下游模型跑一遍。

FID=∥μr−μg∥22+Tr⁡(Cr+Cg−2(CrCg)1/2)\displaystyle \text{FID}=\left\| \boldsymbol{\mu}_r-\boldsymbol{\mu}_g \right\|_2^2+\operatorname{Tr}\left(\boldsymbol{C}_r+\boldsymbol{C}_g-2(\boldsymbol{C}_r \boldsymbol{C}_g)^{1/2}\right)
  1. 特征均值 \(\boldsymbol{\mu}_r, \boldsymbol{\mu}_g\)真实集和生成集在特征空间里的“重心”。
    μr,μg\boldsymbol{\mu}_r, \boldsymbol{\mu}_g
  2. 均值距离两个重心的欧氏距离,衡量整体风格是否偏了。
    ∥μr−μg∥22\left\| \boldsymbol{\mu}_r-\boldsymbol{\mu}_g \right\|_2^2
  3. 协方差矩阵 \(\boldsymbol{C}_r, \boldsymbol{C}_g\)描述特征在哪些方向上变化、变化多大,等价于“画作风格的展开程度”。
    Cr,Cg\boldsymbol{C}_r, \boldsymbol{C}_g
  4. 矩阵平方根比较两个协方差矩阵之间的差异,捕捉分布形状是否一致。
    (CrCg)1/2(\boldsymbol{C}_r \boldsymbol{C}_g)^{1/2}
  5. 迹运算 \(\operatorname{Tr}\)把矩阵对角线元素求和,把矩阵差异压成一个便于排序的分数。
    Tr⁡(⋅)\operatorname{Tr}(\cdot)

实战工作流:从零到一落地

工坊从“老周乱画”发展到“高仿生产线”,靠的不只是天赋,而是一套标准流程:先接单,再准备画材,然后训练试画,最后交付验收。GAN 数据合成的落地也要遵循这样的工作流。

第一步是数据准备:整理真实数据,清洗低质量图片,确定要生成哪些类别、各需要多少张,并划分训练集和验证集。第二步是训练技巧:通常用 Adam 优化器,学习率可以设在 0.0002 左右,批次大小取 64;要同时观察生成器损失和判别器损失,避免一方过强;还要定期保存 checkpoint,防止后期模式崩溃。第三步是生成部署:训练好后用批量推理生成图片,做去重、清晰度筛选、黑白名单过滤,再写入数据仓库。第四步是效果验证:把合成数据加入下游模型训练,观察在真实测试集上的准确率是否有提升。

判断合成数据有没有用,最直接的办法是比较增强前后的下游指标:

老周的仿画工坊能持续接单,靠的是每批画都有验收记录。GAN 数据合成同样如此,只有把流程跑通、把效果测出来,才能让合成数据成为团队可复用的数据资产。

ΔAcc=Accsyn−Accbase\displaystyle \Delta \text{Acc}=\text{Acc}_{\text{syn}}-\text{Acc}_{\text{base}}
  1. 基准准确率 \(\text{Acc}_{\text{base}}\)只用真实数据训练下游模型得到的准确率,是验证的起点。
    Accbase\text{Acc}_{\text{base}}
  2. 增强后准确率 \(\text{Acc}_{\text{syn}}\)加入 GAN 合成数据后,同一测试集上的准确率。
    Accsyn\text{Acc}_{\text{syn}}
  3. 差值 \(\Delta \text{Acc}\)如果为正,说明合成数据真正带来了增益;如果为负,就要回到数据准备或训练技巧环节排查问题。
    ΔAcc\Delta \text{Acc}

AI 应用场景

医疗影像小样本增强

阶段:数据准备与数据增强

解决的问题:罕见病影像样本少,直接重复采样容易让模型过拟合;真实医疗数据又涉及患者隐私,难以开放共享。用条件 GAN 按“疾病类别”生成更多影像,可以在不侵犯隐私的前提下扩充稀有样本。

具体案例:某医院只有 200 张罕见肺炎 CT 和 5000 张正常 CT。算法团队用 cGAN 以“是否患病”为条件生成 2000 张合成肺炎影像,加入训练集后,下游分类模型在真实测试集上的 F1 分数提升了约 8 个百分点。

人脸识别隐私保护

阶段:合成数据生成与隐私合规

解决的问题:采集真实人脸需要用户授权,合规成本高;直接开源真实人脸数据也有泄露风险。GAN 可以生成不存在的合成人脸,既保留年龄、表情、姿态等属性,又不对应任何真实身份。

具体案例:某安防公司需要 10 万张不同姿态和光线条件下的人脸图像做预训练。他们用条件 GAN 生成合成人脸数据集,先做模型预训练,再用少量真实人脸微调,最终在真实测试集上的召回率与纯真实数据训练接近,且完全规避了人脸授权问题。

自动驾驶视频合成

阶段:视频合成与数据增强

解决的问题:雨夜、逆光、突发横穿等危险场景很难大量采集,实车采集成本高且安全风险大。GAN 视频合成可以把白天道路视频转成雨天夜景,同时保持帧间连续,让感知模型低成本见识更多极端情况。

具体案例:某自动驾驶团队用视频 GAN 对 5000 段晴天高速视频做天气和光照迁移,生成雨夜训练集。加入这些合成视频后,目标检测模型在真实雨夜测试集上的 mAP 提升了 5.2%,且没有出现明显的帧间闪烁问题。

Python 演示

python51 行
import numpy as np def make_real_data(n=64, seed=0):    rng = np.random.default_rng(seed)    label = rng.integers(0, 2, size=(n, 1))    return np.hstack([label, 2.0 * label + rng.normal(0, 0.3, size=(n, 1))]).astype(np.float32) class MiniGAN:    def __init__(self, seed=2024):        rng = np.random.default_rng(seed)        self.g_w = rng.normal(0, 0.1, (2, 2))        self.d_w = rng.normal(0, 0.1, (2, 1))        self.d_b = np.zeros((1,))     @staticmethod    def _sigmoid(x):        return 1.0 / (1.0 + np.exp(-np.clip(x, -30, 30)))     def generate(self, noise):        return noise @ self.g_w     def discriminate(self, x):        return self._sigmoid(x @ self.d_w + self.d_b)     def train_step(self, real, noise, lr=0.03):        fake = self.generate(noise)        d_real = self.discriminate(real)        d_fake = self.discriminate(fake)        d_loss = -np.mean(np.log(d_real + 1e-8) + np.log(1.0 - d_fake + 1e-8))         grad_real = (d_real - 1.0) / len(real)        grad_fake = d_fake / len(fake)        self.d_w -= lr * (real.T @ grad_real + fake.T @ grad_fake)        self.d_b -= lr * (grad_real.sum() + grad_fake.sum())         g_loss = -np.mean(np.log(d_fake + 1e-8))        grad_g = self.d_w * ((d_fake - 1.0) / len(fake))[:, None]        self.g_w -= lr * (noise.T @ grad_g)        return d_loss, g_loss if __name__ == "__main__":    gan = MiniGAN(seed=2024)    for epoch in range(300):        real = make_real_data(64, seed=epoch)        noise = np.random.default_rng(epoch).normal(size=(64, 2))        d_loss, g_loss = gan.train_step(real, noise)        if epoch % 50 == 0:            print(f"epoch {epoch}: d_loss={d_loss:.3f}, g_loss={g_loss:.3f}")    samples = gan.generate(np.random.default_rng(0).normal(size=(1000, 2)))    print("生成样本均值:", samples.mean(axis=0))    print("真实样本均值:", make_real_data(1000, seed=0).mean(axis=0))
目的:用 NumPy 实现一个迷你 GAN,演示生成器和判别器如何通过对抗训练,学会生成接近真实分布的数据。
  1. def make_real_data(n=64, seed=0):生成真实的二维数据,模拟“真迹库”。
  2. return noise @ self.g_w生成器只需一次矩阵乘,就把噪声变成“伪画”。
  3. return self._sigmoid(x @ self.d_w + self.d_b)判别器输出真假概率。
  4. self.d_w -= lr * (real.T @ grad_real + fake.T @ grad_fake)先升级鉴定师,让它更会验货。
  5. self.g_w -= lr * (noise.T @ grad_g)再升级画师,让它更会造假。
  6. samples = gan.generate(np.random.default_rng(0).normal(size=(1000, 2)))用训练好的生成器按需批量造数据。

常见误区

误区很多初学者以为只要让生成器和判别器多跑几万轮,生成质量就会一直上升,像普通分类模型那样 loss 越低越好。

正解GAN 是双人博弈,不是单边优化。训练后期可能出现判别器太强、生成器梯度消失,也可能出现生成器只画同一种图骗过判别器的“模式崩塌”。正确做法是周期性保存 checkpoint,同时关注 FID、IS 和生成样本的人工抽检,发现质量下降就回溯到最佳模型。

为何常见:监督学习的经验是“loss 降低 = 模型变好”,但对抗训练里 loss 不再有这种单调含义,容易被惯性思维误导。

误区既然 GAN 生成的图像“以假乱真”,那就把真实数据扔掉,只用 100% 合成数据训练模型。

正解合成数据只能模拟训练集里的分布,很难覆盖真实世界的长尾情况。仿真器材、传感器噪声、环境光照都可能造成差异。更稳妥的做法是把合成数据和真实数据混合,并且始终坚持在真实测试集上验证效果。

为何常见:演示视频里合成图像张张精美,让人误以为高仿真度等于高泛化能力,忽略了分布外差异。

误区有人把 FID 当唯一指标,认为只要 FID 从 50 降到 20,下游模型准确率就一定会提升。

正解FID 衡量的是整体分布距离,不保证标签正确性。如果生成器学会了“像真图”,但丢失了细粒度类别特征,下游分类照样会崩。应该同时看 FID、IS、人工抽检以及下游任务指标。

为何常见:一个数值最好对比、最容易写进汇报里,但评估生成数据不能只看“像不像”,还要看“用不用得上”。

误区检查视频生成结果时,只把每一帧单独拿出来看,觉得每帧都清晰漂亮,视频就没问题。

正解视频合成最重要的是时间维连贯性。单帧很清晰但相邻帧人物长相突变、动作倒着走、背景闪烁,这样的视频仍然不可用。需要用帧间一致性指标、光流约束和人工连续播放来综合判断。

为何常见:视频由一帧帧图片组成,容易让人误以为“帧好视频就好”,忽略了时序这个额外维度。

面试题

Q1. GAN 中负责“造出假图像”的组件是?

单选题 · easy

  • A.生成器← 正确答案
  • B.判别器
  • C.编码器
  • D.分类器

答案:A。生成器像仿画工坊里的画师,负责把随机噪声变成假图像;判别器像鉴定师,负责区分真伪。编码器和分类器都不是 GAN 对抗双方的标准角色。

Q2. GAN 判别器的训练目标中,“真样本”来自哪里?

单选题 · easy

  • A.随机噪声采样
  • B.生成器输出
  • C.真实数据分布← 正确答案
  • D.数据增强结果

答案:C。判别器既要学会把真实数据判为真,也要学会把生成器输出判为假。真样本来自真实数据分布,相当于工坊里的真迹库;噪声采样和生成器输出都是假样本。

Q3. 下列哪句话最贴合 GAN 的对抗关系?

单选题 · easy

  • A.厨师照着菜谱做菜
  • B.画师与鉴定师互相对抗← 正确答案
  • C.司机按导航单向行驶
  • D.老师单向传授学生

答案:B。GAN 的核心是生成器和判别器互相博弈:画师想骗过鉴定师,鉴定师想揭穿画师。其余选项都是单向流程或合作,缺少对抗升级的动态。

Q4. 条件 GAN 中的 y 一般代表什么?

单选题 · mid

  • A.随机噪声向量
  • B.类别标签或属性← 正确答案
  • C.判别器输出概率
  • D.模型学习率

答案:B。y 是条件信息,比如类别标签“猫”、属性“微笑”或文本描述,相当于工坊里的“订单备注”。随机噪声 z 是生成素材,判别器输出是鉴定分数,学习率是训练超参数。

Q5. 下列哪个模型是早期稳定训练图像 GAN 的代表?

单选题 · mid

  • A.VGGNet
  • B.ResNet
  • C.DCGAN← 正确答案
  • D.Transformer

答案:C。DCGAN 提出用步长卷积、反卷积、批归一化等结构稳定 GAN 训练,是图像 GAN 的经典里程碑。VGG、ResNet、Transformer 不是以对抗生成为核心的模型。

Q6. FID 指标关注的是两组图像之间的什么差异?

单选题 · mid

  • A.特征分布距离← 正确答案
  • B.文件大小差异
  • C.像素颜色数量
  • D.标注标签数量

答案:A。FID 把真实图和生成图分别送进预训练网络提取特征,再比较均值和协方差,得到分布距离。文件大小、颜色数量、标签数量都不是 FID 的测量对象。

Q7. 视频合成中最容易出现的特有问题是?

单选题 · hard

  • A.单帧分辨率低
  • B.相邻帧不一致← 正确答案
  • C.颜色通道缺失
  • D.输入尺寸固定

答案:B。视频合成除单帧质量外,还要保证时序连续。相邻帧人物跳变、背景闪烁是视频 GAN 的典型问题。单帧分辨率低是图像生成也会有的问题,不算视频特有。

Q8. 用 GAN 合成数据做数据增强的典型价值有?

多选题 · mid

  • A.扩充小样本类别← 正确答案
  • B.生成脱敏人脸← 正确答案
  • C.构造极端天气场景← 正确答案
  • D.增加服务器内存

答案:ABC。GAN 可以针对少数类生成样本、用合成人脸保护隐私、构造自动驾驶需要的极端场景。增加服务器内存不是生成数据的价值,而且合成数据本身也需要算力成本。

Q9. 关于 FID 与 IS 指标,下列说法正确的有?

多选题 · hard

  • A.FID 数值越低越好← 正确答案
  • B.IS 数值越高越好← 正确答案
  • C.FID 无需真实数据
  • D.IS 衡量多样与清晰← 正确答案

答案:ABD。FID 需要真实数据作参照,数值越低说明生成分布与真实分布越接近;IS 不需要真实数据,数值越高说明图像既清晰又多样,所以 C 错误。

Q10. 评估合成视频模型是否可用,适合的组合验证包括?

多选题 · extreme

  • A.单帧 FID 评估← 正确答案
  • B.帧间一致性检验← 正确答案
  • C.下游任务效果← 正确答案
  • D.参数量越少越好

答案:ABC。视频 GAN 既要看单帧质量,也要看帧间连续性,还要看下游任务是否真正受益。参数量大小与模型是否可用没有直接关系,不能作为验证标准。