try ai
科普
编辑
分享
反馈
  • 黄金分割搜索

黄金分割搜索

SciencePedia玻尔百科
核心要点
  • 黄金分割搜索是一种高效的算法,它通过利用黄金分割比策略性地放置测试点来寻找单峰函数的极值,从而允许在每一步中重用一个点。
  • 作为一种无导数方法,当函数的导数未知、不可用或计算成本过高时,它对于优化“黑箱”函数具有非凡的价值。
  • 该算法具有可预测且有保证的线性收敛率,每次迭代将搜索区间的长度减少约 0.618 的因子。
  • 它在更大型的优化算法中充当基础的线搜索工具,并在化学、经济学和机器学习等领域中广泛应用于调整模型超参数。

引言

在广阔的科学与工程世界里,对“最佳”的追求——无论是最低的能量状态、最高的效率,还是最优的设计参数——是一个永恒且共通的主题。但是,当底层系统是一个“黑箱”,其内部运作机制被隐藏,其属性只能通过逐点探测来了解时,我们如何找到这个最优点呢?这种无法获取导数的一维优化挑战,需要一种既鲁棒又高效的策略。黄金分割搜索为这一问题提供了极其优雅的解决方案。

本文探讨了这一基础优化算法的力量与美感。我们将首先揭示其核心运作原理,以及使其如此高效的、涉及黄金分割比的巧妙数学技巧。然后,我们将跨越不同学科领域,见证其实际影响。以下各节将引导您了解:

  • ​​原理与机制:​​ 深入了解黄金分割搜索如何系统地缩小最优解的搜索范围、其可预测的收敛率,以及它在更复杂算法中作为线搜索工具的关键作用。

  • ​​应用与跨学科联系:​​ 探索这一单一算法如何应用于解决真实世界的问题,从确定化学中的分子结构、优化工程中的材料,到模拟生物学中的进化策略和调整人工智能。

原理与机制

想象你是一名登山者,但有一个奇特的障碍。你发现自己身处一座大山的山坡上,四周被浓密得无法穿透的雾气笼罩。你的目标很简单:找到你当前所在山峰的最高点。你看不到山顶,甚至无法判断脚下地面的陡峭程度。你所能做的就是走到一个特定位置,检查你的高度计,从而知道你的海拔。你会如何行动?这正是优化一个​​“黑箱”函数​​所面临的基本挑战——一个内部工作原理被隐藏的函数,我们只能查询它在不同点的值,而无法得知其导数或整体形状。你可能会尝试随机闲逛,但这效率低下。你或许会尝试向左走一步,再向右走一步,看看哪边更高,然后将你的大本营移向那个方向。这是一个不错的开始,但仍显得有些笨拙。我们能否设计出一种策略,它不仅保证能成功,而且效率惊人且优雅?

点石成金:用黄金分割比重用每一步

​​黄金分割搜索​​的天才之处在于,它采用一种巧妙的方式来放置你的两个测试点,使得无论结果如何,你都可以在下一步中重用其中一个点。这节省了宝贵的精力——在计算世界里,这意味着节省了昂贵的函数求值次数。

假设你当前搜索峰值的范围被限制在地图上的一个水平区间内,从点 aaa 到点 bbb。算法告诉你,在两个内部点评估海拔高度,我们称之为 xLx_LxL​(左侧)和 xRx_RxR​(右侧)。现在,假设你发现 xRx_RxR​ 处的海拔高于 xLx_LxL​ 处。因为你知道这座山峰是“单峰的”(即在该区域只有一个顶峰),你可以自信地舍弃 xLx_LxL​ 左侧的整个部分。你的新的、更小的搜索区间就变成了 [xL,b][x_L, b][xL​,b]。

奇迹就在这里。我们能否如此巧妙地放置 xLx_LxL​ 和 xRx_RxR​,使得旧的点 xRx_RxR​ 在新的区间 [xL,b][x_L, b][xL​,b] 中的相对位置与其中一个新测试点应该在的位置完全相同?答案是肯定的,秘密就在于​​黄金分割比​​,ϕ=1+52≈1.618\phi = \frac{1+\sqrt{5}}{2} \approx 1.618ϕ=21+5​​≈1.618。

设总区间长度为 L=b−aL = b-aL=b−a。算法将两个点放置在:

