利用贝叶斯优化方法寻找混合模型的最优参数通过 24 次运行的混合 DOE,我找到了三元混合和一分类效应的非常好的模型和最佳设置,这在前面的讨论中已经介绍过;附件中再次提供了分析结果,以及下面截图显示了期望结果。
frankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.pngfrankderuyck_0-1788534496337.png
使用异构体 2 时,期望值结果更差;低于锁定异构体 2 时的设置。
frankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.pngfrankderuyck_1-1788534633931.png
从 9 次运行的候选空间填充集(见附件“成功的 9 次运行”)或 12 次运行的 Kowalski 集开始,可以检测到异构体 1 的最佳设置。
然而,即使经过多次额外的空间填充运行,从 6 次运行的空间填充候选集开始,我总是得到异构体 2 的较差最优设置!我哪里做错了?如何才能从这 6 次运行的候选集中获得异构体 1 的最优设置?
回复:利用贝叶斯优化寻找混合模型最优参数的问题嗨@frankderuyck ,
你是否按照之前的讨论升级了JMP版本?
查看您最后一个文件,当仅使用 6 次初始空间填充运行从头开始启动 BayesOpt 平台时,模型似乎已经相当不错了:
Victor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.pngVictor_G_0-1788772508694.png
因此,我没有使用自动建议“复制最佳训练运行”(我删除了批次中的此运行),而是手动强制使用采集功能“ 最大多模型标准差”,并在当前批次中添加 1 次运行,因为由于模型预测的不确定性,区分异构体 1 和 2 很困难(您可以在 Profiler 上查看异构体类型之间的置信区间)。
当使用新添加的运行重新启动平台时,性能分析器似乎更加可靠,默认运行建议是使用“ 最大预期改进”采集功能自动完成的,设置接近您的最佳设置:
Victor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.pngVictor_G_1-1788773154124.png
添加此自动推荐的跑步路线后,平台推荐的下一个选项是复制此最佳训练路线:
Victor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.pngVictor_G_2-1788773243902.png
鉴于你的两个响应的复杂度相对较低,可以从 6 次运行的空间填充设计开始,并增加 3 次运行,从而获得足够的最优推荐。前提是,你要考虑在模型的学习及其行为的背景下,哪个采集函数是最相关的,并且你手动“强制执行”该选项。
附件是我使用您提供的 6 次运行示例处理后的运行情况。使用 JMP Pro 19.1.3 完成。
编辑:我在优化过程中漏掉了 Y 列。但是,即使不考虑它,我也可以得到不错的结果,因为它似乎与第 6 列第 2 列呈负相关。
在考虑 Y 和其他两个第 6 列响应时,您可能需要额外运行一次最大多模型标准差(总共两次,一次接一次),然后分析器才能显示不同异构体类型的良好排序和行为:
Victor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.pngVictor_G_0-1788778413164.png Victor_G_0-1788778413164.png
添加 2 次运行的最大多模型标准差后,您可以通过强制执行最大预期改进准则来开始优化。您应该会得到一个接近您之前成功尝试所获得的解决方案(参见文件 Successful 6 Run Fast Flexible Filling Design starter 2)。
希望这个回答对您有所帮助。
回复:利用贝叶斯优化寻找混合模型最优参数的问题嗨,Victor,是的,我已经升级到最新的JMP版本了。很遗憾,我无法重现你的结果;BO总是从空间填充开始;当从异构体2开始复制,并且我对期望值不满意时,我会切换到Max Multimodel St dev,但仍然没有成功。在之前关于BO的网络研讨会中,推荐切换到Max Max pro标准,但这也不起作用。附件是我的结果(有3个输出Y123)。
回复:利用贝叶斯优化寻找混合模型最优参数的问题你怎么知道在第一次 BO 运行中,需要使用最大多模型 St dev 而不是空间填充?
回复:利用贝叶斯优化寻找混合模型最优参数的问题嗨@frankderuyck ,
我建议从头开始创建场景,只保留最初 6 个填充空间的运行,并删除其他所有运行。
请从头开始使用默认设置重启 BayesOpt 平台,并强制平台使用“最大多模型标准差”准则运行两次。这两次运行的结果应该相同,之后您可以强制使用“最大预期改进”准则进行优化,平台会推荐一个与您使用实验设计 (DoE) 得到的最优解接近的最优解(输入参数与第二次“最大多模型标准差”运行相同)。
回复:利用贝叶斯优化寻找混合模型最优参数的问题我用 Max Multimodel St Dev 启动时,无法重现你的结果。
回复:利用贝叶斯优化寻找混合模型最优参数的问题我忘记回答这部分评分标准了:
- MaxPro 最大化准则是一种与模型无关/无模型的设计空间探索方法。它不考虑高斯过程模型的结果和学习,而仅仅是基于最大化点间距离这一目标。其目标是在设计空间中“空白”区域添加点/实验(最大化现有点与新推荐点之间的距离)。
- “最大化多模型标准差”是基于模型的设计空间探索。它会考虑高斯过程模型的输出和学习结果,并推荐预测不确定性最高的区域内的点。
在您提供的 6 次运行方案中,模型在初期表现尚可:Y 的 R² 值最低,但也达到了 0.3566,说明模型已经捕捉到了一些信息。Y2 和 Y3 的 R² 值非常高,因此下一步可能并非继续进行无模型探索,更明智的做法是利用模型的学习成果,尝试降低其预测的不确定性。
希望这个回答对您有所帮助。
回复:利用贝叶斯优化寻找混合模型最优参数的问题我不太清楚你具体做了什么,但你似乎只用了一次以最大多模型标准差为准则的运行和一次以最大预期改进为准则的运行就找到了最优解?所以任务成功了?
就我而言,我需要运行 2 次最大多模型标准差和 1 次最大预期改进(与第二次最大多模型标准差的输入相同)才能接近最优解。
回复:利用贝叶斯优化寻找混合模型最优参数的问题默认 R² = 0.25?初始值不增加到 0.7?
回复:利用贝叶斯优化寻找混合模型最优参数的问题这方面并没有硬性规定。JMP BayesOpt 开发团队选择 0.25 作为阈值,用于引导模型进入探索阶段(R² < 0.25)或利用阶段(R² > 0.25),但这只是他们基于自身工作和模拟经验得出的一条规则,不应成为您唯一的依据。在某些特定情况下,这个阈值可能并不适用。
相反,应该查看模型、分析器和图表,并找到能够改进所收集信息的最佳措施,例如:
- 强制执行无模型探索,以确保设计空间得到充分探索(Max Pro准则),
- 强制执行基于模型的探索,以利用初始模型并降低其预测不确定性(多模型标准差或贝叶斯期望标准差准则),
- 平衡探索与利用(置信上限准则),或
- 利用模型的预测结果并开始优化(最大预期改进或最大贝叶斯期望准则)。
回复:利用贝叶斯优化寻找混合模型最优参数的问题双倍最大多模型标准差后仍未成功,异构体 1 的期望值较低,BO 又回到了异构体 2。
回复:利用贝叶斯优化寻找混合模型最优参数的问题Frank,请先只运行 6 个初始空间填充运行,表中不要有任何 BO 脚本(删除脚本并删除任何其他行)。
然后,使用默认设置启动 BayesOpt 平台,移除所有自动批次推荐,并添加 1 次最大多模型标准差迭代,持续 2 次,您应该能够使用异构体 1 获得接近最优值的结果(与我的测试结果一致)。一旦连续两次最大多模型标准差运行完成,您应该会看到异构体类型的正确排序:
Victor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.pngVictor_G_0-1788783078290.png
回复:利用贝叶斯优化寻找混合模型最优参数的问题Victor,您好,我按照附件中的说明操作了,但无法复现您的结果。使用 6 个初始空间填充 RUS 构建的模型效果很差,所以我不太明白为什么一开始要使用最大多模型标准差:从效果不佳的高斯过程模型中学习效果并不好?
回复:利用贝叶斯优化寻找混合模型最优参数的问题你的结果中只有 2 个输出;应该有三个才对。
回复:利用贝叶斯优化寻找混合模型最优参数的问题经过 6 次初始空间填充运行后,高斯函数 Y1 的性能非常差,因此需要进行额外的空间填充运行才能获得可接受的模型性能;不幸的是,每次 BO 算法都再次将异构体 2 检测为最优解(?)
回复:利用贝叶斯优化寻找混合模型最优参数的问题我从最初的10次运行空间填充实验设计(DOE,参见附件)开始就遇到了同样的问题,到底哪里出了问题?我们在实验室进行了验证,正确的最优解是异构体1。异构体2的结果更差,而异构体3则完全无法接受。值得注意的是,从第9次运行开始,初始空间填充实验设计的最优解很快就转换到了正确的异构体1设置!
回复:利用贝叶斯优化寻找混合模型最优参数的问题成功完成了 9 次空间填充实验。奇怪的是,运行次数较少时结果却正常。
回复:利用贝叶斯优化寻找混合模型最优参数的问题针对您提出的诸多问题,我在此作一些解答:
- 您可以复现结果,请查看您和我的文件中第二次最大多模型标准差运行的输入和响应值。如果在第二次运行后,您强制 BayesOpt 平台添加一次使用最大预期改进的运行(而不是自动推荐的 MaxPro 空间填充运行准则),则第二次添加的运行将会重复,并且结果接近您预期使用异构体 1 得到的最佳结果。
- 我发送的文件中有三个输出:Y、第 6 列第 1 列和第 6 列第 2 列。
- MaxPro 空间填充准则运行通过最大化现有设计点与新设计点之间的距离来强制探索设计空间,从而间接地改进模型。但其对模型的影响并不确定,取决于响应的复杂性。因此,我在 JMP 帮助文档和我的回答中将此选项称为“无模型”探索选项。另一方面,多模型标准差和贝叶斯期望值标准差是基于模型的设计空间探索:它们利用模型及其预测不确定性,在不确定性最高的区域推荐实验。
因此,为了获得可接受的模型性能,两者都需要:- 空间填充运行是为了确保设计空间得到良好的覆盖,并确保模型能够概括学习到的行为,并且这种行为能够代表设计空间中的真实现象。
- 贝叶斯/多模型标准差运行,以确保降低预测不确定性,达到可接受的精度水平。
请参阅我之前的解释( 链接在此) 。
仔细考虑所有不同的方案需要花费大量时间。你需要记住的是:
- 贝叶斯优化的目标是达到你的目标:一旦达到可接受的结果(基于你的条件),循环就会收敛到该结果,无论最优解是全局最优还是局部最优。因此,根据你的目标规范的“严格程度”(以及响应面的复杂程度),可能会出现过早收敛,也可能不会。
- 在 BayesOpt 平台中,探索/利用部分默认根据 R² 阈值(默认值为 0.25)自动设置:如果模型 R² 低于阈值,则推荐使用 MaxPro 空间填充算法;如果高于阈值,则首先使用最大预期改进准则进行利用。其他选项需要手动设置。
- 我强烈建议您花时间仔细查看和研究您的模型;BayesOpt 可能看起来像一个自动实验循环,并提供了良好的默认实验建议,但您可以通过强制执行模型所需的特定运行来获得更好的结果。
- 不同的场景和不同次数的空间填充运行会提供不同数量和精度的信息。初始运行次数越少,任务难度越大,因此您需要投入更多的信息和精力来构建模型,通过提供足够的运行次数和正确的信息,例如使用 MaxPro 空间填充运行探索设计空间,或使用贝叶斯/多模型标准差运行来改进模型的不确定性。采集函数的选择、并行或串行运行的次数等策略都应根据您已有的信息、模型的精度和学习情况来决定。
希望这个回答能帮助你理解你得到的不同结果。请仔细阅读我之前发送的文件,你已经能够重现我的结果,你只需要使用 Profiler 和专用采集功能强制执行相同的运行(不要让自动选择功能运行,否则会导致最后一次运行使用 MaxPro 空间填充)。
回复:利用贝叶斯优化寻找混合模型最优参数的问题嗨,Victor,在你上面成功的 6 次运行结果中,我只看到了两个输出,分别是第 6.1 列和第 6.2 列(见下文)。还有第三个输出 Y,但我没看到。
frankderuyck_0-1788860113377.pngfrankderuyck_0-1788860113377.pngfrankderuyck_0-1788860113377.pngfrankderuyck_0-1788860113377.pngfrankderuyck_0-1788860113377.png
包括 YI 在内的所有测试都无法检测到正确的最佳设置,即使运行了 10 次也一样,请参见附件(我将 3 个输出重新编码为 Y1、Y2 和 Y3)。
我做错了什么?弄清楚这一点对我们来说很重要。
前9次运行都完美无缺,为什么?
回复:利用贝叶斯优化寻找混合模型最优参数的问题“空间填充运行是为了确保设计空间的良好覆盖--> 我使用了快速灵活的空间填充方法,可以吗?是否需要评估初始的实验设计(DOE)?我看到一些网络研讨会,其中提到仅使用非常有限的初始运行次数,有时甚至仅使用单次试验(OFAT);我猜这种方法只适用于模型简单且数据噪声不太大的情况,对吗?但实际情况并非总是如此,我们也无法预先得知。”
确保模型能够泛化学习到的行为,并且这种行为能够代表设计空间中的真实现象” -- > 在我的示例中,模型的 R² > 0.8,还有其他标准吗?
回复:利用贝叶斯优化寻找混合模型最优参数的问题嗨@frankderuyck ,
@frankderuyck写道:
嗨,Victor,在你上面成功的 6 次运行结果中,我只看到了两个输出,分别是第 6.1 列和第 6.2 列(见下文)。还有第三个输出 Y,但我没看到。
我在第一篇帖子中已经提到我忘记添加 Y 列,但由于 Y 列似乎与第 6 列第 2 列呈负相关,BayesOpt 平台仍然能够优化所有 3 个响应变量。因此,即使最终只用 2 个响应变量而不是 3 个进行优化,我也找到了一个与您提供的最优解非常接近的最优解。我进行的其他测试都是使用全部 3 个响应变量进行的。
@frankderuyck写道:
包括 YI 在内的所有测试都无法检测到正确的最佳设置,即使运行了 10 次也一样,请参见附件(我将 3 个输出重新编码为 Y1、Y2 和 Y3)。
我做错了什么?弄清楚这一点对我们来说很重要。
前9次运行都完美无缺,为什么?
抱歉,我不会重复我之前的帖子,你可以在我之前的回答中找到所有关于如何从 6 或 9 次空间填充运行开始成功进行优化的信息,关于你的模型的诊断、采集函数的选择等等……我实在无法评估你提供的所有场景。
@frankderuyck写道:
“空间填充运行是为了确保设计空间的良好覆盖--> 我使用了快速灵活的空间填充方法,可以吗?是否需要评估初始的实验设计(DOE)?我看到一些网络研讨会,其中提到仅使用非常有限的初始运行次数,有时甚至仅使用单次试验(OFAT);我猜这种方法只适用于模型简单且数据噪声不太大的情况,对吗?但实际情况并非总是如此,我们也无法预先知道。”
是的,从空间填充的快速灵活设计入手通常是个好主意,因为这种设计类型能够处理多种约束和因素类型,所以是个不错的选择。关于运行次数与信息量和精度(取决于响应面的复杂性)相关的问题,请参阅我之前的评论。
@frankderuyck写道:确保模型能够泛化学习到的行为,并且这种行为能够代表设计空间中的真实现象” -- > 在我的示例中,模型的 R² > 0.8,还有其他标准吗?
R² 是模型的一个评价指标,但还有很多其他指标。我建议先进行图形分析,查看实际值与预测值的对比图,因为这类图能提供更多信息。你可以检查模型是否掌握了总体趋势,模型的误差是局部的(在高响应值或低响应值处)还是全局性的等等。
回复:利用贝叶斯优化寻找混合模型最优参数的问题请您将BO测试结果和三份回复一起发给我好吗?谢谢。
回复:利用贝叶斯优化寻找混合模型最优参数的问题请查看我的第一个回答!我附上了两个文件,一个文件是针对两个响应变量进行优化的(但也适用于三个响应变量),另一个文件是针对三个响应变量进行优化的: https://community.jmp.com/t5/Discussions/Problem-to-find-optimal-settings-for-a-mixture-with-Bayesian/mp/969382/highlight/true#M110464