想象你经营着一家“梦想分子烘焙坊”——客户不说想要什么蛋糕,而是说“我需要一种能精准杀灭某类菌群的分子”“我想要一种更轻、更耐高温的新材料”。传统做法是在几千万种已知配方里翻箱倒柜地试,费时又费钱。于是你请来三位性格迥异的主厨:第一位是“配方压缩师”(VAE),他擅长把每道复杂配方浓缩成简短的“风味代码”,再在两份代码之间平滑插值,生成风格介于两者之间的全新变体;第二位是“对抗师徒”(GAN),师父负责创新,徒弟负责挑剔,两人在一次次争吵中把作品打磨得真假难辨;第三位是“冰雕大师”(扩散模型),他从一团乱糟糟的噪声冰块开始,一刀一刀雕出有序而精细的分子结构。三人都能生成新分子,但思路、脾气与适用场景大不相同。本文将用这条烘焙坊故事线,把三种生成模型的原理、公式与选择诀窍一一道来。

岗位关联

对 AI 从业者的价值:理解 VAE、GAN 与扩散模型,是进入 AI 驱动新材料、新药物研发领域的第一块敲门砖,也是算法岗位面试中极具区分度的高频考点。

目录
  1. 可视化演示
  2. 模型纵览
  3. VAE潜空间
  4. GAN对抗训练
  5. 扩散去噪
  6. 分子表示方法
  7. 应用场景选择
  8. AI 应用场景
  9. Python 演示
  10. 常见误区
  11. 面试题

可视化演示

对比VAE潜空间编码、GAN对抗训练与扩散逐步去噪三种分子生成范式,理解其原理与适用场景。

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

VAE:潜空间编码 编码 潜空间 z 连续插值生成

模型纵览

烘焙坊刚开张时,你只招了一位“全能师傅”。可是很快发现,不同的客户对分子有不同的期待:有人想要“中间态”的过渡分子,有人想要“以假乱真”的逼真分子,还有人想要“结构精致”的稳定分子。一位师傅根本忙不过来。于是你决定把“生成分子”这件事拆解成共同的任务:先学会“什么样的分子常见”,再根据这份“分布直觉”捏出新的候选分子。这就是生成模型(Generative Model)的基本目标——学习真实数据的概率分布,然后从中采样出新样本。

在 AI 术语里,我们把分子数据集看作来自某个未知分布 p_data(x) 的样本。生成模型要做的就是练出一个参数化的 p_θ(x),让 θ 尽量贴合真实分布。顾城看,采样一个新分子,就是在 p_θ(x) 上抽一次签。VAE 用“先压缩再展开”的方式逼近这个分布;GAN 用“造假与打假”的博弈逼近;扩散模型则用“从噪声到结构”的雕琢过程逼近。三种方式没有绝对优劣,只有擅长与不擅长。

说到底,三位主厨的目标都是让自家菜单尽量贴近客户真实口味,只是“手艺路径”不同。接下来,我们挨个走进后厨,看看他们的独门绝活。

θ^=arg⁡max⁡θ  Ex∼pdata(x)[log⁡pθ(x)]\hat{\theta} = \arg\max_{\theta} \; \mathbb{E}_{x \sim p_{\text{data}}(x)} \big[ \log p_{\theta}(x) \big]
这个公式表示:我们希望找到一组模型参数 θ,使得真实分子 x 在模型眼里的“出现概率”整体最大。
  1. 数据分布 p_datax 是来自真实世界的分子,比如药物数据库里的一条条 SMILES 序列,相当于烘焙坊“客户点过的历史配方”。
    pdata(x)p_{\text{data}}(x)
  2. 对数似然 log p_θ(x)把“模型认为这个分子有多大概率出现”取对数,便于连乘转连加,避免概率太小导致数值下溢。
    log⁡pθ(x)\log p_{\theta}(x)
  3. 期望与 argmax对所有真实样本求平均,并寻找让平均对数似然最大的 θ——也就是让模型“最相信”这些真实分子确实会出现。
    θ^=arg⁡max⁡θ  Ex∼pdata[log⁡pθ(x)]\hat{\theta} = \arg\max_{\theta} \; \mathbb{E}_{x \sim p_{\text{data}}}[\log p_{\theta}(x)]