xL=b−Lϕ和xR=a+Lϕx_L = b - \frac{L}{\phi} \quad \text{和} \quad x_R = a + \frac{L}{\phi}xL​=b−ϕL​和xR​=a+ϕL​

让我们看看,如果我们发现 f(xR)>f(xL)f(x_R) > f(x_L)f(xR​)>f(xL​),且我们的新区间变为 [a′,b′]=[xL,b][a', b'] = [x_L, b][a′,b′]=[xL​,b] 时会发生什么。这个新区间的长度是 L′=b−xL=L/ϕL' = b - x_L = L/\phiL′=b−xL​=L/ϕ。现在,我们应该将新的右侧点 xR′x'_RxR′​ 放在哪里?根据规则,它应该在 xR′=a′+L′/ϕ=xL+(L/ϕ)/ϕ=xL+L/ϕ2x'_R = a' + L'/\phi = x_L + (L/\phi)/\phi = x_L + L/\phi^2xR′​=a′+L′/ϕ=xL​+(L/ϕ)/ϕ=xL​+L/ϕ2。

但是等等!让我们看看我们的旧点 xRx_RxR​ 在哪里。我们知道 xR=a+L/ϕx_R = a + L/\phixR​=a+L/ϕ。可以证明,旧点 xRx_RxR​ 的位置恰好是新区间 [xL,b][x_L, b][xL​,b] 所需的左侧测试点。对称地,如果新区间是 [a,xR][a, x_R][a,xR​],那么旧点 xLx_LxL​ 会恰好成为新的右侧测试点。这一精巧的特性源于黄金分割比的代数性质(即 1/ϕ2+1/ϕ=11/\phi^2 + 1/\phi = 11/ϕ2+1/ϕ=1)。关键在于几何结构得以保持,我们旧的点中有一个可以被回收利用。在每个新步骤中,只需要进行一次新的海拔测量。这是一种惊人的数学上的精妙之举。

这个过程使我们能够系统地逼近最大值。例如,在一个工程问题中,我们可能正在调整参数 α\alphaα 以最大化一个新设备的效率 η(α)\eta(\alpha)η(α)。通过应用这种方法,我们只需对给出 η\etaη 值的复杂模拟进行几次评估,就能逐步缩小最优 α\alphaα 值的不确定区域。

一条通往精度的可预测之路

黄金分割搜索最强大的特性之一是其可预测性。在每一步中,包含最大值的区间长度都会减少一个固定的因子 ϕ−1≈0.618\phi-1 \approx 0.618ϕ−1≈0.618。这是一个有保证的收敛率。无论函数多么复杂或奇特,只要它是单峰的,这个结论就成立。浓雾可能隐藏着锯齿状的悬崖或平缓的斜坡,但我们缩小搜索区域的方法同样有效。

这意味着我们可以预先知道需要多少步才能将最大值找到任何期望的精度水平。如果我们从一个长度为 L0L_0L0​ 的区间开始,并希望在最终容差为 ϵ\epsilonϵ 的范围内找到最大值,所需的迭代次数 nnn 大致由 (ϕ−1)nL0≈ϵ(\phi-1)^n L_0 \approx \epsilon(ϕ−1)nL0​≈ϵ 给出。

这种可预测性不仅仅是理论上的奇闻;它是在自动化系统中使用该方法的基石。想象一个实验室里的自主机器人,正试图为一种新材料找到最佳的合成条件。机器人遵循黄金分割搜索协议。该算法如此鲁棒,其进展如此确定,以至于我们可以推导出任意步数后搜索边界的闭式表达式,从而能够用数学的确定性来分析和预测发现过程。

科学家工具箱中的利器:线搜索及其成本

到目前为止,我们一直将搜索本身视为主体事件。但在科学和工程领域,黄金分割搜索常常在更大型的优化算法中扮演至关重要的辅助角色。考虑在多维空间中寻找函数最小值的问题——这不仅仅是找到一维山脉的顶峰,而是找到一个广阔、多维山谷的谷底。

一种流行的方法是​​梯度下降​​,我们计算最陡峭的下坡方向(负梯度)并迈出一步。但这引出了一个关键问题:我们应该迈出多大的一步?步子太小会显得畏缩且缓慢;步子太大则可能完全越过谷底。沿着给定方向寻找最佳步长的问题被称为​​线搜索​​。由于这是一个一维优化问题,黄金分割搜索是完成这项工作的完美候选者。

