2、分子生成任务简介:主流分子生成模型及其对学习率的敏感性
在开始调学习率之前,我们得先搞清楚一个关键问题——分子生成到底在生成什么?说白了,就是让模型学会化学空间的分布,然后从这个分布里采样出新的、有潜力的分子结构。这活儿听起来挺酷,但做起来坑不少。我刚开始接触这个方向时,最直观的感受是:模型好写,收敛难调。
今天咱们就盘一盘四种主流的分子生成模型:VAE、GAN、扩散模型和强化学习。每种模型我都会结合自己踩过的坑,聊聊它们对学习率到底有多敏感。
2.1 变分自编码器(VAE)
VAE是分子生成里最经典的 baseline 之一。它的思路很直接——把分子压缩成一个隐向量,再从这个隐向量解码回分子。
但 VAE 有个天生的毛病:重建损失和 KL 散度之间的平衡。如果学习率设大了,KL 项会迅速崩溃到零,模型退化成一个普通的自编码器,生成出来的分子千篇一律。如果是太小了,隐空间又学不出来结构,采样的分子基本不能用。
VAE 对学习率的敏感性主要表现在:
- 训练初期:学习率过高导致 KL 崩塌
- 训练中期:学习率过低让隐空间离散化不充分
- 生成阶段:学习率策略直接影响采样质量
举个例子,我当年在做 ZINC 数据集上的分子生成时,一开始用的 Adam 默认学习率 1e-3,结果跑了两天发现 KL 项几乎为零。后来手动调到 3e-4,才总算把隐空间的结构给逼了出来。
2.2 生成对抗网络(GAN)
GAN 在分子生成里的地位有点尴尬。理论上它很强大——能生成高保真度的分子。但实际上,训练 GAN 就像是走钢丝,尤其是分子的离散表示(比如 SMILES 字符串)让梯度传递变得非常困难。
为什么 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 | 自适应或周期性 | 高 |
2.4 强化学习(RL)
强化学习在分子生成里主要用于优化特定性质,比如药物相似性、合成可及性等。RL 的学习率调节是我觉得最头疼的,没有之一。
RL 的 agent 通过策略梯度来更新自己。如果学习率太大,策略会剧烈震荡,生成的分子的质量忽高忽低;如果太小,agent 又探索不够,很快陷入局部最优。
我记得有一次做分子对接分数优化,学习率从 1e-4 降到 5e-5,生成分子的对接分数平均提升了 0.3 kcal/mol。但再降到 1e-5,模型直接不更新了,死活不进步。
RL 对学习率的敏感性表现在:
- 探索与利用的平衡:学习率影响策略更新的幅度
- 奖励的方差:高学习率会放大奖励噪声
- 收敛稳定性:RL 训练曲线本来就很噪,学习率不对就是雪上加霜
2.5 知识图谱总览
下面我把四种模型对学习率的敏感性做了一个结构化的梳理,方便你对照着看:
记住一句话:学习率是分子生成模型的油门,但不是油门越大跑得越快。每种模型都有自己的“最佳经济转速区”。
说实话,我刚开始做分子生成时,总觉得学习率是最后才调的超参数。后来吃过几次亏,才意识到它的优先级比模型结构还高。你想想看,再好的模型结构,学习率不对也是白搭。