VAE潜空间

第一位主厨“配方压缩师”的工作台边摆满了厚厚一摞配方卡。他不直接背下整张配方,而是把“甜度、酸度、油脂比例、烘烤时间”等关键信息浓缩成一串极短的风味代码 z。以后想创作新分子时,他只需改动代码里某个数字,就能得到“七分像 A、三分像 B”的过渡配方。这套流程对应变分自编码器(VAE):编码器把高维分子 x 压成低维潜变量 z,解码器再把 z 还原成分子。

然而直接让网络输出一个随机采样的 z 会卡住梯度——随机采样那一环无法求导。于是 VAE 用了一个巧妙的“重参数化技巧”:先把编码器输出为均值 μ 和方差 σ²,然后让 z = μ + σ·ε,其中 ε 是标准正态随机噪声。这样一来,随机性全来自 ε,而 μ 和 σ 仍可正常求导,模型就能用反向传播训练了。

训练时 VAE 希望做到两件事:一是解码出来的分子尽量还原原始输入,二是潜变量 z 的分布尽量接近标准正态,保证潜空间连续、可插值。因此总损失由“重建误差”和“KL 散度”两部分组成。

VAE 的优点是训练稳定、潜空间连续,特别适合在已知分子之间做“插值创作”;缺点是重建出的分子往往有些“模糊”,细节不够锐利。就像配方压缩师能做出一款“甜酸均衡”的新品,但要说惊艳,还差点意思。

L(θ,ϕ;x)=Ez∼qϕ(z∣x)[log⁡pθ(x∣z)]−DKL(qϕ(z∣x) ∥ p(z))L(\theta,\phi;x) = \mathbb{E}_{z \sim q_\phi(z|x)} \big[ \log p_\theta(x|z) \big] - D_{KL}\big( q_\phi(z|x) \,\|\, p(z) \big)
这个公式说明 VAE 的使命:既要让 z 能还原出 x(第一项),又要让编码分布别偏离先验太远(第二项)。
  1. 编码后验 q_φ(z|x)编码器在看到 x 后给出的潜变量分布,相当于“配方压缩师看完原配方后写下的风味代码分布”。
    qϕ(z∣x)q_\phi(z|x)
  2. 重建似然 log p_θ(x|z)解码器从 z 还原 x 的概率。概率越高,说明压缩保存的信息越完整,损失越小。
    log⁡pθ(x∣z)\log p_\theta(x|z)
  3. KL 散度惩罚项衡量 q_φ(z|x) 与标准正态 p(z) 的差距,防止编码器把不同 x 推到潜空间各处乱跑,从而保证连续性和可插值性。
    DKL(qϕ(z∣x) ∥ p(z))D_{KL}\big( q_\phi(z|x) \,\|\, p(z) \big)

GAN对抗训练

第二位主厨是个“毒舌师徒组合”:师父负责不断端出创新分子,徒弟则扮演最挑剔的食客,一口就能尝出“这是师父仿冒的,不是客户要的真货”。两人就这样日复一日地博弈——师父的造假水平越来越高,徒弟的鉴别能力也越来越强。最终师父端出的分子足以以假乱真。这就是生成对抗网络(GAN)的核心思想。

在技术层面,生成器 G 从噪声 z 中制造假样本,判别器 D 则判断输入是来自真实数据集还是 G 生成出来的。G 的目标是骗过 D,D 的目标是识别出假货。两者形成了经典的“最小最大博弈”(min-max game)。

GAN 的优势是生成样本细节锐利、视觉/结构上非常逼真;但代价是训练不稳定,容易出现“模式坍塌”——师父只顾做一款能骗过徒弟的分子,导致生成结果缺乏多样性。就像一位厨师反复只做同一道“压轴菜”来应付挑嘴徒弟,客人却吃不到其他花样的甜点。

