2、分子生成任务简介:主流分子生成模型及其对学习率的敏感性

在开始调学习率之前,我们得先搞清楚一个关键问题——分子生成到底在生成什么?说白了,就是让模型学会化学空间的分布,然后从这个分布里采样出新的、有潜力的分子结构。这活儿听起来挺酷,但做起来坑不少。我刚开始接触这个方向时,最直观的感受是:模型好写,收敛难调。

今天咱们就盘一盘四种主流的分子生成模型:VAE、GAN、扩散模型和强化学习。每种模型我都会结合自己踩过的坑,聊聊它们对学习率到底有多敏感。

2.1 变分自编码器(VAE)

VAE是分子生成里最经典的 baseline 之一。它的思路很直接——把分子压缩成一个隐向量,再从这个隐向量解码回分子。

但 VAE 有个天生的毛病:重建损失和 KL 散度之间的平衡。如果学习率设大了,KL 项会迅速崩溃到零,模型退化成一个普通的自编码器,生成出来的分子千篇一律。如果是太小了,隐空间又学不出来结构,采样的分子基本不能用。

我的经验:VAE 的初始学习率建议设在 1e-3 到 1e-4 之间。我个人习惯先用 1e-3 跑个 50 个 epoch,如果 KL 项塌了(降到接近 0),立刻切到 1e-4 重启。

VAE 对学习率的敏感性主要表现在:

  • 训练初期:学习率过高导致 KL 崩塌
  • 训练中期:学习率过低让隐空间离散化不充分
  • 生成阶段:学习率策略直接影响采样质量

举个例子,我当年在做 ZINC 数据集上的分子生成时,一开始用的 Adam 默认学习率 1e-3,结果跑了两天发现 KL 项几乎为零。后来手动调到 3e-4,才总算把隐空间的结构给逼了出来。

2.2 生成对抗网络(GAN)

GAN 在分子生成里的地位有点尴尬。理论上它很强大——能生成高保真度的分子。但实际上,训练 GAN 就像是走钢丝,尤其是分子的离散表示(比如 SMILES 字符串)让梯度传递变得非常困难。

为什么 GAN 对学习率特别敏感?两个原因:

  • 生成器和判别器的对抗平衡:学习率稍微偏一点,平衡就打破
  • 离散输出的梯度问题:分子是离散的,梯度难以回传
避坑指南:我曾经用 GAN 做分子生成,学习率设成 2e-4,训练到第 200 个 epoch 时判别器 loss 直接飙到无穷大。后来换成 1e-4 加上梯度裁剪,才算稳住。说白了,GAN 的学习率调节像是开手动挡车,换挡时机错了就熄火。

我建议的做法是:生成器学习率比判别器低一个数量级。举个例子:

# GAN 双学习率设置示例
g_lr = 1e-4   # 生成器
d_lr = 5e-4   # 判别器

你想想看,生成器是学生,判别器是老师。老师学太快了,学生跟不上;学生学太快了,老师又觉得学生太厉害就不努力判了。这个平衡点,全靠学习率来找。

2.3 扩散模型

扩散模型是这两年分子生成里的新宠。它的思路是从噪声逐步去噪到分子结构。说实话,扩散模型对学习率的要求比 VAE 和 GAN 要友好一些。

为什么呢?因为扩散过程本身就包含多个时间步,学习率的变化可以被时间步的调度平滑掉。但这不代表可以随便设。

扩散模型里最关键的是噪声调度的学习。如果学习率太大,模型会忘记去噪过程里的细节;太小了,又学不到全局结构。

模型类型 推荐初始学习率 学习率调度策略 敏感性等级
VAE 1e-3 ~ 1e-4 余弦退火 中等
GAN 1e-4 ~ 5e-4 阶梯下降或固定 高
扩散模型 1e-3 ~ 2e-4 线性预热 + 余弦 低到中等
强化学习 1e-4 ~ 1e-5 自适应或周期性 高
核心观点:扩散模型的训练稳定性较高,但学习率调度决定了收敛速度。我在实际项目中发现,用线性预热到 1e-3,然后余弦退火到 1e-5,效果最稳定。

2.4 强化学习(RL)

强化学习在分子生成里主要用于优化特定性质,比如药物相似性、合成可及性等。RL 的学习率调节是我觉得最头疼的,没有之一。

RL 的 agent 通过策略梯度来更新自己。如果学习率太大,策略会剧烈震荡,生成的分子的质量忽高忽低;如果太小,agent 又探索不够,很快陷入局部最优。

我记得有一次做分子对接分数优化,学习率从 1e-4 降到 5e-5,生成分子的对接分数平均提升了 0.3 kcal/mol。但再降到 1e-5,模型直接不更新了,死活不进步。

RL 对学习率的敏感性表现在:

  • 探索与利用的平衡:学习率影响策略更新的幅度
  • 奖励的方差:高学习率会放大奖励噪声
  • 收敛稳定性:RL 训练曲线本来就很噪,学习率不对就是雪上加霜

2.5 知识图谱总览

下面我把四种模型对学习率的敏感性做了一个结构化的梳理,方便你对照着看:

主流分子生成模型对学习率的敏感性概览 分子生成模型 VAE 学习率敏感性:中等 KL 崩塌风险 建议:1e-3 ~ 1e-4 GAN 学习率敏感性:高 生成器/判别器平衡 建议:1e-4 ~ 5e-4 扩散模型 学习率敏感性:低-中 时间步平滑效应 建议:1e-3 ~ 2e-4 强化学习 学习率敏感性:高 策略震荡风险 建议:1e-4 ~ 1e-5 学习率策略核心要点 VAE:防 KL 崩塌 → 余弦退火 GAN:双学习率 → 生成器 < 判别器 扩散模型:线性预热 + 余弦衰减 强化学习:自适应策略 + 周期性重置 我的建议:先跑小规模实验,锁定范围再全量训练

记住一句话:学习率是分子生成模型的油门,但不是油门越大跑得越快。每种模型都有自己的“最佳经济转速区”。

说实话,我刚开始做分子生成时,总觉得学习率是最后才调的超参数。后来吃过几次亏,才意识到它的优先级比模型结构还高。你想想看,再好的模型结构,学习率不对也是白搭。