让机器学习手把手指导你的下一步实验-基于贝叶斯优化的序贯实验

在企业的日常研发工作中, 工程师可能会面对众多潜在影响因子及这些因子间的复杂组合而无所适从,不知道如何通过实验构建这些因子与最终响应间的数学模型。类似困扰常出现在锂电池行业对于电解液配方的研究、医药行业对于生物制剂配方的设计,以及化工行业对于合成路线的确定等,其中涉及到的成分因子与过程因子均远超课本中经典实验设计方案所能承受,使企业在成倍增加研发成本的同时产品性能却难以突破。
来自普林斯顿大学学者2021年的一篇Nature“爆款”文章1为我们提供了一种基于机器学习来高效探索因子最优组合的方法。无需复杂的编程,借助JMP强大的数据处理与机器学习功能,大家不妨跟我们来一起体验一下普林斯顿大学的基于贝叶斯优化的序贯实验吧。
#01 通俗易懂说说什么是序贯实验&贝叶斯优化
所谓序贯实验(Sequential Experimentation),即为进行实验时不预先固定总实验次数,每做完一阶段实验并获得实验数据之后,我们都需要进行决策分析,来决定下一阶段实验的具体类型及其中因子的取值。每一次的决策分析均可视为一次对实验方向的修正,帮助我们更接近最终优化目标(如最大产量、最小不合格率、最大强度等)。我们不断重复这个实验-决策-实验的过程,直到达成某个给定的停止规则。
本文中所指的机器学习方法均是指贝叶斯优化(Bayesian Optimization)。贝叶斯优化常被应用于机器学习模型的超参数优化,即在计算成本受限、优化方向不明的情况下找到最佳的超参数组合(与我们做实验设计的目标完全一致!)。该优化方法以贝叶斯定理为指导,在每次迭代地时候,都会综合考虑之前观测到的所有历史信息(先验信息)来决定下一步优化的方向,这又与序贯实验中实验-决策-实验的理念相一致。那我们为什么不能将这两种方法进行结合呢?如果你也有类似的想法,那么恭喜你!你与普林斯顿的大牛们的想法不谋而合,他们正是将贝叶斯优化所计算得到的优化方向作为序贯实验决策分析依据,让“机器”来指导我们如何进行下一步实验。
至此,我们知道了基于贝叶斯优化的序贯实验的大体迭代思路,但是具体的数学公式方面仍未作任何解释, 那就请大家跟着我们来通过一个虚拟实验案例来进一步了解。
#02 二阶最优化问题和响应曲面模型JMP实现
我们考虑优化一个包含三个连续因子及一个连续响应的系统(见图1),优化目标为使Y越大越好。因为本实验为一个虚拟实验,我们预先设定响应与因子间的关系为如下二次函数:
其中ε为正态随机数,用来模拟真实实验中的各种实验误差对响应的影响。容易看出,Y的最大值为4,且在当X1=X2=X3=0.5 时取得该最大值。我们想要验证的就是基于贝叶斯优化的序贯实验需要多少次实验能帮助我们找到该最大值。

我们以响应曲面设计中的中心复合设计作为比较基准,可以通过查表或JMP实验设计平台了解到,三因子优化问题最少需要进行16次响应曲面实验才能预测最优解的位置,见图2b。获得实验设计表后,我们使用上述表达式(见图2d)来模拟响应并进行二次模型拟合。

拟合结果见图3, 通过JMP独有的交互式预测刻画器,我们可以看到基于16次经典实验计算得到的数学模型给出的最优参数组合为(0.5,0.54,0.43),响应最优值为3.97。

#03 基于贝叶斯优化的序贯实验JMP实现
序贯实验及贝叶斯优化均严重依赖于我们对系统的先验认知,只有通过各种先验信息的汇总,才能找到下一步的优化方向。
这里,我们假定对上一节所提到的二阶最优化问题没有任何了解,为了快速获得该系统最基本信息,我们可以尝试使用JMP中的空间填充设计构建8次实验,并对实验响应进行模拟,见图4。注意,这里的空间填充法并不是必须,其他描述性实验设计方法,诸如完全析因设计均可尝试。

在整个贝叶斯优化的过程中,目标函数为 Y=f(X1,X2,X3),我们想要优化目标函数使Y最大化,但我们并不知道这个函数具体长什么样,其中哪些效应项显著,哪些效应项可以被剔除。那我们就退而求其次,转而优化一个代理函数(Surrogate Function)来取代目标函数。
我们要求代理函数能够完全拟合我们已经观察到的数据点且易于计算,虽然最初的代理函数可能与目标函数大相径庭,但它本身会在每一步序贯实验之后被不断更新。可以预见的是,随着我们收集到的数据点增多,代理函数会逐渐逼近目标函数,我们通过代理函数求得的最优响应与最优参数组合也就越接近理论最优。
在本例中,我们选用JMP中的高斯过程作为代理函数,拟合从8次空间填充实验中获得的数据点,并将拟合得到的预测均值与预测方差表达式存入原实验设计表格中作为我们寻找优化方向的依据,具体操作路径见图5。

通过已有数据点上的高斯过程预测均值与预测方差来确定优化方向,即通过先验信息来选择下一个实验点,通常由采集函数(Acquisition Functions)来实现。
采集函数帮助我们权衡是在代理函数极值点附近做更多实验收益大,还是在原先没有数据的区域做更多实验收益大,从而使每次新增实验都达到“利益最大化”。文献2中给出了众多可供选择采集函数,本文以Gaussian Process Upper Confidence Bound (GP-UCB) 为例,大家可自行尝试其他采集函数。我们在实验设计表中新建一列UCB列,并填入图6所示函数表达式。借助JMP的交互式刻画器中的最大化意愿功能(见图7),我们能立刻求解出采集函数在 X1=0.738,X2=1,X3=1时取得最大值, 这也就是“机器学习“推荐的下一步实验参数组合。


我们遵循序贯实验的步骤,不断重复上述分析步骤(拟合高斯过程作为代理函数-计算采集函数-最大化采集函数-确定下一步实验参数-进行实验并获得响应)。前12次实验的结果见图8a。细心的你可能很快就发现,从第9次实验开始,贝叶斯优化在寻找最优解的过程中逐渐向理论最优解不断逼近(X1=X2=X3=0.5),从而使我们能够在有限的资源下最高效的找到最优解。
为了验证实验结果并与响应曲面模型结果(图3)进行对比,我们使用JMP“拟合模型”平台构建二次模型并对最优Y值做出预测,结果见图8b。受限于实验次数与实验点的不平衡分布,基于12次贝叶斯优化实验做出的预测有较宽的置信区间,但对最优响应均值与最优参数组合的预测却与16次响应曲面实验结论接近, 进一步验证了贝叶斯优化在优化问题上所展现出的高效性。

#05 小结
基于贝叶斯优化的序贯实验自从被提出以来,受到工业界的广泛关注,在传统化工、生物制药及锂电等传统实验设计力所不能及的领域,贝叶斯优化的价值都在不断被验证。
借助JMP软件,我们在不进行任何编程的情况下一起探索了一个三因子简单系统,实际观察到了序贯实验如何在“机器“的指导下,一步步逼近理论最优解。对于我们工程师实际业务问题,随着系统复杂度及影响因子的成倍上升,或许机器学习能成为我们在研发路上的破局之道。
JMP 17 版本全新问世!欢迎下载最新版软件免费试用体验:
https://www.jmp.com/zh_cn/download-jmp-free-trial.html?utm_campaign=td7015b0000057famAAA&utm_source=bilibili&utm_medium=social