min⁡Gmax⁡DV(D,G)=Ex∼pdata(x)[log⁡D(x)]+Ez∼pz(z)[log⁡(1−D(G(z)))]\min_{G} \max_{D} V(D,G) = \mathbb{E}_{x \sim p_{\text{data}}(x)}[\log D(x)] + \mathbb{E}_{z \sim p_{z}(z)}[\log (1-D(G(z)))]
这个公式是 GAN 的训练纲领:D 拼命分辨真假,G 拼命造出骗过 D 的假分子,两者在对抗中共同变强。
  1. 判别器 D(x)D 看到真实分子 x 时,输出“这是真的”的概率。训练让这个概率尽量接近 1。
    log⁡D(x)\log D(x)
  2. 生成器 G(z)G 从噪声 z 中生成假分子 G(z),D 看到假分子时,要尽量输出小概率,即让 log(1-D(G(z))) 变大。
    G(z),log⁡(1−D(G(z)))G(z), \quad \log (1-D(G(z)))
  3. 最小最大博弈外层 min G 表示 G 想让整个 V 变小,内层 max D 表示 D 想让 V 变大。双方对抗到纳什均衡时,D 无法区分真假,G 生成的分子也就足够逼真。
    min⁡Gmax⁡DV(D,G)\min_G \max_D V(D,G)

扩散去噪

第三位主厨是位冰雕大师。他面前不是模具,而是一块充满气泡和冰碴的杂乱冰块。他做的事非常朴素:每一小步只“优化一点点”——先把大体轮廓从噪声里分离出来,再慢慢削出官能团、键角与空间构型,直到冰块变成一尊晶莹剔透的分子雕塑。这就是扩散模型(Diffusion Model)的思路。

扩散模型有两个方向。前向过程:不断往真实分子 x₀ 上叠加高斯噪声,经过 T 步后变成纯噪声 x_T,就像把雕塑打碎成一堆冰屑。逆向过程:训练一个神经网络 p_θ,学会每一步“少加一点噪声、多恢复一点结构”,从而从纯噪声 x_T 一步步倒推出 x₀。训练时我们已知每一步的真实噪声,因此可以构造出清晰的回归目标。

前向过程是一个线性加噪的马尔可夫链:

扩散模型的优点是生成质量高、细节丰富,尤其适合 3D 分子坐标等复杂结构;缺点是采样需要迭代几十到上千步,速度比 VAE 和 GAN 慢。这就像冰雕大师虽然作品精美绝伦,但顾客必须耐心等待他慢慢雕刻。

q(xt∣xt−1)=N(xt;1−βt xt−1, βtI),pθ(xt−1∣xt)=N(xt−1;μθ(xt,t),Σθ(xt,t))q(x_t|x_{t-1}) = \mathcal{N}\big(x_t; \sqrt{1-\beta_t}\,x_{t-1},\ \beta_t I\big), \qquad p_\theta(x_{t-1}|x_t)=\mathcal{N}\big(x_{t-1};\mu_\theta(x_t,t),\Sigma_\theta(x_t,t)\big)
前向公式描述“如何把分子一步步弄糊”,逆向公式描述“神经网络如何一步步把糊掉的分子修回来”。
  1. 中间状态 x_t第 t 步的带噪分子;当 t=0 时是干净分子,t=T 时近似纯噪声。
    xtx_t
  2. 噪声强度 β_t一个事先设计好的小正数序列,控制每一步加多少噪声,通常先小后大再调整,称为“噪声调度”。
    βt,N(xt;1−βtxt−1,βtI)\beta_t, \quad \mathcal{N}(x_t; \sqrt{1-\beta_t} x_{t-1}, \beta_t I)
  3. 逆向参数化 p_θ(x_{t-1}|x_t)神经网络预测均值和协方差,相当于冰雕大师判断“当前冰块的下一步该修掉多少”。
    μθ(xt,t),Σθ(xt,t)\mu_\theta(x_t,t), \quad \Sigma_\theta(x_t,t)
  4. 训练目标让 p_θ 预测出的去噪结果尽量接近真实前向过程的后验分布,误差越小,雕琢越精准。
    min⁡θ  Eq[∥μθ(xt,t)−μ~(xt,x0)∥2]\min_\theta \; \mathbb{E}_{q} \big[ \| \mu_\theta(x_t,t) - \tilde{\mu}(x_t,x_0) \|^2 \big]

