DRUGAI
可微分编程奠定了机器学习的基础,并为解决化学工程问题提供了新的方法。本文评论了在教育领域以及如何为劳动力做好利用这些工具的准备中所面临的机遇和挑战。将这些技能与领域知识相结合,可以对化学工程的未来产生重大影响。
模型从化学工程领域创立之初就扮演了核心角色。模型的发展已经经历了四个范式的变革(图1)。最早的模型以相关性形式存在,包括表格和图形化形式,例如久负盛名的蒸汽表。在这一范式中,使用这些模型无需了解背后的物理和化学原理,只需正确、有效地使用这些表格即可。接下来的阶段利用机械工具手动将数学模型与数据拟合。例如,使用坐标纸或对数坐标纸可以手动完成线性回归,以估算斜率和截距,从而进一步估算扩散系数或活化能等量化指标。第三次革命是计算技术的引入,这使多变量和非线性回归成为可能,并能够分析更大规模的数据集。这一阶段与实验技术的进步结合,为科学和工程的发展带来了巨大的飞跃。硬件、软件和数值算法的持续进步,推动了机器学习(ML)的发展,这是建模的第四范式。ML模型是高度灵活的、以数据驱动的模型,它们不需要物理理解即可运作(与第一范式的相关性模型类似)。如今,开发ML模型在普通计算机上已经成为可能。
这些工具如今已经影响了化学工程的几乎每一个角落。在本文中,研究人员提出,这种影响才刚刚开始,而支撑第四范式的基础为整个领域提供了许多新的机会。然而,要抓住这些机会,需要将领域知识、机器学习(ML)和数据科学的技能交叉融合。第一项,即领域知识,是研究人员已经具备并能够继续深化的优势。而后两项相对较新,要求我们学习新的技能,并开发将这些技能融入教育、研究和工业实践的新方法。
可微分编程
可微分编程(Differentiable programming)由自动微分(Automatic Differentiation, AD)驱动,是我们认为支撑机器学习(ML)成功的关键技术创新,也是未来影响的核心所在。可微分编程的基本理念是,计算机程序、软件包、工具甚至完整的编程语言都被设计为在代码执行的任何位置都可以直接获取导数,这些功能本身就内置于软件之中。这得益于自动微分的实现,它利用链式法则以与解析导数几乎等价的方式评估程序的导数,而无需推导和实现,也无需依赖有限差分或符号计算。
自动微分的概念已有数十年历史,但其在Python和Julia等流行的开源编程语言中的普及,以及其与机器学习框架的结合则是近些年的发展。简而言之,现代机器学习依赖优化工具来最小化目标函数,而这些工具需要使用导数。对于许多机器学习模型来说,通过数值方法(例如有限差分)或符号方法来计算这些导数既不实际又在计算上不可行。现代自动微分推动了新型机器学习架构、模型和方法的快速创新。这种快速原型化能力促进了从多层感知机神经网络到循环神经网络、长短期记忆网络(LSTM),再到近年来支持大型语言模型的Transformer架构的演变。
然而,自动微分的应用远不限于此。导数在科学与工程中无处不在:除了优化,它们还应用于热力学、驱动力、传输现象、灵敏度和不确定性量化、控制理论以及机器人学等领域。将可微分编程与自动微分应用于科学与工程程序中,可以在超越模拟的计算分析中实现快速创新。例如,我们曾利用自动微分快速准确地计算了复杂反应网络中基于导数的速率控制程度,这一过程通过有限差分方法难以实现。此外,我们还开发了一种基于自动微分的新型逆问题求解方法,用于将两个状态空间映射在一起,该方法比传统的非线性规划方法更高效。在分子模拟的机器学习势函数中,原子上的力通过自动微分计算能量函数的导数而得。同样,自动微分与可微分编程的概念已用于具有强数学保证的计算模型和算法的分析中。
自动微分不仅限于标量的一阶导数;它还可以从程序中计算雅可比矩阵、海森矩阵、向量乘积及高阶矩阵导数。这为科学家和工程师在优化、新模型的正则化等方面带来了许多新的方法。当与深厚的领域知识结合时,机器学习可被用于开发复杂系统的先进模型,例如参数估计或结合神经网络与机理知识的混合建模方法,用于动态系统的建模。在过程控制中,还存在利用导数信息来改善系统辨识与控制性能的应用,尽管受制于适当导数工具的选择等限制。
一个潜在的挑战是对现有大规模代码库进行重构,因为它们可能不支持可微分编程,例如,由于使用不兼容的编程语言。在这种情况下,需要谨慎权衡重写代码的成本与长期收益。一些成功的实例包括JAX生态系统,它提供了NumPy和部分SciPy的可微分版本,从而释放了自动微分在科学编程中的潜力。Julia编程语言在科学机器学习应用中的努力也采取了类似方法。计算机科学界早在多年前就已完成了这一工作,而我们认为现在是时候将其引入化学工程领域,以便我们也能从这些创新工具中受益。
超越“黑箱”机器学习
自动微分的普及以及scikit-learn、TensorFlow、JAX和PyTorch等机器学习框架的发展,使得将机器学习当作“黑箱”处理变得容易。这类似于过去的范式,例如快速线性代数推动了线性回归的标准化应用,先进的优化算法推动了非线性回归和早期神经网络拟合的实现。然而,如果结合对数学结构的理解以及可微分编程的能力,我们可以让这些模型做得更多。
例如,一个用于回归的标准神经网络可以被视为一种非线性降维转换,将输入向量空间转化为线性输出的新的潜在空间。对于单层网络,该潜在空间也可以看作是激活函数的基函数展开。因此,对于给定的数据集,一些激活函数的拟合效果优于其他函数,激活函数决定了训练后神经网络的数学性质。然而,虽然双曲正切等选择提供了灵活的连续函数,但它是非凸的,因此难以全局优化。相比之下,ReLU(修正线性单元)等效于分段线性函数,可以使用OMLT等工具方便且有保证地找到全局最优解。类似能力也正在其他形式的机器学习模型中实现,例如线性决策树。
机器学习模型的不确定性量化仍然是一个尚未解决的挑战。尽管一些方法具备不确定性量化功能,例如贝叶斯模型和高斯过程模型,但这些方法需要较高的技能,并且训练计算成本昂贵,尤其是在使用有限差分时。传统依赖海森矩阵的不确定性量化方法通常不适用于机器学习模型。大型神经网络通常有106–107个参数,计算海森矩阵甚至将其求逆都不可行。对于较小的模型,尽管可以计算海森矩阵,但其通常是奇异的,使用时需要特别注意。这仍然是该领域的开放性问题,而利用机器学习与可微分编程的概念可能为研究这些挑战提供新的途径。
科学与工程中的自动微分与机器学习
机器学习显然不会消失。事实上,我们预测它将在未来的科学与工程中扮演更加核心的角色,我们也将看到领域知识与机器学习和数据密集型科学更深度的融合。这里的“数据密集型科学”涵盖了通过实验与模拟生成数据的过程。机器学习对数据的需求不言而喻,关键在于数据的质量,而非仅仅数量。当前,自动化实验的研究正在不断增加,包括与大型语言模型的整合。一名研究人员通常难以掌握所有必要技能,因此高效协作的团队对于未来的成功至关重要。
要充分利用自动微分与机器学习,整个社区需要在领域知识、数据密集型科学和机器学习方面取得进步。尽管可微分编程可以编写包含导数的程序,但仍需要领域知识来决定编程模型,解释结果,尤其是理解数据与模型之间的差异。这些数据还必须具有输入变量和输出结果之间的功能关系意义。由于实验往往以模型的分析为基础进行设计,因此实验与模型开发不能彼此独立完成。尽管我们在文本和分子模拟等大规模数据集领域拥有高度有效的人工智能和机器学习模型,但许多实验领域难以达到这种数据规模。在较小数据集上工作的机器学习模型的开发需要付出大量努力,可能采用迁移学习、多模态学习或基础模型的方法。
这对我们的领域来说是一个开放性挑战。自动微分与机器学习的普及尚属新生事物,大部分学术与工业劳动力在教育阶段未曾接触过这些内容。与之相关的自动化技能和数据科学尚未成为大多数教育计划中的标准部分。然而,从现在开始,并持续到未来,越来越多的人需要在这些领域获得技能。即使学术界增加了新课程、辅修和学位项目,各公司也在这些领域开设了自己的内部培训项目。我们相信,化学工程领域在其培训与教育计划中创新的潜力巨大,可以为现有劳动力提供技能提升的路径,并为新生代学生进入这一领域做好准备,从而为未来的成功作出贡献。这需要大量努力与创造力;任何课程变动都意味着机会成本。我们必须找到既适合四年制学位项目,又适合终身学习的方法。然而,如果能够成功,未来的进步将令人期待。
整理 | WJM
参考资料
Kitchin, J.R., Alves, V. & Laird, C.D. Beyond the fourth paradigm of modeling in chemical engineering. Nat Chem Eng (2025).
https://doi.org/10.1038/s44286-024-00170-x