基于机器学习的统计工具正在融入化学研究工作流程。我们讨论了训练可靠、可重复和可重现模型所需的要素,并为机器学习报告推荐了一套指南。 https://www.nature.com/articles/s41557-021-00716-z
长期以来,化学一直受益于使用模型来解释数据模式,从化学动力学中的艾林方程、描述化学稳定性和反应性的电负性,到联系分子结构和光谱的配体场方法。这类模型通常采用可重现的封闭式方程
的形式,并且在数十年的过程中仍然具有相关性
。然而,化学规则通常仅限于特定类别的系统(例如多面体硼烷的电子计数
)和特定条件(例如热力学平衡或稳态)。
由于简单的分析表达式或复杂的数值模型的限制,统计建模和分析正在成为化学领域的宝贵研究工具。利用这个工具,可以发现以前无法通过人类直觉的找到的新的或更广泛的关系。但是,做这行必须遵循谨慎的协议,以达到与既定方法类似的有效性、可重复性和寿命水平。
这篇综述的目的是提出一个“最佳实践”标准,以确保通过统计学习开发的模型是robust的,并且观察到的效果是可重复的。我们希望该清单对作者、审稿人和读者有用,以指导机器学习模型的训练和报告的批判性评估并提供一定程度的标准化。我们建议出版商可以在提供的清单的帮助下为机器学习手稿制定提交指南和可重复性政策。我们希望许多科学家将带头开展这项运动,并自愿提供机器学习清单来支持他们的论文。
统计机器学习技术在化学中的应用历史悠久1。算法创新、数据可用性和计算机能力的提高导致该领域空前增长。扩展上一代的高通量方法,并建立在许多广泛和精心策划的数据库的基础上,分子和材料的化学结构和物理特性之间能建立映射关系,如使用监督学习对回归(例如反应率)和分类(例如反应输出)问题的预测。值得注意的是,在分子动力学中,需要用到基于高斯过程的原子间势,而人工神经网络可以比DFT更低的计算成本来预测。研究文献本身已成为使用自然语言处理(NLP)挖掘潜在知识的宝贵资源,最近应用于提取无机晶体的合成配方
。除了数据挖掘,化学超空间的有效探索,包括逆向设计问题(如根据需要化学性质生成分子)的解决方案,正在通过应用autoencoders和generative model变得容易处理。不幸的是,围绕数据驱动的方法缺乏透明度导致一些科学家质疑结果的有效性,并认为该领域面临“可重复性危机”。
化学正在向开放的科学生态系统过渡,包括可重复的工作流程和机器可读的数据的发布。在计算化学领域,可重现性以及DFT等主流方法的实施已被调查。众多研究者提出了在线数据库的可用性的开放标准。对于数据驱动的方法也必须这样做。化学机器学习代表了一个发展中的领域,其中数据是一种重要的商品,但协议和标准尚未牢固建立。与任何科学报告一样,必须为机器学习研究提供足够的信息和数据,以便对其进行严格评估,并且可对模型进行重复。作为一个社区,我们必须共同努力,通过遵守 FAIR(findable, accessible, interoperable, reusable)的科学数据管理和管理指导原则,显着提高机器学习模型和数据集的效率、有效性和可重复性。
下面,我们概述了在构建和应用机器学习模型时要考虑的一组准则。这些应该有助于开发强大的模型,使文章结构清晰度,并建立统计工具的可信度,以获得化学领域的广泛接受和实用性。
数据的质量、数量和多样性限制了任何派生模型的准确性和通用性。用静态数据集
(例如来自化学数据库)执行从数据收集→模型训练的线性模型构建过程。相比之下,用动态数据集
(例如来自指导实验或计算)执行迭代模型构建过程,有时称为主动学习,从数据收集→模型训练→使用模型识别缺失数据→重复。在这两种情况下都必须小心选择数据。
大多数数据来源都是有偏见
的。偏差可能源于用于生成或获取数据的方法
,例如,① 对较重元素更敏感的实验技术,或② 基于模拟的数据集,由于计算能力的限制偏爱具有小晶胞的材料。偏差也可能来自为特定目的编译的数据集的context,正如最近探索的无机合成中使用的试剂选择和反应条件。一个经典的例子,在1948 年 11 月 3 日,芝加哥论坛报根据前一天美国总统大选的预测结果,宣布“杜威击败杜鲁门”。事实上是杜鲁门击败了杜威( 303:189 )。错误的来源是该调查是用电话的民意调查,而当时拥有电话是比较有钱的公民(多为共和党倾向)。可以想象关于化学数据集的类似采样错误,其中特定类别的“明星”化合物,如金属二硫化物
或卤化物钙钛矿
可能具有广泛的特征,但并不代表所有材料的多样性。
识别和讨论数据集的来源和局限性很重要。偏差可能是有意的和故意的,例如,最近一篇文献,在势能面区域构建原子间势时,应讨论任何偏差或偏移造成的影响
。
数据库通常会随着时间的推移而发展,添加新数据(连续或批量发布)。出于可重复性的原因,这些数据库必须使用某种版本控制机制(例如版本号、Git 版本控制或时间戳)作为元数据的一部分,并保持数据库先前版本的长期可用性。
我们建议列出所有数据源,记录数据选择的策略,并包括访问日期或版本号。如果数据受到保护或专有,则可以选择使用公共数据集的一小部分来代替。
原始数据集通常包含错误、遗漏或异常值。数据库包含超过 10% 的错误数据是很常见的。事实上,一项研究发现,Materials Project中描述晶体弹性特性的数据有14% 是非物理的
。清理步骤包括删除重复项
、具有缺失值
的条目、不连贯或不物理的值以及最后的数据类型转换。数据管理也可能在原始数据集发布之前进行。数据的这种清理还可以包括归一化
和均质化
,可能组合了多个来源。应注意来源之间可能差异的表征,以及均质化
对派生机器学习模型的影响。数据质量对模型性能的巨大影响和仔细数据管理的重要性在化学信息学的相关领域中得到了强调。一项开创性研究显示了数据库错误的积累
和化学结构的不正确处理
如何导致机器学习模型预测能力的重大损失的例子。当在公共数据库中发现错误时,作为研究过程的一部分,将这些错误传达给数据集维护者是很重要的。
当真实信号与数据中的错误信号相关时,统计模型可能会“因错误原因而正确”。在一个值得注意的例子中,训练了一个高精度模型来预测 Buchwald-Hartwig 交叉耦合的性能。研究结果提示,如果将数据集中的所有特征替换为随机数字字符串,则可以实现几乎相同的准确度。
我们建议要描述应用于原始数据的所有清理步骤,同时还要评估通过清洗过程删除和修改的数值范围。由于无法手动检查大型数据库,因此,集成数据pipeline的
半自动化工作流
的实施和共享至关重要。
相同类型的化学信息可以用多种方式表示。表示(或编码)的选择在模型构建中至关重要
,正如选择机器学习方法对于确定模型性能那样重要。因此,在构建新模型时评估不同的表示至关重要。对于分子和扩展晶体的表示,已经开发了各种方法。一些捕获整个分子或晶体单元的全局特征
,而另一些则代表局部特征
,例如键合环境或分子片段
,还有一些结合了这两个方面。可以使用基于先验知识(通常计算效率高)的手工描述符
和通用学习描述符
(无偏但通常计算要求高)。在化学中,虽然开发新描述符有其优点,但建议与已建立的方法(在准确性和成本方面)进行比较,以便明确优势和劣势。
我们建议,要说明为何选取该描述符,并与标准描述符集进行比较。建议先借鉴已发表的描述符方案的经验,以及它们在标准开放库中的参考来实现,例如 RDKit ( https://www.rdkit.org )、DScribe ( https://singroup.github.io/dscribe ) 和 Matminer ( https://hackingmaterials.lbl.gov/matminer ),然后再尝试设计新的。
存在多种机器学习,从经典算法(如“支持向量机”)、集成方法(如“随机森林”)到涉及复杂神经网络架构的深度学习方法。最近报道,表示元素之间的结合相互作用的图神经网络
可用于化学问题实现高精度预测。Transfer-learning techniques使得可以从化学中常见的较小数据集来训练高级模型,其中一个成功案例是基于高质量量子力学计算的小数据集重新训练通用原子间势。
然而,模型的复杂程度与给定问题的适用性无关:并不总是复杂度越高越好
。事实上,模型的复杂性往往伴随着透明度
和解释性降低
的代价。使用六层神经网络预测地震余震是网上激烈辩论的主题,也有正式的反驳证明只有两个自由参数的单个神经元(与原始模型的 13,451 个相反)可以提供相同水平的准确度。这个案例强调了baseline
的重要性,baseline包括如① 选择最有可能的类别(分类)、② 预测均值(回归)或③ 将结果与没有外推能力的模型进行比较,例如 1-最近邻,它本质上是在进行预测时“查找”最近的已知数据点。在提出传统技术的机器学习替代方案的情况下,与最先进技术的比较
是另一个重要的基线测试和模型成功的一般衡量标准。
我们建议通过将基线与更简单—甚至平庸的模型以及当前最先进的模型进行比较来证明您的模型选择是合理的。应提供软件实现,以便可以使用新数据训练和测试模型。
训练一个robust的模型必须平衡欠拟合和过拟合,这对模型参数(例如神经网络中的权重)和超参数(例如核参数、激活函数以及训练算法的选择和设置)都很重要。模型构建和选择涉及三个数据集。训练集
用作模型的优化目标,以针对给定的超参数选择进行学习。一个独立的验证集
用于在参数训练期间检测过拟合。针对验证集来优化模型超参数。然后使用一组测试集
来评估最终模型的准确性,并再次检测是否过拟合。这三个集合可以由原始数据集的随机拆分形成,或者首先将数据聚类为相似的类型,以确保实现不同的拆分。在估计训练精度时,通常检查和报告均方误差
,但应确认精度在整个数据集上是一致的。
还应报告训练过程的计算密集度,因为该方法对其他人能不能用将取决于所需的数据和资源。例如,基于序列的generative model是一种强大的分子从头设计方法,但使用循环神经网络训练它们目前只有在最先进的GPU和数百万训练样本下才可行。按照传统术语,验证集仅在训练期间使用,而独立测试集在应用之前评估训练模型。然而,在任意测试集上的训练模型的准确性并不是评估性能的通用指标。
测试集必须代表预期的应用范围。例如,在酸性条件下对溶剂化结构和能量进行训练的模型在类似数据上可能是准确的,但不能转移到中性条件。要制定可靠的测试准确度度量是挺难的。最近一项研究评估了机器学习模型的准确性,该模型使用随机交叉验证或多样性分裂策略的聚类算法来预测钢的疲劳强度或临界温度。对后一种模型,模型精度大幅下降(2-4 倍性能降低)。这些模型对于引入新的和略有不同的数据非常敏感,以至于失去任何预测能力。
获取外推(vs内插)性能的验证方法正在开发中,通过在整个类别的化合物(leave-class-out selection or scaffold split)进行测试来排除,或通过排除数据集里面极端的值来测试。另一种行业标准方法是时间分割交叉验证
,其中模型在特定日期的历史数据上进行训练,并在稍后生成的数据上进行测试,模拟未来验证的过程。
我们建议说明如何获得训练、验证和测试集,以及模型性能对训练方法的参数的敏感性,例如使用不同的
随机种子
或数据集的重新排序
来重复训练。应对与预期应用相关的数据进行验证。
所有研究领域都存在可重复性危机。如果我们将彻底的不当行为和数据捏造的案例搁置一旁,选择性报告好的结果
的情况就会很普遍。更深入,数据挖掘(p-hacking) 是一种操纵技术,用于寻找具有统计学意义的结果,从而显着增加观察到的效果。“在结果已知后进行假设”(HARKing)其实是在研究报告中提出一个事后假设,但好像它实际上是一个先验假设。为了加强公众对科学的信任并提高已发表研究的可重复性,作者必须公开他们的数据和代码。这超越了纯粹的计算研究和倡议,如“dark reactions project”,以展示文献中从未报道过的失败实验的独特价值。
前五个步骤需要研究人员做出许多选择来训练有意义的机器学习模型。虽然应该报告这些选择背后的原因,但要满足可重复性是不足够的。许多未在出版物的method部分列出的变量可以在最终结果中发挥作用——魔鬼在超参数中
。甚至软件版本也很重要,因为默认变量经常发生变化。对于大型开发,独立代码的给出,例如在Open Source Software杂志可能合适。需要说明运行工作流所需的辅助软件包和版本,通过列出所有依赖项、环境(例如conda 环境)或提供独立容器。正在制定支持可重复工作流程报告的举措,包括https://www.commonwl.org、https://www.researchobject.org和https://www.dlhub.org。
我们建议在保证长期存档的公共存储库中提供完整的代码或工作流(例如永久 DOI 存档的在线存储库)。提供代码不仅可以让其他人完全复制研究,而且可以受到挑战、批评和进一步改进。至少应提供一个脚本或电子notebook,其中包含重现报告结果的所有参数。
化学研究中的这些新冒险之所以成为可能,要归功于那些为基础技术、算法、代码和包做出贡献的人。该领域的发展得到了开源理念的支持,其中包括发布预印本和公开免费提供软件。未来的进展关键取决于这些研究人员贡献的影响。在所有报告中,请记住引用所采用的方法和包
,以确保开发社区获得应有的认可。
这篇review中提出的建议来自与许多研究人员的互动。虽然机器学习在化学领域的应用和发展具有巨大的力量和潜力,但我们有责任建立和保持高标准的研究和报告。