分子表示方法

烘焙坊的菜单要用什么方式记录?这决定了三位主厨怎么读配方。分子世界也有三种主流“记谱法”。第一种是 SMILES 序列,把分子写成一行字符串,例如乙醇写作 CCO,就像一句话菜谱,适合用 RNN、Transformer 这类序列模型处理。第二种是 分子图,把原子看作节点、化学键看作边,保留拓扑连接,适合图神经网络(GNN)编码。第三种是 3D 坐标,直接记录每个原子的空间位置,适合扩散模型去建模几何结构。

分子表示不是小事——你给主厨的“配方格式”决定了他能用哪套手艺。若把分子当成字符串送给 GNN,等于把菜谱拆成汉字丢给只会看图的厨师,两者都别扭。

在实际项目中,我们常把“表示”和“模型”配对使用:SMILES 配序列 VAE 或 Transformer,分子图配 GNN-VAE,3D 坐标则常用扩散模型。选对配方格式,主厨才能发挥全部实力。

pθ(S)=∏i=1npθ(si∣s<i)p_\theta(S) = \prod_{i=1}^{n} p_\theta(s_i \mid s_{<i})
这个公式展示了 SMILES 这类序列表示的生成逻辑:一个分子字符串 S 的生成概率,等于逐个字符条件概率的连乘。
  1. 字符序列 S把分子写成 s₁s₂…sₙ 的符号串,例如 C-C-O 三个字符连成乙醇的 SMILES。
    S=s1s2…snS = s_1 s_2 \dots s_n
  2. 历史条件 s_{<i}生成当前位置字符时,只看已经写出的前 i-1 个字符,相当于厨师按次序逐步念菜谱。
    s<i=s1,s2,…,si−1s_{<i} = s_1, s_2, \dots, s_{i-1}
  3. 连乘概率整体概率等于每个字符概率相乘,训练时让真实 SMILES 的出现概率最大,生成时则逐字符采样。
    ∏i=1npθ(si∣s<i)\prod_{i=1}^{n} p_\theta(s_i \mid s_{<i})

应用场景选择

当三位主厨都练就了拿手菜,你作为老板,需要考虑“什么时候请谁出马”。这就像新药研发项目开场时的模型选型:需求不同,预算不同,答案也不同。若客户想要一批“介于两个已知活性分子之间”的候选物,VAE 的潜空间插值是最自然的选择;若客户想要“看起来真实度极高”的分子图片或结构,GAN 的对抗打磨更合适;若客户在意“分子 3D 构型的严谨细节”,扩散模型 虽然慢,却最能保证质量。

实际工作里往往还要叠加一个“打分器” f(x),用来评估分子的药效、溶解度或材料强度。无论选哪个生成模型,都可以在潜空间里做带约束的优化:

选模型没有银弹,只有更清晰的业务问题:多快、多真、多稳。记住烘焙坊的座右铭——“按客人的需求选主厨,而不是按主厨的心情定菜单”。

z∗=arg⁡max⁡z∈Z  f(Dec(z))+λlog⁡p(z)z^{*} = \arg\max_{z \in \mathcal{Z}} \; f\big(\mathrm{Dec}(z)\big) + \lambda \log p(z)
这个公式表示:在潜空间里找一个最优代码 z*,让解码出的分子得分最高,同时别偏离先验分布太远。
  1. 解码器 Dec(z)把潜变量 z 还原成完整分子,相当于让主厨照着风味代码做出实物。
    Dec(z)\mathrm{Dec}(z)
  2. 打分器 f(·)用机器学习模型或物理仿真评估分子的活性、稳定性等指标,值越高越好。
    f(Dec(z))f\big(\mathrm{Dec}(z)\big)
  3. 先验正则 log p(z)防止 z 跑到潜空间边缘,生成出不合理的“怪味分子”,相当于主厨拉回跑偏的创作。
    log⁡p(z)\log p(z)
  4. 权衡系数 λλ 大则更保守,λ 小则更冒险,控制“探索新结构”与“保持合理”之间的平衡。
    λlog⁡p(z)\lambda \log p(z)

