IMPROVE 改进阶段

工艺参数优化:贝叶斯寻优能做什么,不能做什么

筛出关键因子之后,下一个问题是这几个参数各设多少。穷举试不起,凭经验又容易陷在局部。贝叶斯优化提供了第三条路:每试一组就更新一次判断,用前面的结果决定下一组试什么。这一章讲清楚它的原理、单目标限制,以及为什么它给的结果必须经过实验验证。

阅读约 15 分钟 含四种搜索策略对比 含多目标折算方法
先讲个直觉

空手而归也是信息

2009 年一架客机坠入大西洋,残骸位置不明。此后两年间进行了多轮搜索,全部一无所获。

转折出现在一个做法上:搜索团队没有继续按经验划定新区域,而是建了一张概率图——把失联前的最后信号、海流漂移模型、历史同类事故的分布,全都折算成「残骸在这里的可能性有多大」。

关键在于接下来这一步:每一次搜索失败,他们都把那片海域的概率调低,其余区域的概率相应调高。搜过而没找到,本身就是信息。几轮更新之后,概率图指向了一片此前已经搜过的区域——因为当时的搜索覆盖率并不完整。残骸在那里被找到,用时不到一周。

这就是贝叶斯更新:先有一个初始判断,每拿到一个新证据就修正一次,包括那些「什么也没发现」的证据。

工艺参数寻优是同一件事,只是搜索空间换了。你要找的不是大西洋里的一个点,是温度、压力、转速、配比这几个维度组成的空间里,不良率最低的那个组合。

而「试了一组参数效果不好」,和搜过一片海域没找到东西,是同一类信息。它排除了一部分空间,让下一次试验更有针对性。这正是工程师最难接受也最该接受的一点:失败的试验不是浪费。

搜索策略

四种找法,各适合什么场景

参数优化循环通常提供这几种策略,选哪种取决于参数个数和每次评估的成本。

策略怎么找适合不适合
穷举搜索 把每个参数按步长切成若干水平,所有组合逐一试遍 参数少于三个、每组评估很快、需要完整了解响应面 参数一多组合数爆炸,四个参数各十个水平就是一万组
随机搜索 在参数范围内随机抽取组合来试 参数较多、不知道哪个参数更重要时的基线方法 不利用已有结果,后期效率低
爬山法 从一个点出发,朝着变好的方向一步步移动 响应面比较平滑、只有一个最优区域 容易停在局部最优,结果依赖起点位置
贝叶斯优化 用已试过的结果建一个代理模型,预测哪里最可能更好,再去试那里 参数三到十个、每次评估成本高、试验次数受限 参数极多(上百个)或每次评估极快时,优势不明显

工艺场景大多落在贝叶斯优化的适用区间:参数不多但每试一组都要占用产线、耗材料、等检验结果。这种「每次评估都很贵」的情况,正是它相对随机搜索和穷举的优势所在。

必须先知道的限制

参数优化循环是单目标的

一次只能优化一个数

循环的结束端从流程变量里读取一个目标值,然后指定是最大化还是最小化。这意味着「同时最大化强度、最小化不良率、并且能耗不超标」这样的需求,不能直接配置出来

宣传材料里把它写成「开箱即用的多目标寻优」是不准确的。真实情况是:多目标需要你自己先把多个目标合成一个综合评分,再让循环去优化这个评分。

多目标怎么折成单目标

两种常用做法,可以组合使用。

做法一 · 加权求和 综合评分 = w₁ × 强度归一化 − w₂ × 不良率归一化 − w₃ × 能耗归一化 各项先归一化到可比的量纲(例如都缩放到 0 到 1),再按业务权重相加。权重怎么定没有统计答案,应该由业务测算给出——比如降低 1% 不良率值多少钱、多耗 1 度电成本多少,折算成同一个货币单位是最稳妥的做法。
做法二 · 约束转惩罚项 综合评分 = 主目标评分 − 惩罚
惩罚 = (能耗 > 上限) ? 一个足够大的数 : 0 硬性约束不适合做成权重,应该用惩罚项。超限的组合得分被压得极低,搜索自然会避开这片区域。惩罚值要明显大于主目标的正常波动范围,否则算法可能会「用超标换分数」。

如果场景确实需要看完整的权衡曲线——也就是在多个目标之间找出一组互不支配的方案让业务去选——那超出了这个循环的能力范围,需要通过脚本节点调用专门的多目标优化库来实现。

落地做法

怎么把寻优流程搭起来

注意这里优化的是模型的预测值,不是直接在产线上试。

01

先训练出「参数到结果」的预测模型