但它总是正确的工具吗?选择取决于信息的“成本”。在一个计算物理问题中,寻找一个粒子的平衡位置可能意味着最小化其势能 U(x)U(x)U(x)。我们可以对 U(x)U(x)U(x) 使用黄金分割搜索。或者,我们知道在平衡点,力 F(x)=−dU/dxF(x) = -dU/dxF(x)=−dU/dx 为零。因此我们可以使用像 Brent 方法这样的不同方法来寻找 F(x)F(x)F(x) 的根。哪一个更好?

这取决于计算成本。评估能量 U(x)U(x)U(x) 可能很便宜,而计算力 F(x)F(x)F(x)(导数)可能非常昂贵。假设对能量进行黄金分割搜索需要 52 次廉价的评估,而对力进行更复杂的求根方法只需要 11 次评估。如果每次力计算的成本比能量计算高 5.5 倍,那么“更快”的方法实际上最终成本更高。这种成本效益分析正是像黄金分割搜索这样的​​无导数​​方法如此重要的原因;当导数不可用或计算成本过高时,它们是首选方案。

即便如此,沿着搜索方向找到精确的最小值就是最佳策略吗?在极其复杂的模拟中,例如用于设计桥梁或飞机的有限元法(FEM),线搜索中的单次函数评估可能极其昂贵,需要重新计算整个结构的状态。在这种情况下,用许多黄金分割步骤执行“精确”线搜索将慢得令人望而却步。通常更好的做法是使用​​非精确线搜索​​——一种仅用一两次函数评估找到一个“足够好”的步长就继续前进的策略。因此,黄金分割搜索的美妙之处不仅在于其存在本身,更在于理解在广阔的数值优化领域中,何时何地精确地部署它。

超越局部峰顶:更深层的结构与全局探索

就在你以为已经掌握了该算法时,大自然揭示了另一层美丽的结构。随着区间大小 hhh 的缩小,黄金分割搜索生成的一系列最大值估计值 x(h)x(h)x(h),并不仅仅是漫无目的地走向真值 x⋆x^\starx⋆。对于一个光滑函数,它以一种高度有组织的方式逼近真值,其误差与区间大小成正比:x(h)≈x⋆+Chx(h) \approx x^\star + C hx(h)≈x⋆+Ch。

这种可预测的误差结构是一份礼物!如果我们从搜索中取最后两个估计值 x(h1)x(h_1)x(h1​) 和 x(h2)x(h_2)x(h2​),我们就有了两个关于两个未知数(x⋆x^\starx⋆ 和常数 CCC)的方程。我们可以解这个方程组来消除误差项,并产生一个外推估计值 x^\widehat{x}x,这个值通常比任何一个单独的估计值都精确得多。这种技术是​​理查森外推法​​的一种形式,就像注意到测量中存在系统性漂移并对其进行校正,从而直接跨越到更优答案一样。

最后,如果地貌不是一个单一的山峰,而是由许多山峰和山谷组成的整个山脉呢?我们的方法,根据其设计,会找到它开始时所在的任何局部小山的顶部。这是否意味着它对于寻找整个山脉的最高峰毫无用处?完全不是。在先进的科学应用中,比如寻找化学反应最有利的路径,“能量景观”可能有很多局部最优解。科学家们可能首先进行一次粗略的全局扫描,以识别所有有希望的区域。然后,他们会部署像黄金分割搜索这样的精确工具,在每个候选区域内精细地找到确切的最大值。真正的全局最优解就是这些局部优化结果中的最佳者。

从一个在大雾中寻找山峰的简单直观想法开始,黄金分割搜索展开了一个关于数学优雅、计算效率和深远效用的故事。它证明了一个源于几何效率问题的简单原理,如何能成为贯穿整个科学与工程领域的、在探索发现之路上不可或缺的工具。

应用与跨学科联系

我们花了一些时间来理解黄金分割搜索的机制,这个极其简单而优雅的程序,可以在没有微积分帮助的情况下找到单峰曲线的最高(或最低)点。乍一看,它似乎只是一个巧妙的数学技巧,一个聪明但小众的工具。但事实远比这更深刻和令人兴奋。这个简单的想法,这种“智能猜测的艺术”,原来是一条金线,贯穿于各种各样令人惊叹的科学和工程学科。它证明了自然界——以及我们自己——必须回答的问题类型中存在着深度的统一性。世界充满了优化问题,而黄金分割搜索是我们解决这些问题的最基本工具之一。