AI 应用场景

新药苗头分子发现

阶段:数据建模 → 分子生成 → 虚拟筛选

解决的问题:传统高通量筛选需要合成成千上万种化合物,耗资巨大;而 VAE 能先把已知活性分子编码进潜空间,再在潜空间中插值采样,直接产出“似药性”较高的候选分子,大幅减少实验验证数量。

具体案例:某药物研发团队收集 10 万条已报道的激酶抑制剂 SMILES,用 VAE 训练后,在两款已知活性分子之间线性插值,获得 3000 个新候选;再用对接打分筛选,最终锁定 20 个高潜力分子进入合成测试,周期从 2 年缩短到 4 个月。

电池电解液材料生成

阶段:材料逆向设计 → 结构生成 → 性能仿真

解决的问题:电解液分子的候选空间接近无限,人工设计只能靠经验试错;扩散模型擅长生成带 3D 坐标的分子构型,生成结果的空间结构更真实,配合分子动力学仿真即可快速筛选出高离子电导率、低粘度的新材料。

具体案例:材料信息学团队利用扩散模型生成 5000 个电解液小分子,对每个分子计算“锂离子迁移能垒”,筛选出 3 种实验合成后性能优于商用溶剂的候选分子,助力下一代固态电池研发。

生成模型质检与对抗鲁棒性测试

阶段:模型评估 → 生成质量校验

解决的问题:生成模型输出的分子未必有效,需要自动质检;GAN 的判别器可充当“AI 质检员”,快速过滤出键长异常、原子价不合理的伪分子,提升生成流程的稳定性与可信度。

具体案例:某 AI 制药平台在生成流水线末端接入一个训练好的判别器,对 VAE 生成的每一批分子打分,低于阈值的自动进入“退货重做”通道,最终使分子有效率从 68% 提升到 91%。

Python 演示

python55 行
import torchimport torch.nn as nnimport torch.nn.functional as F  class MoleculeVAE(nn.Module):    """用 PyTorch 实现的最简分子向量 VAE"""     def __init__(self, dim=32, z_dim=4):        super().__init__()        self.z_dim = z_dim        self.encoder = nn.Linear(dim, z_dim * 2)        self.decoder = nn.Linear(z_dim, dim)     def forward(self, x):        h = self.encoder(x)        mu, logvar = h[:, :self.z_dim], h[:, self.z_dim:]        std = torch.exp(0.5 * logvar)        z = mu + std * torch.randn_like(mu)   # 重参数化        x_hat = self.decoder(z)        return x_hat, mu, logvar     def sample(self, n):        z = torch.randn(n, self.z_dim)        return self.decoder(z)  def loss_fn(x_hat, x, mu, logvar):    recon = F.mse_loss(x_hat, x)    kl = -0.5 * (1 + logvar - mu.pow(2) - logvar.exp()).sum(1).mean()    return recon + 0.01 * kl  def train(model, data, epochs=50, lr=1e-3):    opt = torch.optim.Adam(model.parameters(), lr=lr)    for epoch in range(epochs):        model.train()        x_hat, mu, logvar = model(data)        loss = loss_fn(x_hat, data, mu, logvar)        opt.zero_grad()        loss.backward()        opt.step()        if (epoch + 1) % 10 == 0:            print(f"epoch {epoch + 1}/{epochs} loss={loss.item():.4f}")  if __name__ == "__main__":    torch.manual_seed(0)    N, DIM = 64, 32    data = torch.bernoulli(torch.full((N, DIM), 0.4)).float()    vae = MoleculeVAE(dim=DIM, z_dim=4)    train(vae, data)    fake = vae.sample(8)    print("生成的新分子指纹:")    print(torch.sigmoid(fake).round().int().numpy())
目的:演示一个最小可运行的分子向量 VAE,展示“编码压缩 → 重参数化 → 解码重建”的完整流程。
  1. mu, logvar = h[:, :self.z_dim], h[:, self.z_dim:]编码器输出前一半作均值、后一半作对数方差,得到潜变量分布。
  2. z = mu + std * torch.randn_like(mu)重参数化技巧,让随机采样可求导。
  3. x_hat = self.decoder(z)从潜变量还原分子向量,模拟“风味代码 → 成品配方”。
  4. recon = F.mse_loss(x_hat, x)重建误差,衡量还原质量。
  5. kl = -0.5 * (1 + logvar - mu.pow(2) - logvar.exp()).sum(1).mean()KL 散度,让潜空间逼近标准正态。
  6. recon + 0.01 * kl在“还原精度”和“潜空间规整”之间取平衡。
  7. fake = vae.sample(8)从标准正态先验采样 8 个新分子向量,展示生成能力。

