尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

数据稀缺下的AI药物发现:迁移学习、主动学习与生成模型实战策略

数据稀缺下的AI药物发现:迁移学习、主动学习与生成模型实战策略 1. 当数据成为瓶颈药物发现中的“小样本”困境在药物研发这个高投入、长周期的领域里我们常常面临一个尴尬的现实想法很多但能用来验证想法的数据却少得可怜。这不像互联网推荐系统动辄有上亿用户的行为数据可以“喂”给模型。一个新靶点、一种新机制在早期探索阶段可能只有几十个、几百个经过验证的活性化合物数据。用行内人的话说这就是典型的“小样本”问题。你手握一个理论上无比强大的机器学习ML或深度学习DL模型它能在ImageNet上识别成千上万的物体但在你只有200个分子数据的项目里它可能表现得还不如一个简单的线性回归模型。过拟合、泛化能力差、预测结果不可信这些都是数据匮乏直接导致的恶果。所以“面向数据受限药物发现的机器学习与深度学习策略”这个标题精准地戳中了当前AI制药领域最痛的痛点。它探讨的不是如何设计更复杂的神经网络而是在数据“粮草”不足的情况下如何让现有的“精兵强将”ML/DL模型依然能打胜仗。这背后是一整套结合了领域知识、算法技巧和工程实践的“组合拳”。接下来我将结合常见的研发场景拆解几种核心策略的逻辑、具体做法以及我踩过的一些坑。2. 策略一迁移学习——借他山之石攻本山之玉迁移学习的核心思想很简单在一个庞大的、通用的数据集上预训练一个模型获得对问题域的基础理解比如学习什么是“分子结构”的通用特征然后再用我们手头有限的、特定的数据对这个模型进行微调。这在图像和自然语言处理领域已是标准操作在药物发现中我们同样可以“借力”。2.1 分子表示的预训练从SMILES到通用特征最直接的迁移方式是在分子表示上做文章。药物分子通常用SMILES字符串或分子图来表示。我们可以收集海量的、未经标注的化学分子结构数据比如从PubChem、ZINC等数据库中获取的数百万甚至上亿个分子用它们来预训练一个模型。具体怎么做一种常见的方法是采用类似BERT的掩码语言模型Masked Language Model思路但对象是SMILES字符串。我们随机掩盖SMILES字符串中的某些原子或键让模型去预测被掩盖的部分。通过这个过程模型不需要任何活性数据就能学习到化学语言SMILES的语法规则和分子子结构的统计分布。例如它可能会学到“CO”羰基经常出现或者苯环的六个碳原子是如何连接的。另一种是针对分子图的方法使用图神经网络GNN进行预训练。可以设计一些自监督任务比如节点/边掩码预测随机掩盖图中部分原子节点或键边的类型让模型预测它们。上下文预测给定一个分子中的某个子结构上下文预测该子结构周围的原子的分布。分子性质预测需部分标注利用一些容易计算或获取的简单分子性质如分子量、LogP、可旋转键数量等作为辅助标签进行预训练。注意预训练的数据质量至关重要。务必清洗数据去除无效、重复或结构错误的分子。预训练的目标是让模型学习“合理的化学空间”而不是记住噪声。2.2 微调四两拨千斤的关键一步获得预训练模型后微调就是决定成败的一步。我们用自己那个很小的、带有目标属性如对某靶点的抑制活性IC50的数据集在预训练模型的基础上继续训练。微调实操要点与坑点学习率策略这是微调的核心超参数。通常我们会使用比预训练时小1到2个数量级的学习率。例如预训练用1e-3微调可能用1e-4或1e-5。这是因为模型已经具备了很好的基础特征我们只需要对它进行小幅度的调整以适应新任务。粗暴地使用大学习率可能会“冲掉”预训练好的有用特征。分层解冻不要一次性微调所有层。一个更精细的策略是先只解冻并微调模型的最后几层分类头或回归层保持前面特征提取层的权重不变。训练几个epoch后再逐步解冻更深的层。这就像先调整决策逻辑再微调理解能力。数据增强的谨慎使用在图像领域旋转、裁剪是标准的数据增强。在化学领域数据增强需要基于化学合理性。对于基于SMILES的模型可以尝试SMILES枚举同一个分子有多种合法的SMILES表示。对于基于图的模型可以尝试对原子和键的特征进行小幅度的随机扰动。但务必小心不合理的增强比如创造出化学上不可能的键只会引入噪声让模型学习到错误规律。早停Early Stopping是必须的小数据集上过拟合来得飞快。必须严格监控验证集上的性能一旦性能不再提升甚至下降立即停止训练。个人心得我曾在一个只有300个活性数据的激酶抑制剂项目上尝试迁移学习。使用在1000万个分子上预训练的GNN模型仅微调最后两层在独立测试集上的AUC达到了0.82。而如果直接用这300个数据从头训练一个相同的GNN模型AUC只有0.65左右且波动极大。这个差距直观地展示了迁移学习的威力。3. 策略二主动学习——让模型告诉你它需要学什么当数据获取成本高昂比如合成一个新化合物并做生物测试需要几周时间和数万元成本时盲目地合成或测试化合物是极大的浪费。主动学习是一种“聪明”的采样策略其核心是让模型参与到数据收集的过程中来模型对当前未标注的数据进行预测并挑选出那些它最“不确定”或认为“信息量最大”的样本交由专家或实验进行标注然后将新标注的数据加入训练集重新训练模型如此循环。3.1 不确定性度量的选择哪种“不知道”更有价值如何量化模型对某个预测的“不确定”常用方法有不确定性类型计算方法适用场景与解读预测概率对于分类任务直接取模型输出的预测概率。例如一个二分类模型预测某化合物活性的概率为0.51另一个为0.95则前者更不确定。最简单直接但只反映了模型最终的“猜测”没有考虑模型自身的置信度。基于委员会Query by Committee训练多个不同的模型可以是不同架构或同一架构不同初始化看它们对同一个样本的预测是否一致。方差越大不确定性越高。能较好地捕捉模型认知的不确定性但计算成本高。贝叶斯方法使用贝叶斯神经网络BNN或蒙特卡洛Dropout。在预测时多次前向传播开启Dropout得到预测的分布用该分布的方差或熵来衡量不确定性。从原理上最优雅能区分认知不确定性和偶然不确定性但实现相对复杂。在实际药物发现中我比较推荐使用蒙特卡洛Dropout作为不确定性估计的实用方法。它不需要改变模型架构只需在预测时保持Dropout开启运行T次比如T100得到T个预测值计算这些预测值的标准差或熵。标准差大的样本就是模型“左右摇摆”、拿不定主意的样本值得优先实验验证。3.2 主动学习循环的设计与停止准则设计一个完整的主动学习循环远不止“选几个不确定的样本”那么简单。冷启动初始需要一个很小的种子数据集比如20-50个经过精心挑选的、具有结构多样性的化合物来训练第一个模型。这个种子集的质量直接影响整个循环的走向。查询策略每一轮选择多少个新样本进行标注查询通常根据预算而定比如每轮合成5-10个。除了选择最不确定的样本还可以结合多样性考虑。例如使用聚类方法确保挑选的样本不仅在模型看来不确定而且彼此在化学结构上有所不同以探索更广的化学空间。模型更新是将新数据加入旧数据重新训练整个模型还是只进行增量学习对于深度学习模型通常建议从头开始重新训练。虽然耗时但能保证模型在新旧数据混合的分布上达到最优。增量学习容易导致灾难性遗忘。停止准则主动学习不能无限循环下去。常见的停止信号有a) 预算耗尽b) 模型性能在验证集上连续多轮没有显著提升c) 新挑选出的样本其预测不确定性已经低于某个阈值说明模型对整个感兴趣区域的认知已经比较清晰。踩坑记录在一次虚拟筛选中我们使用了基于预测概率的主动学习。几轮之后发现模型总是倾向于挑选那些结构怪异、合成难度极高的分子因为模型对它们“不确定”。但这严重偏离了项目“寻找类药性先导化合物”的初衷。后来我们改进了查询策略为不确定性分数乘以一个“类药性”惩罚因子基于QED分数或合成可及性分数引导模型在更务实、更可合成的化学空间内探索效果好了很多。4. 策略三生成模型与强化学习——从筛选到设计当数据太少连监督学习都捉襟见肘时我们是否可以换一个思路不直接预测分子的性质而是去生成具有理想性质的新分子这就是生成模型结合强化学习的用武之地。它尤其适用于全新的、几乎没有已知活性化合物的靶点即“零样本”或“极低样本”场景。4.1 分子生成模型的基石VAE与GAN生成模型首先要学会“什么是合理的分子”。同样需要海量无标签分子数据进行预训练。变分自编码器VAE将分子如SMILES编码到一个连续的、低维的潜在空间Latent Space中然后再从这个空间解码回分子。训练目标是让编码-解码过程损失最小同时让潜在空间的分布接近标准正态分布。训练完成后我们就在潜在空间里得到了一个“化学宇宙”的连续映射。在这个空间里相似的分子距离近我们可以通过插值、扰动来探索新的分子。生成对抗网络GAN一个生成器和一个判别器互相博弈。生成器努力生成“看起来像真分子”的假分子判别器努力区分真假。训练完成后生成器就能产出逼真的分子结构。然而仅仅生成“像”的分子没用我们需要的是“好”的分子。4.2 用强化学习注入目标引导生成方向这就是强化学习RL登场的时候。我们可以把分子生成过程看作一个智能体Agent与环境交互的序列决策过程智能体每次选择一个动作比如在SMILES字符串中添加一个字符或在分子图上添加一个原子/键最终生成一个完整的分子。环境会根据这个分子的某些计算属性注意这里不需要真实的实验数据给出一个奖励Reward。奖励函数的设计是灵魂所在。在数据极度匮乏时我们可以利用计算模拟和物理化学知识来构建奖励函数例如类药性Drug-likeness奖励QED分数高的分子。与靶点的结合亲和力Docking Score使用分子对接软件如AutoDock Vina, Glide计算生成分子与靶点蛋白的结合分数分数越好越负奖励越高。ADMET性质使用预训练的QSAR模型这些模型可能在大量公共数据上训练过预测生成分子的吸收、分布、代谢、排泄、毒性等性质奖励综合性质好的分子。结构新颖性惩罚与已知分子库中分子过于相似的生成结果鼓励探索新结构。通过RL的试错学习生成模型会逐渐调整其参数使得它生成高奖励分子的概率越来越大。这就实现了在几乎没有目标活性数据的情况下定向生成潜在活性分子。技术细节与挑战稀疏奖励问题绝大多数随机生成的分子奖励都很低比如对接分数很差智能体很难学到东西。需要设计课程学习从简单任务开始或使用近端策略优化PPO这类更稳定的RL算法。生成有效性确保生成的SMILES字符串100%语法正确、且对应的分子结构化学上有效是一个持续的技术挑战。使用基于图的生成方法直接在原子和键的层面上操作通常比基于SMILES字符序列的方法有更高的有效性。多目标优化我们往往希望分子同时满足多个条件高活性、低毒性、易合成。这就需要设计多目标奖励函数或者使用帕累托优化等策略。个人体会在一次针对一个全新蛋白靶点的项目中我们只有该靶点的晶体结构没有任何已知的抑制剂。我们采用VAERL的策略奖励函数结合了分子对接分数、类药性QED和合成可及性SA分数。经过几轮RL迭代后模型生成了一批在对接模拟中表现优异的全新骨架分子。后续的初步生化实验验证了其中两个分子确实具有微摩尔级别的活性。这个过程虽然计算量大需要大量对接计算但它成功地在“数据荒漠”中开辟了一条路。5. 策略四利用领域知识与多任务学习——榨干每一份数据的价值在数据受限时我们拥有的任何一点额外信息都显得弥足珍贵。领域知识和多任务学习就是帮助我们充分利用这些信息的工具。5.1 将领域知识嵌入模型架构与其让模型从零开始学习一切不如将我们已知的化学、生物学规则“告诉”它降低它的学习难度。基于图的分子表示这本身就是一种领域知识的嵌入。原子作为节点键作为边天然地表达了分子的拓扑结构比SMILES字符串更符合化学家的直觉。3D构象信息对于与靶点相互作用分子的三维形状至关重要。在模型中引入3D卷积或等变神经网络如SE(3)-Transformer直接处理分子的3D坐标和原子点云能让模型更好地理解药效团和空间互补性。物理化学描述符作为特征补充除了从原始结构学习特征我们还可以手动计算一些经典的物理化学描述符如摩尔折射率、拓扑极性表面积TPSA、氢键供受体数量等将它们作为额外的特征向量与神经网络学习到的特征进行拼接。这相当于给模型提供了“先验知识包”。5.2 多任务学习借力打力共享表征多任务学习MTL是应对小样本任务的利器。其核心假设是相关任务之间共享的底层特征表示对每个任务都有益。在药物发现中一个分子通常有多个相关的性质标签如对多个相关靶点的活性、多种ADMET性质、溶解度等。即使我们的主任务如对靶点A的活性数据很少但如果能同时学习一些相关的、数据相对较多的辅助任务如对靶点B的活性、或肝微粒体稳定性预测模型就能学习到更通用、更稳健的分子特征表示从而提升在主任务上的表现。网络架构设计 通常采用硬参数共享的架构一个共享的骨干网络如GNN负责从分子结构中提取通用特征然后针对每个任务接一个独立的、轻量级的任务特定头如全连接层进行最终预测。任务相关性是关键正相关任务例如预测同一个蛋白家族下不同亚型的抑制活性。共享特征非常有效。弱相关或负相关任务例如同时预测活性和毒性。如果处理不当可能会造成任务间的干扰导致“跷跷板”现象一个任务变好另一个变差。这时需要引入动态权重或梯度手术等技术来平衡不同任务的学习。实操建议 在资源允许的情况下尽可能多地收集和标注相关任务的辅助数据。即使是公共数据库中的中等质量数据也能在MTL框架下为主任务提供巨大的帮助。我曾经负责一个项目主任务抑制某离子通道只有不到200个数据点但我们同时加入了该离子通道家族其他几个成员共约1500个数据点的活性预测作为辅助任务。MTL模型在主任务上的表现显著优于仅用200个数据训练的单任务模型其预测结果也更能经受住后续实验的检验。6. 综合实战一个数据受限项目的完整工作流设计理论说再多不如看一个虚拟但贴近实战的流程设计。假设我们有一个全新的靶点蛋白“Target-X”通过高通量筛选HTS初步获得了150个有微弱活性的化合物IC50 10 μM另外还有500个经确认无活性的化合物。这就是我们全部的“金标准”数据。如何利用上述策略高效地寻找更优的先导化合物阶段一数据准备与模型选型第1-2周数据清洗与划分对650个分子进行标准化、去重。按8:1:1划分训练集、验证集和测试集。务必确保测试集完全隔离仅在最终评估时使用一次。收集辅助数据从ChEMBL等数据库收集与Target-X属于同一蛋白家族的其他靶点的活性数据数千至数万条用于多任务学习。下载数百万个通用化学分子如ZINC15用于分子表示模型的预训练。模型选型鉴于我们有图结构数据和额外的多任务数据选择图神经网络GNN作为骨干网络。计划采用预训练 多任务微调的混合策略。阶段二预训练与特征学习第3-4周使用数百万通用分子对GNN进行自监督预训练。采用“节点属性掩码”和“上下文预测”组合任务。预训练完成后得到一组学会了通用分子特征表示的GNN权重。阶段三多任务微调与初步模型构建第5-6周加载预训练的GNN权重在其后面为我们的主任务Target-X活性和3个辅助任务同家族其他靶点活性分别添加任务头。使用我们的650条主任务数据 收集来的辅助任务数据对整个网络进行微调。采用较小的学习率并监控主任务在验证集上的表现。此时我们得到了第一个可用于预测的模型Model v1。阶段四主动学习循环第7-12周可多轮迭代利用Model v1对一个包含数万个类药性分子的虚拟库进行预测。使用蒙特卡洛Dropout计算每个预测的不确定性标准差。设计查询函数综合考虑预测活性高概率为活性、预测不确定性高标准差和与已有活性分子的结构多样性通过分子指纹聚类评估。每轮挑选出10-15个“高活性-高不确定-高多样”的分子。将这10-15个分子提交给化学团队进行合成与生物测试这通常是耗时最长的环节。获得新一轮的实验数据后将其加入训练集从阶段三的预训练权重开始重新进行多任务微调得到Model v2。重复步骤1-5进行2-3轮迭代。通常经过2-3轮后模型性能提升和发现新活性分子的效率会进入平台期。阶段五生成式探索作为补充并行或后续阶段在主动学习循环的间隙或者当主动学习效率下降时可以启动生成式探索。使用预训练的分子VAE。设计强化学习奖励函数Reward w1 * Docking_Score w2 * QED w3 * (1 - Similarity_to_Known_Actives)。其中Docking_Score使用Target-X的蛋白结构通过快速对接软件计算。运行RL训练让VAE生成一批优化奖励函数的新分子。从生成的分子中筛选出奖励值最高、且合成路线可行的分子并入下一轮主动学习的候选池进行实验验证。这个工作流融合了迁移学习预训练、多任务学习、主动学习和生成模型形成了一个在有限“金标准”数据驱动下能持续探索和优化化学空间的闭环系统。它不再是单一模型的单次预测而是一个动态的、不断进化的“AI化学家”工作流程。7. 评估、验证与最后的防线如何相信你的模型在数据稀缺的背景下模型的任何一点“水分”都会被放大。因此建立严格的评估和验证体系比模型本身更重要。7.1 超越常规的交叉验证在只有几百个数据点时标准的k折交叉验证k5或10的方差会非常大。一次幸运的数据划分可能带来虚高的性能。重复多次的交叉验证进行50次甚至100次的随机划分和训练/验证记录性能指标如AUC, RMSE的均值和标准差。这能更真实地反映模型的稳定性和泛化能力。按时间或骨架划分如果数据带有时间戳如不同批次合成的化合物务必按时间先后划分用早期的数据训练预测后期的数据这更符合现实应用场景。或者按分子骨架Scaffold进行划分确保测试集中的分子骨架在训练集中未出现这对评估模型的泛化到新结构的能力至关重要也是药物发现中最关心的。7.2 利用计算模拟进行“预验证”在花费大量资源进行湿实验之前充分利用计算工具进行交叉验证。分子对接一致性对于模型预测的高活性分子用不同的分子对接程序或同一程序的不同参数进行多次对接观察其结合模式和打分是否稳定、合理。如果同一个分子在多次对接中构象差异巨大或打分飘忽不定则需要警惕。ADMET的早期预警使用多个不同的、经过验证的ADMET预测模型如来自ADMETlab, pkCSM等平台的模型对候选分子进行预测。如果多个模型一致预测存在严重的毒性或代谢问题这个分子的开发风险就很高。7.3 设定现实的期望与决策点必须清醒认识到在数据受限条件下模型的绝对预测精度是有限的。我们的目标不一定是得到一个AUC0.95的完美分类器而是富集率Enrichment Factor模型能否从庞大的虚拟库中将真正的活性分子富集到前1%、5%的排名中一个能将活性分子富集5-10倍的模型即使其绝对AUC只有0.7-0.8也已经能极大提升实验筛选的效率。决策支持而非决策替代模型的输出应该作为化学家和生物学家决策的重要参考而不是最终裁决。将模型预测排名前50的分子交给专家根据化学可合成性、专利空间、类药性等进行综合评判最终选择10-20个进行实验。这个人机结合的过程能有效规避模型的盲区和错误。最后的防线——湿实验验证无论模型表现多好计算预测始终是“纸上谈兵”。必须尽快进入合成与生物测试的循环。最早几轮的实验反馈是校准模型、判断项目可行性的黄金标准。如果模型精心挑选的前几批化合物在实验中全部折戟那么可能需要重新审视靶点、数据质量或整个建模策略。在数据受限的药物发现中成功的秘诀不在于追求最复杂的模型而在于最巧妙地利用有限的数据并将计算智能与领域专家的经验、以及必不可少的实验验证紧密地、迭代地结合在一起。这是一个需要耐心、严谨和务实精神的探索过程。
返回列表