现在,让我们踏上一段跨越科学领域的旅程,看看这个原理在实践中的应用。我们将看到同一个逻辑过程如何帮助我们理解分子的结构,设计下一代材料,模拟化学变化的动态过程,解释进化的逻辑,做出最优的经济决策,甚至调整正在重塑我们世界的人工智能。

自然的基石:分子与材料

物理世界的核心,是一个关于权衡取舍的故事。力在拉扯与推挤,能量被最小化,稳定性被寻求。正是在这里,在化学和材料科学的领域,我们简单的搜索算法找到了它一些最基本的应用。

想象两个分子漂浮在太空中。当它们相距很远时,它们会感受到一种微弱的长程吸引力,就像微弱的引力。随着它们越来越近,这种吸引力变得更强。但如果你试图将它们推得过于靠近,它们的电子云开始重叠,一股强大的排斥力会接管一切,阻止它们合并。在这两者之间,存在一个完美的距离——一个“最佳点”——在那里,吸引力和排斥力完美平衡。这一点对应于势能的最小值。这不仅仅是一个理论上的奇观;它是决定液体、固体以及我们周围所有物质结构的平衡距离。我们如何找到这个最佳点?如果我们能写出一个关于距离 ddd 的总能量函数 E(d)E(d)E(d),我们就得到了一个一维优化问题。通过计算不同距离下的能量,我们可以使用黄金分割搜索来快速锁定最小值,从而预测分子世界的几何结构。

这种平衡相互竞争效应的原理,从简单的分子对延伸到复杂、高性能材料的设计。考虑制造一种热电设备的挑战,这是一种能将废热直接转化为有用电能的非凡材料。其效率由一个品质因数 ZTZTZT 来衡量。要获得高的 ZTZTZT 值,你需要一种具有高电导率(让电子容易流动)和低热导率(以维持温差)的材料。不幸的是,这两个属性往往是耦合的——对一个有利的往往对另一个不利。材料的性能可以通过改变电荷载流子(电子或空穴)的浓度来调整。载流子太少,电导率就差;太多,热导率又会变得太高,而另一个关键属性——塞贝克系数则会下降。存在一个最优的浓度,一个完美的平衡点,可以使品质因数 ZTZTZT 最大化。通过模拟 ZTZTZT 如何随载流子浓度变化,我们创建了一个一维优化问题。科学家随后可以使用像黄金分割搜索这样的搜索算法,找到理论上的性能峰值,并指导合成用于能量收集的、更高效的新材料。

对极值的寻找同样可以揭示变化的本质。化学反应并非瞬时事件;它们沿着一条从反应物到产物的路径进行,这条路径常常需要克服一个能垒。过渡态理论告诉我们,反应的速率由这条路径上的“瓶颈”——即过渡态——的性质决定。对于某些反应,特别是那些没有大能垒的反应,这个瓶颈并非一个固定的点。它的位置实际上会随温度变化!在低温下,瓶颈可能位于反应坐标的很远位置,但随着温度升高,熵效应——即系统探索更多构型的趋势——变得更加重要,瓶颈随之收紧,向内移动。变分过渡态理论(VTST)提供了一个框架,用于寻找这个“最紧”瓶颈的位置,它对应于一个有效自由能剖面的最大值。通过应用我们的搜索方法来找到这个最大值,我们可以计算出更准确的反应速率,这是预测化学的基石。请注意这其中美妙的对称性:用来寻找稳定结构能量最小值的相同逻辑,可以被用来寻找决定其转化速率的自由能最大值。

生命与决策的逻辑

优化原理并不仅限于无生命的原子与力的世界。它本身就是生命的基本逻辑,由亿万年的进化塑造而成,并在我们每天做出的有意识的决定中回响。