常见误区

误区我训练完 VAE,把潜空间里随便一个点解码出来,就应该是理想的候选药物;如果效果不好,一定是数据不够多。

正解VAE 的重建输出通常偏“平滑”,生成的分子往往结构模糊、化学上不一定有效。它真正擅长的是产生“有希望的中间态变体”,而不是直接给出完美分子。实际流程中,还需要后置过滤、打分器筛选和化学价校验。

为何常见:很多人看 VAE 的示意图,只见“编码、解码”一气呵成,便误以为它是端到端一步到位的分子生成器,忽略了生成模型和分子有效性之间的鸿沟。

误区GAN 应该一直训练下去,epoch 越多越好,反正损失会持续下降。

正解GAN 是 G 和 D 的对抗博弈,训练过久容易导致判别器过强、生成器梯度消失,或者出现“模式坍塌”只产出单一结构。实践中常用早停、梯度惩罚、谱归一化等手段控制平衡。

为何常见:因为监督学习的“训练越久效果越好”惯性思维被带入了对抗训练,人们忽略了 GAN 的平衡本质。

误区扩散模型采样需要几百次迭代,生产环境根本用不了,选型时直接排除。

正解扩散模型的慢主要体现在“朴素采样”。实际工程中有 DDIM、DPM-Solver 等加速采样方法,可以把步数从 1000 压缩到 20~50 步,同时保持高质量。对 3D 分子结构生成,扩散模型的可控性和保真度常常优于 GAN。

为何常见:人们容易用“第一版论文”的体验代替整个技术家族的现状,忽略了采样加速算法近年来的飞速进展。

误区SMILES、分子图、3D 坐标只是格式不同,随便换成哪种,模型都能直接适配。

正解表示方式决定了模型结构的上限。SMILES 是序列,天然适配 RNN/Transformer;分子图需要 GNN 做消息传递;3D 坐标需要等变网络或扩散模型来建模旋转平移不变性。表示与模型不匹配,生成质量会显著下降。

为何常见:初学者常在公开数据集上直接用别人处理好的张量,忽略了下游模型设计与输入表示的强耦合关系。

误区既然扩散模型效果最好,那么所有分子生成任务都应该用扩散模型,参数越多越好。

正解模型选择取决于数据规模、任务类型与计算预算。分子数据往往有限,复杂模型容易过拟合;且若只需要快速插值,VAE 的性价比远高于扩散模型。更复杂的模型并不总是带来更好的结果。

为何常见:人们容易把“图像生成领域的先进模型”直接迁移到分子领域,忽略了分子数据量小、标注昂贵、物理约束强等特殊性。

面试题

Q1. 以下哪项最准确地描述了 VAE 的训练目标?

单选题 · easy

  • A.重建误差与KL散度的加权和← 正确答案
  • B.生成器与判别器博弈的代价
  • C.多步去噪的负对数似然
  • D.最大化决策树的信息增益

答案:A。VAE 的损失由重建损失和 KL 散度组成:既要让 z 能还原 x,又要让编码分布接近先验。B 是 GAN 的目标,C 是扩散模型的目标,D 是决策树的目标,均与 VAE 无关。

Q2. “重参数化技巧”主要解决什么问题?

单选题 · mid

  • A.让随机采样的节点能反向求导← 正确答案
  • B.增加编码器与解码器层数
  • C.将输入分子做标准化处理
  • D.让输出变成离散的分子符号

