单因素优选法实战:用最少的试验找到最优参数
做实验设计的朋友十有八九都遇到过这种场景产品某项指标一直上不去翻来覆去查了一遍大家怀疑是某个参数没调好。温度、时间、浓度、压力、转速、pH每个看起来都有嫌疑可真要做试验一个参数从低到高挨个试试样堆了一桌子还是说不清最佳点到底在哪。这一讲要聊的单因素优选法就是专门治这种病的。它不需要复杂的统计软件不需要懂多深的理论从一个初始区间出发用很少的试验次数就能把最佳参数定位到足够准。不管你是实验室里做配方还是在车间调工艺这套方法都能直接拿来用。我把这套方法拆开来讲从原理到操作从选型到避坑尽量让每个看完的人都能直接上手。1. 这一讲要解决的问题怎样用最少的试验找到最优参数1.1 大量实际问题都落在“单因素”上很多人一听到“实验设计”第一反应是正交试验、响应面、DOE那一套。但在实际生产里有相当大比例的问题一开始根本够不到那么复杂就是“其他条件都固定只想要一个参数的最佳值”。比如化工厂的某个反应原料配比、反应压力都定好了就是反应温度怎么调都差一点收率又比如材料实验室里烧结保温时间到底是2小时还是3小时效果最好再比如食品工艺中杀菌温度每提高几度对口感影响多大。这些场景的共同特征是影响因素可以暂时忽略或者固定关键变量只有一个目标是在这个变量的可行范围内找到一个最优点。单因素优选法就是回答这个问题的一套系统打法。它不假设你有大量历史数据也不要求你对整个工艺过程建立数学模型只要你能够做一个试验、得到一个结果并且这个结果可以比较好坏方法就能跑起来。任何领域只要满足“单因素、可比较、结果有峰或谷”都可以套用。这里要重点提醒一句单因素优选法解决的是“单峰”问题也就是在考察区间内结果先升后降、或先降后升的情况。如果结果在区间内起伏多次用这个方法会锁在某个局部最优值上这个在第4部分是重点讨论的坑。1.2 “多试几次”为什么不行优选法到底优在哪刚接触这个问题的工程师最自然的做法是爬山法从某个估计值开始往一个方向加一点看看结果变好还是变坏变好就继续加变坏就回头。这个思路没错效率却很糟糕。比如你要找一个温度最优值假设从70℃开始每次加5℃结果越加越好加到95℃时变差了于是回到90℃附近细调。这种逐步逼近的方式看似每次都在进步实际上有两个问题第一初始方向和步长靠运气如果方向选反了前面几步全白费第二每步只利用了一次试验的信息试验次数多而且步长小了收敛太慢步长大了又容易跳过峰值。单因素优选法的核心思路完全不同它不试图“一步步爬上去”而是通过计算决定试点位置使得每一轮试验结束后无论结果偏向哪一侧都能确认去掉一段不含最优点或可能性极低的区间而且保留下来的区间里已经有一个做了试验的点下一轮可以继续参与比较。这样做的直接好处是每一次试验信息量都很大区间以固定比例收缩试验次数大幅减少。同样是40℃宽度的初始区间用0.618法做到±2℃以内通常只需要6到8次试验如果用逐点爬山法顺利的话也要十几次到二十次不顺利可能更多。这个思想往后延伸就是正交试验、响应面这些多因素方法的底层逻辑。所以单因素优选法虽然名字听起来朴素其实是实验设计里性价比最高、也最适合先学的一块内容。2. 0.618法最经典的单因素优选工具2.1 为什么偏偏是0.6180.618法也叫黄金分割法是单因素优选法里最常用的一种。很多人听过黄金分割但不清楚它和试验设计有什么关系。这里把原理讲透。设想一个参数区间[a,b]长度记为L。你在区间里布置两个试点一个在离左端点较近的位置一个在较远的位置然后比较两个结果去掉较差一侧的区间。问题是这两个试点放在哪里最合适如果放在等分点上比如0.333和0.667的位置试验后无论是左边还是右边被舍去留下来的新区间里原本那个“好点”并不位于新区间的合理试验位置上下一步还得重新算两个试点信息利用得不够充分。而0.618这个比例有一个特殊性质。假设区间长度L试点分别放在0.618L和0.382L处。比较后如果0.618L位置的结果好就舍掉左端到0.382L这一段保留区间长度变成0.618L。此时你会发现留在新区间里的那个好点距离新区间左端点正好是0.236L也就是新区间长度的0.382倍。新点只要取它的对称点也就是新区间左端点加上0.618倍长度就又是标准的0.618位置。反过来如果0.382L位置的好同样成立。换句话说0.618法的奇妙之处在于无论哪一侧被保留旧试点都自动落在新区间的优选位置上。你永远只需要再补一个新试点就能继续下一轮比较。每一次新区间长度都是原来的0.618倍试验次数和区间收缩速度之间的关系是确定的。如果用一句话解释给同事听0.618是唯一能让“旧试点不浪费”的分割比例。2.2 一个可复现的温度优化案例理论说了半天上个实际例子一步一步算给你看。假设某涂料固化工艺其他条件不变初始判断固化温度合适范围在40℃到80℃之间。目标是让涂层硬度评分最高。用0.618法操作。第1轮区间[a,b] [40,80]区间长度L 40试点1x1 40 0.618×(80-40) 64.7℃试点2x2 40 0.382×(80-40) 55.3℃实际试验后64.7℃的硬度评分为8255.3℃的评分只有71。64.7℃更好。按照规则舍掉[40,55.3)这一段保留区间变成[55.3,80]。第2轮区间[55.3,80]里已经有64.7℃这个好点了新试点取好点关于区间中点的对称点x3 55.3 80 - 64.7 70.6℃试验后70.6℃的评分为86比64.7℃的82更好。舍掉[55.3,64.7)保留[64.7,80]。第3轮x4 64.7 80 - 70.6 74.1℃74.1℃评分84低于70.6℃的86。舍掉(74.1,80]保留[64.7,74.1]。第4轮x5 64.7 74.1 - 70.6 68.2℃68.2℃评分79不如70.6℃。舍掉[64.7,68.2)保留[68.2,74.1]。第5轮x6 68.2 74.1 - 70.6 71.7℃71.7℃评分85还是不如70.6℃的86。舍掉(71.7,74.1]保留[68.2,71.7]。到这一步区间宽度已经缩到3.5℃最优值大概就在70.6℃附近。如果工艺允许误差是±2℃完全可以收手。如果你还想更精确下一步试点就是x7 68.2 71.7 - 70.6 69.3℃再比较一次区间会更小。整个过程只做了6次正式试验就把一个40℃宽的范围缩到了3.5℃。这个效率是逐点硬试很难比的。2.3 做几次试验够用精度估算与方法停判标准0.618法区间收缩有明确的数学关系。经过n个试点后保留区间的宽度大约是初始区间的0.618^(n-1)倍。初始宽度40℃的情况下各轮之后区间宽度如下试验轮次保留区间宽度约相对初始区间比例第1轮24.7℃0.618第2轮15.3℃0.382第3轮9.4℃0.236第4轮5.8℃0.146第5轮3.6℃0.090第6轮2.2℃0.056第7轮1.4℃0.034这个表可以当速查表用。你只需要知道初始区间宽度就能提前估算大概做几次试验能达到目标精度。实际停止条件有两个保留区间宽度已经小于工艺允许误差。比如你只需要温度落在±2℃以内第5轮就可以停。相邻两个试点的间距已经小到小于测量系统能分辨的水平。比如试验误差本来就±1℃你把区间缩到0.5℃宽就没有意义了因为结果差异会被噪声淹没。记住一个原则优选法不是要把区间缩到无限小而是缩到“工程上够用”就可以了。多做的几次试验往往只换来小数点后的精度对实际生产毫无帮助。3. 根据不同现场条件还有4种常用方法0.618法虽然经典但并不是所有场景都用它。现场条件有时候会限制试验方式比如结果只能取整数比如试验次数必须提前定比如需要同时做一批试验。这些时候有其他更合适的变体。3.1 分数法试验次数已经限定的时候分数法也叫斐波那契法。它的思路和0.618法几乎一样只是把0.618换成斐波那契数列相邻两项的比值。斐波那契数列前几项是1、1、2、3、5、8、13、21……相邻两项的比值5/80.6258/13≈0.615已经非常接近0.618。分数法的逻辑是如果事先确定总共只能做n次试验就利用斐波那契数列把区间等分按等比位置布点这样能在给定的试验次数内充分利用信息。举个例子还是那个40℃到80℃的温度问题假设试验次数严格限定为最多6次。斐波那契数列第7项是13就把区间按13等份来分每份约3.08℃。第一个试点放在8/13的位置x1 40 8×3.08 ≈ 64.6℃x2 40 5×3.08 ≈ 55.4℃64.6℃结果好舍掉[40,55.4)保留[55.4,80]新试点取对称点x3 55.4 80 - 64.6 70.8℃之后的过程和0.618法完全一样区别在于试点位置全部对应到13等份的格点上最后6次试验结束时区间会缩到一个基本格左右。分数法适合两类情况一类是参数只能取整数等级比如设备只能设定整数值或者原料包装规格决定了只能按固定档位添加另一类是试验成本高必须提前确定总次数好安排预算和机时。3.2 对分法找“临界点”比找“峰值”更合适对分法的使用场景和0.618法不太一样。0.618法找的是“中间高两边低”的峰值对分法则适合结果有“方向性”的情况比如合格/不合格、偏大/偏小、达标/不达标。你要找的是两个状态之间的临界点而不是峰值。比如某涂料在固定温度下保温时间越长冲击强度越高但生产节拍要求尽可能缩短时间。现在需要找“刚好能达到强度标准”的最短保温时间。假设经验范围是0到4小时对分法直接取中点2小时做试验强度达标。说明可以有更短时间舍掉[2,4]保留[0,2]。再取中点1小时做试验强度不达标说明最短时间在1到2小时之间舍掉[0,1]保留[1,2]。再取1.5小时达标舍掉[1.5,2]保留[1,1.5]。再取1.25小时不达标舍掉[1,1.25]保留[1.25,1.5]。每做一次试验区间直接减半收敛速度甚至比0.618法还快。但它有个很硬的前提试验结果必须能明确判断“方向”。如果你的指标是连续变化的不能简单地说“更好或更差”对分法就不适用。3.3 抛物线法在最优附近做最后一步精修0.618法和分数法都在做区间搜索但到了最后阶段你可能已经在窄区间里了想要更精确地定位峰值。这时候抛物线法是个高效补充。思路不复杂当你知道三个点其中中间点的结果最好两边次之可以拿这三个点拟合一条二次抛物线抛物线的顶点位置就是下一次试验的预测最优点。试验验证后再取新的三个点继续拟合收敛非常快。如果三个试验点等间距设中间点为x2间距为d三个点的响应值分别是y1、y2、y3那么预估顶点位置是x0 x2 d × (y1 - y3) / [2 × (y1 - 2y2 y3)]举个例子已经确定最优温度在88℃到92℃之间取了88、90、92三个点88℃时结果是15290℃时结果是15892℃时结果是155代入公式x0 90 2 × (152 - 155) / [2 × (152 - 2×158 155)] 90 (-6) / (-18) 90.33℃预测最优点在90.3℃附近补做一个90.3℃的试验验证一下如果结果确实更好就把它作为新的中间点继续精修。抛物线法的前提是试验数据比较稳定如果重复性差三个点的微小扰动会让拟合出的抛物线乱跳反而是帮倒忙。3.4 分批试验法能同时做多组试验时的省时打法前面几种方法都假设一次只能做一个试验。但现实中有很多情况可以“一批做多个”比如同一个烘箱里放多个不同温度的试样或者多台平行反应釜同时运行。这时候分批试验法能发挥时间和设备优势。打法很简单。把初始区间均匀分成若干个点一批同时做。比如温度范围100℃到200℃一批做5个点120、140、160、180、200。假设160℃结果最好下一批就在140℃到180℃之间再细分取145、152、160、168、175五个点160是上一批的好点可以不重复做但为了验证偏差也可以带上。如果168℃最好第三批就在160到175之间继续细分。分批试验法的优势是省时间代价是单批占用的设备、试样、耗材多。如果试验成本不高、设备够用它甚至比0.618法更快。如果单次试验成本很高那还是老老实实一次做一个点更划算。3.5 五选一方法选择决策表这五种方法各有各的镜头感实际选择不难关键是先回答三个问题能不能同时做多组结果能不能判断方向试验次数是不是已经定死方法适用场景单轮试验数结果要求收敛速度0.618法连续参数、找峰值1点可比较好坏即可每次缩至0.618分数法限定总次数、整数档位1点可比较好坏即可接近0.618次数可控对分法找临界点、结果有方向1点能判断达标/不达标每次缩至0.5抛物线法已确定最优小区间1点数据重复性好收敛快怕噪声分批试验法可并行做多组试验多点可比较好坏即可视批内点数而定如果你实在拿不准默认用0.618法绝大多数连续单峰问题都能解决。4. 实操中踩过的坑和排查思路方法看着简单真到现场做起来还是会遇到很多问题。下面几条是我在实际项目和车间试验里反复踩过的坑值得细看。4.1 初始区间定得不对再好用的方法也白搭0.618法有个隐含前提真正的最优点必须在初始区间内部。如果最优点落在区间外面整个搜索过程会一直往边界方向收缩最后停在边界附近得到一个完全错误的结论。这个问题在实践中出现的频率非常高。很多人的习惯是凭经验定一个“感觉合理”的范围比如温度从60℃到80℃结果最优温度其实在85℃以上那无论怎么优选结果都在80℃那里“撞墙”。我的建议是正式试验前先做几个粗试预试点把区间边界往两边各拓宽一些。宁宽勿窄是单因素优选法的第一原则。初始区间宽一点也不怕方法的收缩效率足够高顶多多做一两次试验。但一旦区间定窄了整个工作的基础就错了。4.2 试验误差大结果会“指错方向”这个坑比较隐蔽。0.618法每一次决策都是比较两个试验点结果的好坏如果试验重复性很差或者测量误差远大于不同条件下的真实差异那么“好点”很可能选错方向判断错了后面的区间整个就跑偏了。比如涂层硬度本身波动就有±3分而你比较的两个点真实差异只有2分一次试验的结果差距可能完全来自随机波动。这时候优选法就会带你往错误的方向走。应对办法是在正式开跑之前先拿同一个条件重复做3次估算一下试验波动范围。如果波动范围和分析结果差异不在一个量级先解决测量问题或工艺稳定性。关键节点的每次试验如果条件允许重复做两次取均值再比较会更稳妥。4.3 结果不满足单峰假设时怎么办单因素优选法建立在一元单峰函数假设上。但实际工艺里结果可能不是简单的单峰。最典型的例子是催化剂用量用量太少反应不完全用量太多可能引发副反应结果先升后降这是单峰没问题。但有些体系存在多个峰比如不同温度下反应机理不一样低温区有一个局部最优高温区又有一个局部最优。这种情况下0.618法会快速锁住其中一个峰而且你根本不知道另一个峰存在。我的习惯是在正式优选之前先用分批试验法把整个区间粗扫一遍哪怕只做5个点也能大致看出是否有多个峰值。如果发现结果波动剧烈、多个峰就先把研究范围缩小到其中一个局部区间内再套用单因素方法。或者直接升级到多因素实验设计这个问题后面讲正交试验时再展开。4.4 单因素选优只是第一步别忘了多因素交互最后这个坑不是操作层面的是方法论层面的。单因素优选法的适用前提是“其他条件固定”。如果多个因素之间存在交互作用——比如温度的最佳值会随着保温时间变化那么你在固定时间下找到的“最优温度”换了一个时间条件就不成立了。所以单因素优选法更适合用来做前期摸底和单因子快速排查而不是所有问题的终点。当你发现“单独优化每个参数、合起来效果却不好”的时候大概率是因素交互在作怪这时候转正交试验或者响应面法才是正路。但在转过去之前单因素优选法帮你缩小了每个参数的搜索范围这一步的节省是实实在在的。5. 一套可以直接拿去的实操模板最后把整套方法整理成一个模板照着填就能用。5.1 0.618法记录表模板现场做试验信息一定要落到纸面上不要凭记忆。记录表可以很简单但每一轮的决策链要完整轮次区间下限区间上限试点1结果1试点2结果2好点舍去区间新区间1408064.78255.37164.7[40,55.3)[55.3,80]255.38070.68664.78270.6[55.3,64.7)[64.7,80]364.78074.18470.68670.6(74.1,80][64.7,74.1]464.774.168.27970.68670.6[64.7,68.2)[68.2,74.1]568.274.171.78570.68670.6(71.7,74.1][68.2,71.7]注意第二轮的试点1、试点2不是两个都从零开始做新试验而是新试点和上一轮的旧好点一起比较。这张表最关键的列是“好点”和“舍去区间”只要这两列判断对了整个流程就不会乱。如果你习惯用Excel两行公式就够了初始两个试点A10.618*(B1-A1) 和 A10.382*(B1-A1)后续新试点A1B1-C1A1是区间下限B1是区间上限C1是当前好点5.2 试验方案设计的五个关键动作做任何一个单因素优选项目按下面五步走基本不会出错第一步确定目标指标和试验结果的测量方法搞清楚这个指标是越大越好、越小越好还是接近某个目标值最好。第二步通过预试验或文献资料确定初始区间原则是宁宽勿窄并且顺手粗扫一遍确认大方向上是单峰。第三步根据现场条件选择方法。能并行做多组就选分批试验法结果只能判断方向就选对分法必须限定总次数就选分数法普通连续参数就用0.618法。第四步按记录表逐轮执行每轮试验后先确认“舍去区间”再算下一轮试点不要跳步。第五步提前定好停止条件比如区间宽度小于工艺允许误差或者相邻试点间距小于测量分辨率。达到条件就果断收手不要为了“算得更准”而无限做下去。这套流程熟练以后一个单因素参数从摸底到定位最优通常两三天就能完成而且每一条决策都有明确的理由不是拍脑袋试出来的。我自己用这套方法最深的体会是单因素优选法看起来只是几个公式但它真正改变的是做实验的思维方式从“把每个可能值都试一遍”变成“让每一次试验都尽量提供最大信息量”。这个思路后来学正交试验、响应面时也一样受用。如果你正准备做参数优化我建议别一上来就打开正交表先用单因素优选法把最关键的参数摸一遍往往能省下后面一大半精力。
上一篇/下一篇内容由系统自动关联
返回资讯列表 →