考虑一个经济学中的经典问题:你如何分配你的资源?想象你现在有一定的收入。你面临一个选择:是现在就消费以获得即时满足,还是投资于教育,这将增加你未来的收入并允许将来有更多的消费。现在花光一切是短视的;全部投资是不可能的,也违背了生活的意义。显然,存在一个最优的平衡。我们可以通过定义一个代表你一生总“幸福感”的效用函数来模拟这个问题。这个函数将取决于你的消费选择。由于边际效益递减——花在教育上的第一美元带来的提升远大于第一百万美元——这个效用函数通常是凹的,意味着它有一个单峰。找到那个峰值就能告诉你投资于教育以最大化你终生福祉的最优数量。这是一个一维优化问题,可以用我们一直在讨论的相同搜索技术精确解决。

同样的成本效益分析逻辑也出现在生物学中,其驱动力不是有意识的选择,而是自然选择的无情压力。想想不同动物的胃酸度。秃鹫以腐肉为食,腐肉中常常充满病原体,因此一个能杀死有害细菌的极酸性胃(非常低的 pH 值)对它大有裨益。而吃更新鲜食物的杂食动物面临的病原体负荷较低。维持高度酸性的肠道在代谢上是昂贵的;身体必须不断地逆着陡峭的浓度梯度泵送质子。因此,进化面临一个权衡。 “收益”是杀死病原体的概率,它随酸度增加而增加。“成本”是维持该酸度所需的能量。任何给定物种的最优 pH 值是使净收益(收益减去成本)最大化的点。通过对这种权衡进行建模,我们可以创建一个收益函数,并使用一维搜索来预测最优 pH 值。这个简单的模型正确地预测了食肉动物和食腐动物应该比食草动物或杂食动物进化出更酸的胃,为进化适应提供了一个优美的量化证实。

工程智能:从控制系统到人工智能

在现代世界,我们不仅在分析系统,我们还在构建系统。在这里,对最优的追求同样至关重要。

最激动人心的前沿之一是机器学习。我们构建复杂的模型,如梯度提升机或神经网络,它们可以从数据中学习。但这些模型有几十个“旋钮”或超参数——比如学习率、模型复杂度等——在训练开始之前就必须设置好。模型的性能对这些设置可能极其敏感。我们如何找到最佳设置?通常,超参数与模型性能之间的关系是一个“黑箱”。我们无法为其写下一个简单的数学公式,因此无法使用微积分来找到最优点。我们所能做的就是尝试一个值并测量性能(例如,在验证数据集上的误差)。这正是无导数线搜索的完美应用场景。我们可以定义一条穿越高维超参数空间的路径,并使用黄金分割搜索来找到沿该线的最佳点。这是一种智能且高效的“试错”搜索方式,使我们能够调整我们的人工智能模型以达到最佳性能。

最后,了解一个工具的局限性与其优势同样重要。如果我们正在搜索的地貌不是一个单一、简单的山丘,而是一个有多座山峰的崎岖山脉呢?考虑一个来自控制工程的问题:确定一个系统(如飞机或电网)的稳定性。一个关键的度量是系统的“无穷范数”,它衡量系统对输入信号可能施加的最大放大倍数。要找到它,我们必须在所有可能的频率 ω\omegaω 上找到系统频率响应函数 ∣G(jω)∣|G(j\omega)|∣G(jω)∣ 的峰值。这个函数可能有多个共振峰,就像一系列山顶。如果我们天真地释放一个黄金分割搜索,它会爬上它找到的第一个山丘,并自豪地报告一个局部峰值,可能错过其他地方一个更大、更危险的共振。

这是否意味着我们的工具毫无用处?完全不是!这意味着我们需要一个更复杂的策略。稳健的方法是首先在整个频率范围内进行一次粗略的网格搜索,以大致了解所有主要山峰的位置。然后,对于每个识别出的山峰,我们可以使用像黄金分割搜索这样的精确工具来“放大”并高精度地找到其确切的高度。最终的答案就是所有精确定位的山峰中的最高者。这是解决现实世界问题的一个深刻教训:成功往往不是来自单一的“魔弹”算法,而是来自不同工具的智能组合,每种工具都用在其最擅长的地方。

从分子的量子之舞到生命的进化逻辑,再到我们机器的数字大脑,寻找最优解是一个统一的主题。黄金分割搜索为我们提供了一个简单、强大且用途惊人广泛的策略来解决这些问题。它优美地提醒我们,有时,科学中最优雅的解决方案并非诞生于复杂的机械,而是源于一个简单而严格符合逻辑的想法。