斯坦福教授用新算法做药物研发,只需少量训练数据 | 论文+代码

简介:
本文来自AI新媒体量子位(QbitAI)

深度学习可以通过看脸认出不同的人,帮医生检查医疗影像识别病变,将语音转成文字……在各种领域,都有着很高的准确率。

但是借助深度学习技术来开发新药,一直是个愿景美好、进展缓慢的领域。

因为在多数情况下,深度学习系统的训练需要大量数据,而在药物开发领域,数据量非常有限。如斯坦福大学化学教授Vijay Pande所说:“如果你已经拥有数千个药物设计样本,很可能已经成功开发出药物了。”

 Vijay Pande

不过,Pande和他的学生正在尝试把机器学习,特别是深度学习用在药物设计的早期阶段,还开发了新药研发领域的开源系统DeepChem。

训练数据从哪来?他们认为,可以借助one-shot learning来解决这类问题。one-shot learning指的是一种只需要少量数据点的深度学习系统。他们的测试证明了这种方法的确在药物开发和其他化学研究领域拥有潜力。研究结果已经发表在4月3日的《 ACS Central Science》上。

Pande团队提出了名为迭代优化长短期记忆(iterative refinement long short-term memory)的新架构,与图卷积神经网络(graph convolutional neural networks)相结合,有效提高了算法学习小分子间有意义距离度量的能力。

为了让分子信息更易消化,研究人员首先按照原子之间的连接(数学家会将其称作图谱)呈现每个分子。这个步骤用算法可以处理的形式强调了化学成分的固有性质。

有了这些图形化的表现,该团队通过两个不同的数据集训练一套算法:一个包含了不同化学物质的毒性信息,另外一个则详细记录了已经获批的药物的副作用。从第一个数据集汇总,他们用6种化学物质训练了算法,使之预测出另外3种物质的毒性。使用第二个数据集,他们训练系统在21项任务中将药物与副作用联系起来,然后又对另外6种药物进行测试。

在这两个案例中,算法预测毒性和副作用的能力都有所提升。

然而,Ramsundar也警告称,这并不是一项“神奇”技术。它的基础是特定类型的one-shot learning技术最近取得的进步,而且还要依赖不同分子之间的紧密度,这可以通过他们的分子式间接体现。例如,当研究人员使用毒性数据训练算法,然后在副作用数据上测试时,算法就完全失效。

“这项技术或许会成为一项有益的补充,充当实验助手的角色。”

Pande的研究生、该论文的联合作者Bharath Ramsundar说。目前,化学家在研发早期,试图从一系列有潜力的候选方案中找到合适的分子时,主要凭感觉来猜。

除了可以分析药物设计外,这项工具还可以广泛应用于分子化学领域。Pande Lab已经针对太阳能电池的不同化学成分测试了这些方法。

“这是one-shot learning第一次应用在该领域,很高兴看到机器学习进步如此之快。”Pande说,“这并非终点,而是起点。”

实验中用到的所有源代码都已经开源,作为DeepChem代码库的一部分。在量子位公众号(QbitAI)对话界面回复“新药研发”,我们会将论文和DeepChem开源代码地址发给你。

本文作者:李杉 李林
原文发布时间:2017-04-05
相关文章
|
12天前
|
机器学习/深度学习 自然语言处理 算法
调研180多篇论文,这篇综述终于把大模型做算法设计理清了
《A Systematic Survey on Large Language Models for Algorithm Design》综述了过去三年大型语言模型(LLMs)在算法设计中的应用。LLMs通过自然语言处理技术,助力生成、优化和验证算法,在优化、机器学习、数学推理等领域展现出广泛应用前景。尽管存在资源需求高、结果不确定等挑战,LLMs仍为算法设计带来新机遇。论文地址:https://arxiv.org/abs/2410.14716。
47 14
|
1月前
|
存储 算法 程序员
C 语言递归算法:以简洁代码驾驭复杂逻辑
C语言递归算法简介:通过简洁的代码实现复杂的逻辑处理,递归函数自我调用解决分层问题,高效而优雅。适用于树形结构遍历、数学计算等领域。
|
2月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
65 1
|
2月前
|
存储 缓存 算法
通过优化算法和代码结构来提升易语言程序的执行效率
通过优化算法和代码结构来提升易语言程序的执行效率
|
2月前
|
算法
分享一些提高二叉树遍历算法效率的代码示例
这只是简单的示例代码,实际应用中可能还需要根据具体需求进行更多的优化和处理。你可以根据自己的需求对代码进行修改和扩展。
|
2月前
|
存储 编解码 负载均衡
数据分片算法
【10月更文挑战第25天】不同的数据分片算法适用于不同的应用场景和数据特点,在实际应用中,需要根据具体的业务需求、数据分布情况、系统性能要求等因素综合考虑,选择合适的数据分片算法,以实现数据的高效存储、查询和处理。
|
2月前
|
存储 缓存 算法
分布式缓存有哪些常用的数据分片算法?
【10月更文挑战第25天】在实际应用中,需要根据具体的业务需求、数据特征以及系统的可扩展性要求等因素综合考虑,选择合适的数据分片算法,以实现分布式缓存的高效运行和数据的合理分布。
|
2月前
|
分布式计算 Java 开发工具
阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。
|
11天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
145 80
|
5天前
|
机器学习/深度学习 算法
基于遗传优化的双BP神经网络金融序列预测算法matlab仿真
本项目基于遗传优化的双BP神经网络实现金融序列预测,使用MATLAB2022A进行仿真。算法通过两个初始学习率不同的BP神经网络(e1, e2)协同工作,结合遗传算法优化,提高预测精度。实验展示了三个算法的误差对比结果,验证了该方法的有效性。

热门文章

最新文章