答案:A。采样是随机操作,本身不可导。重参数化把随机性转移到标准噪声 ε 上,使 μ 和 σ 可以正常求梯度。它不改变网络层数、不做标准化,也不负责离散化输出。

Q3. 以下哪个模型的核心思想是“从噪声出发逐步去噪”?

单选题 · easy

  • A.变分自编码器
  • B.生成对抗网络
  • C.扩散去噪模型← 正确答案
  • D.自回归生成模型

答案:C。扩散模型通过前向逐步加噪、逆向逐步去噪来生成数据。VAE 是压缩重建,GAN 是对抗博弈,自回归模型按序列逐步预测,都不以“去噪”为核心。

Q4. 关于 GAN 中判别器 D 的描述,正确的是?

多选题 · mid

  • A.输出真实样本的后验概率← 正确答案
  • B.与生成器进行零和博弈← 正确答案
  • C.可以辅助评估生成质量← 正确答案
  • D.每次迭代都降低模型容量

答案:ABC。D 输出样本为真的概率,它与 G 构成最小最大博弈,训练完成后也能作为质量评估器。D 并不会刻意降低模型容量,D 错。

Q5. 想在两个已知活性分子之间生成一组“过渡态”候选分子,优先选择哪种模型?

单选题 · mid

  • A.变分自编码器← 正确答案
  • B.生成对抗网络
  • C.扩散生成模型
  • D.蒙特卡洛模拟

答案:A。VAE 的潜空间是连续且经过正则化的,编码后可直接线性插值得到过渡分子。GAN 的潜空间不连续,扩散模型的插值控制较弱,蒙特卡洛模拟不直接生成分子结构。

Q6. SMILES 字符串形式的分子最适合与哪种模型结合?

单选题 · mid

  • A.序列生成模型← 正确答案
  • B.图神经网络
  • C.三维卷积网络
  • D.强化学习智能体

答案:A。SMILES 是一维字符序列,天然适合 RNN、Transformer 等序列模型。GNN 更适合分子图,三维卷积适合体素化的 3D 结构,强化学习是优化决策框架而非生成分子表示的直接模型。

Q7. 下列哪一现象是 GAN 训练中特有且常见的失败模式?

单选题 · hard

  • A.模式坍塌← 正确答案
  • B.梯度消失
  • C.训练过拟合
  • D.数据不平衡

答案:A。模式坍塌指生成器只学会生成少数几种能骗过判别器的样本,是 GAN 博弈失衡的特有现象。梯度消失、过拟合、数据不平衡在各类网络中都会出现,不是 GAN 特有。

Q8. 扩散模型采样速度比 VAE 慢的主要原因是什么?

单选题 · hard

  • A.需要执行多步迭代去噪← 正确答案
  • B.必须优先使用GPU集群
  • C.模型参数量大且密集
  • D.数据必须先做标准化

答案:A。扩散模型在推理时要从纯噪声开始,逐步执行 T 次去噪才得到最终分子,因此采样开销大。GPU、参数量、标准化都不是“慢采样”的本质原因。

Q9. 关于分子表示方法,以下说法正确的是?

多选题 · mid

  • A.SMILES是分子结构的线性字符序列← 正确答案
  • B.分子图保留原子与键的拓扑信息← 正确答案
  • C.3D坐标包含原子的空间几何信息← 正确答案
  • D.SMILES总能唯一对应分子的构象

答案:ABC。SMILES 是线性序列,分子图是节点-边结构,3D 坐标记录空间位置。但 SMILES 通常不包含明确的三维构象信息,D 不正确。

Q10. 关于 VAE、GAN、扩散模型的比较,正确的有?

多选题 · extreme

  • A.VAE训练稳定且潜空间连续← 正确答案
  • B.GAN生成图像级真实的精细细节← 正确答案
  • C.扩散模型支持多维数据类型建模← 正确答案
  • D.VAE在所有任务上优于扩散模型

答案:ABC。VAE 潜空间正则化好、训练稳定;GAN 通过对抗博弈逼近真实分布,细节逼真;扩散模型可处理序列、图、3D 坐标等多种结构。D 将 VAE 绝对化,明显错误。