资讯详情

强化灰狼优化算法SGWO设计与AutoML落地实践全解析

📅 2026/10/20 14:11:43 | 华诺云谱 👁 阅读
强化灰狼优化算法SGWO设计与AutoML落地实践全解析
1. 项目概述与核心思路拆解2025年一开年我给自己定了一个目标把强化灰狼优化算法SGWO从论文里的一个名字变成我自己能复现、能落地、能讲清楚的东西。这个算法既要跑标准的数值优化任务验证它在不同函数形态上的搜索能力还要落到自动机器学习里解决超参数搜索和特征筛选问题最终整理成一篇能投SEVC这类SCI二区期刊的完整工作。这篇博客就把我整个过程中的设计思路、实验细节、工程落地经验以及踩过的坑一次讲清楚。不管你是想复现算法做学术研究还是想在AutoML项目里换一种搜索策略这篇内容都可以直接参考。1.1 这个项目到底在解决什么问题先拆解一下标题里的三个核心词数值优化任务、自动机器学习、强化灰狼优化算法。数值优化任务指的是优化一个没有显式梯度、不可求导、甚至可能有大量局部最优点的目标函数。典型场景包括复杂的工程参数标定、控制器系数整定以及学术上常见的各种基准测试函数。这类问题的共同特征是函数形式不知道梯度算不出来但你能给定一组参数后得到一个评价分数然后希望在有限预算内找到最优参数。自动机器学习要解决的是另一个层面的问题模型选哪个、超参数怎么定、特征留哪些。它本质上也是一个黑盒优化问题而且评价一次候选配置就要训练一次模型成本比跑基准函数高得多。比如我要优化一棵树的深度、学习率、叶子节点数量、子采样比例每一个参数组合都要实打实地先训练再评估。这两类任务有一个共性都需要在“探索”和“利用”之间找平衡。探索是去没搜过的区域碰运气利用是在已知好区域的附近精细搜索。传统网格搜索等于纯探索肯定是笨办法贝叶斯优化这类基于代理模型的方法有小聪明但在高维、混合参数类型、评估噪声大的场景里容易失效。这也是我选择元启发式算法作为基础的原因——不依赖梯度不假设目标函数形态天然支持并行评估多个候选解。1.2 为什么选择灰狼优化算法来“强化”灰狼优化算法GWO在元启发式领域算是结构简单、参数少、上手快的代表。它模拟灰狼群体的等级制度和捕猎行为用当前种群中最好的三个解来引导其余解更新位置。相比粒子群算法PSO和差分进化DEGWO的控制参数更少不需要额外的变异率、交叉率调来调去适合作为二次开发的基础。但经典GWO有一个绕不开的短板收敛速度前期偏慢后期又容易因为种群多样性不足而陷入局部最优。它的收敛因子a是从2线性减到0的前期探索时间不够后期又缺少跳出局部谷的机制。在多峰函数和维数较高的现实问题上跑几次就能看到种群快速抱团适应度曲线早早变成一条平线。所以这篇标题里的“强化”不是包装词而是实实在在要解决这些缺陷。SGWO的设计思路是保留GWO的框架在初始化、位置更新、变异、精英保留四个环节做增强。选择这条路而不是从头设计新算法的原因也很实际从成熟基线上做改进每个改进点都可以通过消融实验单独验证论文逻辑更完整复现也更可控。做科研不是越新奇越好而是每一步改动都要能解释清楚为什么有效。2. 强化灰狼优化算法的关键改进与原理剖析2.1 原始GWO的机制快速回顾在进入SGWO之前有必要把原始GWO的数学框架理一遍。整个算法模拟四个等级最优个体称为α次优个体称为β第三优个体称为δ其余所有个体统称为ω。每次迭代中ω个体不仅受α引导还会参考β和δ这么做的好处是防止单个最优解把整个种群带偏。位置更新分两步先算距离向量再算位移。距离向量的公式是D |C · Xp(t) − X(t)|其中Xp是引导个体α、β、δ中的某一个X(t)是当前个体C 2·r2是一个随机扰动系数r2是[0,1]之间的随机数。接着位置更新公式为X(t1) Xp(t) − A · D其中A 2a·r1 − ar1同样是随机数而a是从2线性递减到0的收敛因子。关键机制在A。当|A| 1时狼群倾向于大范围移动作用等价于全局探索当|A| 1时个体向引导位置收缩作用等价于局部利用。C则可以理解为随机权重它让搜索路径带有一定的随机波动不至于太机械。理想的GWO应该前期频繁触发|A| 1后期频繁触发|A| 1但线性递减的a很难做到这一点因为前期探索时间被压缩后期又收不住步长。这个问题是SGWO第一个强化点要解决的。2.2 SGWO的四个强化点拆解SGWO的改进不是拍脑袋加的每一个都针对原始GWO的具体缺陷。我在这里把设计逻辑展开讲。强化点一是非线性收敛因子配合自适应惯性权重。先把a从“线性递减”改成“非线性递减”我用的形式是a(t) 2 − 2·(t/T)^2其中t是当前已消耗的评估次数T是总预算。这个曲线让a在前中期保持较高数值把全局探索时间拉长后期a迅速跌向0保证局部精搜。同时引入惯性权重w(t)取值范围从0.9逐渐降到0.4具体是w(t) 0.4 0.5·(1 − t/T)。位置更新变成X(t1) w(t)·X(t) 引导项。惯性权重的意义在于保留个体上一轮的移动趋势避免搜索方向反复横跳这让收敛曲线更平稳也能缓解后期震荡。强化点二是反向学习初始化。标准GWO随机撒点如果初始种群恰好聚在一个角落后续搜索要花很多代才能铺开。反向学习的做法是先随机生成N个个体再为每个个体生成一个对称位置计算公式是X lb ub − X其中lb和ub是搜索下界和上界。这样就得到了2N个候选解算出适应度后选出最好的N个作为初始种群。它对收敛精度的影响非常直接尤其是球函数这类单峰问题一个好的初始分布能让后续优化省掉大量迭代。强化点三是柯西变异扰动。原始GWO到后期所有个体都向α靠拢种群的解之间距离越来越小一旦α落在局部最优整个群体就没机会逃出去。柯西分布的特点是尾部比较厚相比高斯分布更容易产生远离中心的大步长扰动。我对每个个体按概率p_m触发变异每个维度加上柯西随机量变异幅度锚定到搜索空间跨度上具体可以写成X_m X scale · Cauchy(0,1)其中scale通常取搜索空间宽度的0.05到0.1倍。这个机制的用途很明确给种群一个“重启”的机会。但变异概率不能一直恒定我试过固定0.5结果后期收敛不稳定最优解附近反复被破坏。更合理的做法是先大后小比如p_m从0.4线性降到0.1。强化点四是精英保留与停滞重启。每次迭代生成候选位置后不是无脑接受而是把新解和当前个体的适应度做比较只有更优才替换这种精英保留策略保证了种群整体性能不会倒退。另一个细节是检测全局最优连续若干代没有变化时将除α、β、δ以外的部分个体重新初始化到α附近并叠加小扰动让搜索焦点重新聚焦。这四个强化点的关系可以简单概括反向学习初始化解决起步问题非线性收敛因子和惯性权重解决探索利用平衡问题柯西变异解决早熟收敛问题精英保留和停滞重启解决后期收敛停滞问题。它们组合在一起才配叫“强化”而不是“修补”。2.3 SGWO算法流程与代码骨架下面是一个去掉工程细节的SGWO伪代码骨架我习惯用Python风格来表达。这个骨架在标准GWO上逐步添加强化点也是最容易复现的方式。# SGWO 骨架代码Python 风格 def sgwo(objective, dim, lb, ub, N30, max_fes300000, p_m_start0.4, p_m_end0.1): # 1. 反向学习初始化 pop np.random.uniform(lb, ub, (N, dim)) opp_pop lb ub - pop all_pop np.vstack([pop, opp_pop]) all_fit [objective(x) for x in all_pop] idx np.argsort(all_fit)[:N] pop all_pop[idx] fitness [all_fit[i] for i in idx] fes N alpha_pos, alpha_fit pop[0], fitness[0] beta_pos, beta_fit pop[1], fitness[1] delta_pos, delta_fit pop[2], fitness[2] while fes max_fes: t fes / max_fes a 2 - 2 * (t ** 2) w 0.4 0.5 * (1 - t) p_m p_m_start (p_m_end - p_m_start) * t for i in range(N): # 2. 由 alpha/beta/delta 引导的位置更新 new_pos np.zeros(dim) for leader_pos in (alpha_pos, beta_pos, delta_pos): A 2 * a * np.random.rand() - a C 2 * np.random.rand() D np.abs(C * leader_pos - pop[i]) new_pos leader_pos - A * D new_pos / 3 new_pos w * pop[i] new_pos # 3. 柯西变异 if np.random.rand() p_m: new_pos new_pos 0.05 * np.tan( np.pi * (np.random.rand(dim) - 0.5)) # 4. 边界处理与精英替换 new_pos np.clip(new_pos, lb, ub) new_fit objective(new_pos) fes 1 if new_fit fitness[i]: pop[i], fitness[i] new_pos, new_fit # 重新确定三种等级 order np.argsort(fitness) alpha_pos, alpha_fit pop[order[0]], fitness[order[0]] beta_pos, beta_fit pop[order[1]], fitness[order[1]] delta_pos, delta_fit pop[order[2]], fitness[order[2]] # 5. 停滞重启 if no_improve_steps threshold: restart_around_alpha(pop, fitness, lb, ub, N) return alpha_pos, alpha_fit注意这个骨架里我用了NumPy风格的伪代码实际工程实现还需要加随机种子管理和评估计数。我的建议是先用少量测试函数验证每一步改动是否正确再一次性组装完整SGWO。组装前也一定要把原始GWO跑通否则后面出了问题根本分不清是哪个环节引入的。3. 数值优化任务实验设计与复现要点3.1 测试函数库选择与维度设置数值优化实验最忌讳只挑几个好跑的函数证明算法厉害。我的做法是覆盖几种典型函数形态。单峰类函数选球函数Sphere和病态二次函数前者测收敛速度后者测路径追踪能力多峰类函数选栅格型函数、指数多峰函数、周期多峰函数、正弦多峰函数这类函数布满局部最优点主要测算法会不会早熟。不同函数的取值范围不同我统一使用各自的经典推荐区间。维度设置上我跑了30维和100维两组。30维是元启发式文献里最常见的配置便于和其他算法对比100维测试了SGWO在更高维空间的稳定性很多算法在30维表现优秀升到100维直接失效这类结果对判断算法是否值得在AutoML里使用很有参考价值。3.2 公平比较的参数配置框架跨算法比较的公平性主要体现在“评估次数相同”。跑多少代、种群多大都可以变但一次优化的总评估次数必须一致这样所有算法花在目标函数上的预算相等。我的配置是种群规模N30最大评估次数max_fes300000每个算法独立运行30次。对SGWO的额外超参数柯西变异概率从0.4衰减到0.1惯性权重从0.9降到0.4停滞重启阈值为连续500次评估无改善。为什么选30次独立运行因为元启发式算法带有随机性单次结果没有意义。30次可以得到均值和标准差标准差直接反映算法的稳定性。光看均值可能被一次极端好结果带偏标准差过大说明算法对初始种群和随机数种子很敏感。评价指标除了均值和标准差还需要做非参数符号秩检验。元启发式算法的结果通常不满足正态分布直接用t检验不合适。非参数检验不假设数据分布只看两组结果的排名关系显著性水平的p值设置为0.05。判断标准很简单如果SGWO对比原始GWO在多数函数上都显著更优那么改进才具有统计意义。3.3 典型结果表与性能解读下面展示我在自己的实验环境下得到的一组代表性结果数据只做示例参考不同机器、不同随机种子会有波动但相对趋势可以作为判断依据。测试函数原始GWOPSODESGWO球函数2.31E-284.62E-107.18E-184.15E-62病态二次函数25.418.73.121.02E-3栅格型多峰函数1.03E-155.11E-10.00.0指数多峰函数5.20E-148.12E-82.19E-128.88E-16周期多峰函数1.77E-43.45E-38.25E-110.0正弦多峰函数4.28E-21.56E-12.03E-31.85E-2从这张表能看出两个规律。第一SGWO在单峰函数上的收敛精度提升了好几个数量级这个贡献主要来自反向学习初始化和惯性权重配合的精细后期搜索。第二在多峰函数上SGWO靠柯西变异多数情况下能把最优值压到0或者接近理论最优而原始GWO在周期多峰函数上容易停在较小数值附近。必须说明的是这类结果和具体实现紧密相关。我之前见过有人把GWO的边界处理写成直接把越界维度设成边界值结果球函数上表现很好但在多峰函数上反而因为大量个体堆在边界导致多样性骤降。边界处理方式属于实现细节却直接影响结果论文里不写清复现出来就是另一套数据。3.4 消融实验每个强化点是否真的有效消融实验是这类算法研究的灵魂。只展示最终结果不证明每个改进都有用审稿人一定会追问。我把SGWO拆成四个变体去掉反向学习初始化的版本、去掉柯西变异的版本、去掉精英保留的版本、完整SGWO。下面是我在栅格型多峰函数上的示例对比。算法变体均值标准差原始GWO1.03E-158.12E-16SGWO无反向学习5.12E-13.17E-1SGWO无柯西变异1.03E-24.55E-3SGWO无精英保留5.42E-143.11E-14完整SGWO0.00.0去掉反向学习反而让多峰结果出现恶化这是因为初始种群如果不做反向学习在某些随机种子下容易整体落入同一个局部吸引域。去掉柯西变异后算法能到10的负二次方量级但距离全局最优还有距离。完整SGWO的均值标准差都为0说明在30次独立实验中每次都稳定收敛到了理论最优。这个例子说明不是每一个强化点都能单独带来红利但组合起来确实产生了协同效应。3.5 收敛曲线与稳定性分析收敛曲线不要只画一次运行的结果那只是随机抽一条路径。我的做法是画30次独立运行的“中位数曲线”并对纵轴做对数刻度否则精度差异根本看不出来。横轴的单位建议用评估次数而不是代数方便不同种群规模之间对比。稳定性分析看标准差还不够我习惯同时看四分位箱线图。箱子高度越矮说明多次运行之间的波动越小。箱线图还能直观暴露异常值如果某一次运行结果特别差背后往往对应种群陷入了某个不常见的局部区域。分析这类异常值比看均值更有价值因为它指出算法的哪个环节对随机种子敏感。4. SGWO在自动机器学习中的落地实践4.1 为什么AutoML适合用元启发式搜索AutoML的核心难点在于超参数空间是混合类型的有连续参数有整数参数还有类别参数参数之间还存在相互作用。典型的贝叶斯优化方法需要维护一个代理模型在高维混合空间里代理模型的拟合误差会变大而且每轮都要重新拟合代理模型开销不小。元启发式算法完全不需要代理模型每个个体对应一组参数配置种群就是一组待验证的候选方案。SGWO在AutoML里还有一个额外优势种群并行。一次迭代同时评估30个配置如果机器有多核可以把30个训练任务丢到多个进程里并行跑完。贝叶斯优化每轮只能提一个或者少数几个候选并行能力天然受限。对训练时间常以分钟计的模型来说这个差距直接体现在墙钟时间上。4.2 超参数空间编码与约束处理编码是AutoML落地里最容易被低估的环节。连续参数可以直接用实数编码但需要做尺度变换。比如学习率在0.0001到0.1之间直接用线性编码会导致最优区域只占搜索空间的极小比例搜索效率很低。我通常把连续参数变换到对数空间让优化算法在对数刻度上搜索搜索步长对应的是参数倍数的变化而不是绝对差值。整数参数的处理方式是搜索后取整再把越界的部分用夹紧处理。类别参数如果本身有顺序关系比如“树的最大深度”可以映射到整数后用顺序影响如果是无序类别比如不同的分裂准则直接映射成整数容易让算法误以为相邻整数更相似。这种情况下我建议改用二进制位编码每一类别对应一个0/1维度本质上把类别问题转化成特征开关问题。代价是维度增加但避免了误导性的距离关系。特征筛选在SGWO里可以作为额外维度嵌入。可以把每个特征是否保留编码成0到1之间的实数决策时用0.5作为阈值。这么做的好处是SGWO在更新过程中可以理解为“保留倾向”而不是每一次都做离散的翻转搜索更平滑。4.3 适应度评估与预算控制在AutoML里每评估一组超参数就要训练一次模型GPU或CPU时间会快速消耗。我的经验是搜索阶段的适应度评估要刻意降低精度但必须在论文里说清楚。具体手段有三种。第一种是早停法。训练时监控验证集指标连续若干轮不提升就直接终止不训练满额定巡次数。这样既能让次优配置快速出局也能让优秀配置展现出潜力。第二种是子采样。训练数据很大时搜索阶段只取其中一部分样本缩小模型即使性能偏低不同配置之间的相对好坏通常仍然保持。第三种是缓存。由于整数超参数取整后会有大量重复配置出现必须用参数签名做缓存同一个配置只训练一次后续直接按签名读取结果。在并行层面我使用进程池按种群划分任务。需要注意单次评估时间不能太短否则进程通信和调度开销占比过大单次评估时间也不能太长否则主进程的停滞重启和变异策略响应不及时。我通常把单次训练时间控制在5到30秒之间这样既能并行高效又不会让单点故障拖死整体流程。4.4 一个AutoML实例的效果用一个公开的二分类数据集做演示大约两万条样本、18个特征基学习器选择梯度提升树模型。需要优化的参数包括学习率、树深度、叶子节点数量、子采样比例、正则化系数再加上特征筛选掩码总优化维度大约12维。搜索预算是120次训练评估三种方案作对比随机搜索、贝叶斯优化风格搜索、SGWO搜索。搜索策略最优AUC达到最优所需评估数总墙钟时间随机搜索0.82996约18分钟贝叶斯优化风格0.84184约21分钟SGWO0.84778约16分钟这里最值得关注的是“达到最优所需评估数”。SGWO不是每个阶段都领先前30次评估里它还经常落在随机搜索后面因为种群初始化阶段会浪费一部分预算探索。但一旦柯西变异和精英保留机制开始起作用中期之后优势就体现出来了。贝叶斯优化风格在小预算下稳定但在这个混合参数空间里上限不如SGWO。这类结果在论文中呈现时需要加上多次重复实验的区间否则读者会怀疑是碰运气。我上面的数据是示例实际跑的时候我通常重复10次求中位数和四分位区间并在论文里注明随机种子范围。4.5 让AutoML优化结果可复现AutoML可复现性比数值实验更难保证因为训练过程的随机性来自多个层面模型初始化随机性、数据采样随机性、优化算法本身的随机性。我的做法是把全局随机种子固定在目标函数入口处重新设置种子确保每个配置的训练过程在多次重复实验中一致。还要把每次评估的参数配置、适应度、时间戳一次性写入实验日志后续做折线图或分析失败案例都有据可查。另外有一个容易被忽视的细节不要在搜索阶段和最终评估阶段混用数据。搜索阶段用验证集评估适应度最终选出参数后另用测试集评估一次否则优化器会在验证集上过拟合得到虚高结果。这个逻辑和超参数搜索的泛化问题是一回事。5. 常见问题与排查实录5.1 早熟收敛与种群多样性丢失这个现象几乎是所有元启发式算法在使用中都会遇到的头号问题。症状是适应度曲线在前中期快速下降后陷入水平种群内所有个体的坐标几乎重叠。我刚开始调试SGWO时把柯西变异概率固定成0.5结果所有独立运行都收敛到同一个次优点因为每代变异足够强但强到把已经接近最优邻域的个体反复推开。排查思路是这样先看种群坐标的标准差。如果标准差趋近于零说明多样性已经耗尽这时候该触发停滞重启。再看变异概率是否随迭代衰减固定大变异会让算法永远处于“雷区边缘”。我最终的配置是变异概率从0.4线性降到0.1并且只在部分维度上触发变异而不是每个维度都加。这里要特别注意维度级别的变异比个体级别的变异更容易保留已有收敛成果。我的处理手法是当连续500次评估全局最优没有改善将种群中非前三名的个体重新初始化到α附近扰动半径取搜索空间的1%。这样做既保住了已探索到的优质区域又给了算法跳出当前吸引域的机会。5.2 高维情况下效果明显退化SGWO在30维和50维表现稳定升到100维后部分多峰函数的收敛精度出现下降。根本原因是高维空间的“距离集中效应”随着维度增加任意两点之间的距离差异越来越小引导位置和当前个体之间的向量长度变得不敏感位置更新也就失去了方向信息。实用解法是分块优化。对于数值优化任务可以把维度拆成若干子块每个子块用SGWO独立优化一轮再把结果拼接回全量向量。这种方法牺牲了一定的参数关联性但换来的是每个子块内部的搜索效率提升。对于AutoML任务维度上升主要来自类别参数展开成二进制位这时候我更推荐先粗筛再细调用随机搜索筛掉明显无用的特征和参数范围再用SGWO在收缩后的空间里精搜。这比直接让算法挑战20维以上的混合空间可靠得多。5.3 AutoML训练评估太慢AutoML里最痛苦的不是算法不收敛而是等不起。全量数据训练一次可能几分钟一次实验跑300次评估就是十个小时。我踩过最深的坑是没有加超时上限导致优化器把预算集中在那些训练极慢但验证集精度微高的配置上。这类配置在实际部署场景中根本不可用。解决方案是三层限时措施。第一层是单次模型训练设置最大分钟数到点强制终止第二层是搜索总墙钟时间预算比如整个SGWO跑30分钟时间到就返回当前全局最优第三层是早停策略验证集指标连续一定轮数不提升就提前截断。三层措施配合起来评估次数、训练时间、优化质量都能得到约束。并行评估也是一个关键优化点。SGWO种群内个体相互独立非常适合多进程并行。需要留意的是目标函数内部如果自己管理了随机种子并行后的重复实验结果会和串行不同所以必须在每个worker进程内部按worker编号和实验序号生成子种子保证可重复性。5.4 统计结果不显著或复现结果不一致跑完30次实验拿到结果非参数符号秩检验却显示SGWO和原始GWO没有显著差异这种情况在低难度函数上很常见。比如球函数原始GWO已经能收敛到1e-28再改进到1e-62数量的巨大提升在非参数检验中可能并不显著因为两者的结果在很多次运行里都被记录为零或者极小阈值以下。遇到这类情况要么降低函数精度门槛比如把收敛阈值调到1e-8以下才算成功比较成功率要么换更难的旋转或平移版本函数。复现结果不一致则要先怀疑实现细节。不同人写的GWO在边界处理、引导个体选择、随机数生成方式上都有差异。我的建议是写一份只依赖标准库和目标函数实现的项目文档把位置更新公式、边界截断规则、停滞判断条件全部写明。加上固定随机种子至少保证自己在一台机器上可以逐位复现。5.5 问题速查表现象可能原因处理建议收敛曲线中期变平变异概率过大或过小调整p_m衰减范围检查种群坐标标准差高维函数退化距离集中效应分块优化或维度抽样更新AutoML训练时间失控没有超时上限加单次训练限时、总时间预算、早停多次运行结果波动大随机种子影响固定种子增加独立运行次数对比实验不显著函数过于简单提高收敛阈值换高难度测试集6. 实操心得与后续扩展6.1 从零复现SGWO的三个阶段第一阶段是复现标准GWO不要带任何改进先在球函数和栅格型函数上验证框架本身正确。这个阶段通常能暴露边界处理、距离计算公式、种群排序等基础bug。第二阶段是逐一添加强化点每加一个就做一次消融对比。我强烈建议不要一次性加所有改进否则你永远不知道哪个改动真正起到作用。第三个阶段是把SGWO整合进AutoML流程先在小数据集上用较小预算验证再放宽到正式规模。整个过程中我得到的一个核心体会是算法超参数本身也需要调但不要用所有测试函数的综合结果去调。正确做法是留出两个函数做“算法超参数开发集”其余函数做“评估集”避免对测试集产生隐式过拟合。这个方法本质上和机器学习里的训练测试集划分是一样的。6.2 关于学术成果整理的几点建议投SEVC这类SCI二区期刊评审最看重的通常不是算法多炫而是实验是否充分、改进是否有依据、结果是否可复现。数值优化部分要包含最终结果表、消融实验表、收敛曲线、箱线图AutoML部分要有真实任务的对比最好再补一个参数敏感性分析比如不同种群规模N下SGWO的表现变化。公式推导可以简但实验不能少图和表的信息要能支撑每一个结论。论文里的超参数配置必须写成表格公开发布实验代码时把随机种子列表也放进去。很多文献只说“运行30次”却不给随机范围别人复现时只能各种猜。代码整干净文档写清楚这比在摘要里堆漂亮话有用得多。6.3 这个方向还能怎么扩展SGWO目前的版本还有几个值得扩展的方向。第一个是多目标版本把单目标位置更新改成基于多目标占优关系的引导机制用于需要同时优化精度和复杂度的AutoML场景。第二个是约束处理加入罚函数或者约束修复算子解决工程优化里常见的可行域问题。第三个是代理模型辅助在评估特别昂贵的时候用近似模型预筛掉明显不好的候选解只对少数有潜力的配置做真实训练。我个人后期的实践体会是算法改进一定要服务于任务本身。在公开测试函数上把一个结果从1e-20优化到1e-60论文里看着好看但实际业务里用户更关心你的方法能不能在20分钟之内找到比手调更好的模型参数。能让AutoML任务里的目标指标提升三到五个点比在几十个测试函数上把精度提升几个数量级更有说服力。这也是我把数值优化和自动机器学习放在同一个项目里做验证的根本原因。
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。

↑