用历史数据训练一个模型,输入是第 5 章筛出的关键参数,输出是要优化的质量指标。这一步的质量决定了后面所有结论——模型不准,寻优就是在一张错误的地图上找路。

务必在独立的测试集上确认预测精度,并把精度指标写进报告。精度不足时不要往下走。

用到:数据划分 · 随机森林/梯度提升学习器 · 评分器 · 模型写出
02

定义搜索空间

为每个参数指定下限、上限和步长。这里有一条硬约束:搜索范围不要明显超出历史数据的覆盖范围。模型在没见过的区间里给出的预测没有依据,算法却会当真,常常把最优解指到边界上。

同时要把工艺上的物理约束写进去——设备的温度上限、安全边界、材料的相变点。这些不是算法能知道的。

用到:参数优化循环起始节点(逐参数配置范围与步长,选择搜索策略)
03

在循环体内算出综合评分

循环每迭代一次,会给出一组参数取值。用这组值构造一行输入,送进模型得到预测结果,再按上一节的方法算成一个综合评分,最后把这个评分转成流程变量交给循环结束端。

用到:表格创建/行构造 · 预测器 · 公式节点(归一化与加权) · 表格转流程变量
04

执行并保留全过程

循环结束端会输出每一轮的参数组合与对应评分。不要只取最优那一行。完整的搜索轨迹本身很有价值:它显示了响应面的形状、哪些参数敏感、最优区域是尖峰还是平台。

平台型的最优区域比尖峰型好——意味着参数有波动余量,现场更容易稳定执行。这个判断只能从全过程数据里看出来。

用到:参数优化循环结束节点 · 排序 · 散点图/折线图(评分随迭代变化)
05

交给工程师判断,再做小批量验证

输出的是候选参数组合,不是可以直接下发的工艺文件。工艺工程师要逐条判断合理性:这个组合在物理上说得通吗、设备能稳定维持吗、对上下游工序有没有影响。

通过判断的组合,再安排小批量试产验证。验证数据回流到历史数据集里,下一轮寻优就更准——这是一个持续更新的闭环,正好呼应本章开头那张概率图。

用到:表格输出 · 报表输出 · 数据回写
能力边界

六件它做不到的事

  • 它不能替代试验。寻优是在模型上进行的,模型来自历史数据。结论必须经过实际试产验证才能采用,这一步没有捷径。
  • 它不知道物理约束。安全上限、设备能力、材料特性,都要人工写进搜索范围。算法只会在你给的框里找。
  • 它不能外推。历史数据没覆盖的参数区间,预测没有依据。这是最容易出事的一条,因为算法往往正好把最优解指向边界。
  • 它给的是相关不是因果。模型学到的是历史上参数与结果的共变关系。如果历史上某个参数一直和别的因素同步变化,调整它未必能产生预期效果,参见第 5 章的混杂问题。
  • 它不能同时优化多个目标。如前所述,需要先折成单一评分,而权重怎么定是业务判断不是算法问题。
  • 它不保证找到全局最优。贝叶斯优化比爬山法更不容易陷在局部,但仍然是启发式搜索,迭代次数不足时可能停在次优区域。多跑几次不同起点做对照是简单有效的做法。
常见错误

四个会让寻优结果不可用的做法

用一个没验证过的模型去寻优

直接拿训练集精度当依据,或者干脆不看精度。模型不准时,寻优只是在放大模型的错误,而且结果看起来还挺像回事。

搜索范围开得比历史数据宽

「反正让它多找找」。结果算法给出一个边界上的极端组合,预测效果极好,实际一试完全不是那回事。范围要卡在数据覆盖区间内。

直接按输出结果改工艺文件

跳过工程师判断和小批量验证。一旦出问题,不仅损失大,而且会让整个团队从此不再相信数据方法,代价远超这一次。

权重拍脑袋定

综合评分里的权重随手填 0.5、0.3、0.2。这几个数直接决定了最优解落在哪,应该由成本测算给出,而且要做敏感性检查:权重变一点,最优解会不会跳到完全不同的地方。

先从两个参数的小范围试起

不要一上来就把十个参数全放进搜索空间。挑两个最有把握的关键因子、在历史数据覆盖得最充分的区间里跑一轮,看算法给的结果和工程师的直觉差多远。这一轮的意义不在于找到最优解,在于建立对方法的信任。

iModel 专属客服
在线留言或电话联系
在线留言

留下您的问题和联系方式,我们会在一个工作日内回复。

手机与邮箱至少填一项

4008568196 拨打此号码联系我们

微信扫码咨询

iModel 微信咨询二维码

使用微信扫描上方二维码