局部优化与全局优化

优化是指找到目标函数的输入集合,这些输入可以使目标函数产生最大或最小的输出。

通常用局部与全局优化来描述优化问题。

同样,也常用局部与全局搜索来描述优化算法或搜索算法。

在本教程中,您将了解局部优化和全局优化之间的实际区别。

完成本教程后,您将了解:

  • 局部优化涉及在搜索空间的特定区域寻找最优解,或者对于没有局部最优解的问题寻找全局最优解。
  • 全局优化涉及在包含局部最优解的问题中寻找全局最优解。
  • 如何以及何时使用局部和全局搜索算法,以及如何结合使用这两种方法。

开始您的项目,请阅读我的新书《机器学习优化》,其中包含分步教程和所有示例的Python源代码文件。

让我们开始吧。

Local Optimization Versus Global Optimization

局部优化与全局优化
照片由 Marco Verch 拍摄,保留部分权利。

教程概述

本教程分为三个部分;它们是:

  1. 局部优化
  2. 全局优化
  3. 局部与全局优化

局部优化

局部最优是指目标函数在给定输入空间区域内的极值(最小值或最大值),例如最小化问题中的一个盆地。

……我们寻求一个仅局部最优的点,这意味着它在附近的可用点中最小化了目标函数……

— 第9页,《凸优化》,2004年。

一个目标函数可能有许多局部最优解,也可能只有一个局部最优解,在这种情况下,局部最优解也是全局最优解。

  • 局部优化:从一个被认为包含最优解的起始点(例如,一个盆地)来定位目标函数的优化解。

局部优化或局部搜索是指搜索局部最优解。

局部优化算法,也称为局部搜索算法,是一种旨在定位局部最优解的算法。它适用于遍历搜索空间的给定区域,并接近(或精确找到)该区域函数的最优值。

……局部优化方法广泛应用于那些能找到一个好点(即使不是最好的点)就很有价值的应用中。

— 第9页,《凸优化》,2004年。

局部搜索算法通常在一个候选解上操作,并涉及迭代地对候选解进行微小更改,并评估更改是否带来了改进,然后将其作为新的候选解。

局部优化算法将定位全局最优解

  • 如果局部最优解就是全局最优解,或者
  • 如果正在搜索的区域包含全局最优解。

这些定义了使用局部搜索算法的理想用例。

关于什么是局部搜索算法的确切定义可能存在争议;然而,根据我们的定义,以下是三个局部搜索算法的例子:

  • Nelder-Mead 算法
  • BFGS 算法
  • 爬山算法

现在我们熟悉了局部优化,让我们来看看全局优化。

想要开始学习优化算法吗?

立即参加我为期7天的免费电子邮件速成课程(附示例代码)。

点击注册,同时获得该课程的免费PDF电子书版本。

全局优化

全局最优是指目标函数在整个输入搜索空间中的极值(最小值或最大值)。

全局优化,其中算法通过采用机制来搜索搜索空间的更大部分,以搜索全局最优解。

— 第37页,《计算智能导论》,2007年。

一个目标函数可以有一个或多个全局最优解,如果有多个,则称为多模态优化问题,每个最优解都将具有不同的输入和相同的目标函数评估值。

  • 全局优化:定位可能包含局部最优解的目标函数的优化解。

目标函数总是有一个全局最优解(否则我们就不会对其进行优化),尽管它也可能包含局部最优解,而这些局部最优解的目标函数评估值不如全局最优解。

全局最优解可能与局部最优解相同,在这种情况下,称优化问题为局部优化而不是全局优化会更合适。

局部最优解的存在是定义全局优化问题难度的主要组成部分,因为找到局部最优解可能相对容易,而找到全局最优解可能相对困难。

全局优化或全局搜索是指搜索全局最优解。

全局优化算法,也称为全局搜索算法,旨在定位全局最优解。它适用于遍历整个输入搜索空间,并接近(或精确找到)函数的最优值。

全局优化用于变量数量少、计算时间不关键且找到真实全局解的价值非常高的问题。

— 第9页,《凸优化》,2004年。

全局搜索算法可能涉及管理一个或一组候选解,从中迭代地生成新的候选解并进行评估,以确定它们是否带来了改进,并将其作为新的工作状态。

关于什么是全局搜索算法的确切定义可能存在争议;然而,根据我们的定义,以下是三个全局搜索算法的例子:

  • 遗传算法
  • 模拟退火
  • 粒子群优化

现在我们熟悉了全局和局部优化,让我们来比较和对比一下。

局部与全局优化

局部和全局搜索优化算法解决不同的问题或回答不同的问题。

当您知道自己处于全局最优解的区域,或者您的目标函数包含单个最优解(例如,单峰函数)时,应使用局部优化算法。

当您对目标函数响应的结构了解很少,或者知道函数包含局部最优解时,应使用全局优化算法。

局部优化,其中算法可能会陷入局部最优而找不到全局最优。

— 第37页,《计算智能导论》,2007年。

将局部搜索算法应用于需要全局搜索算法的问题将导致结果不佳,因为局部搜索会被局部最优解困住(欺骗)。

  • 局部搜索:当您处于全局最优解的区域时。
  • 全局搜索:当您知道存在局部最优解时。

局部搜索算法通常会提供与定位全局最优解相关的计算复杂度保证,前提是算法所做的假设成立。

全局搜索算法通常很少或根本不提供关于定位全局最优解的保证。因此,全局搜索通常用于足够困难的问题,这些问题可以接受“”或“足够好”的解而不是没有解。这可能意味着相对较好的局部最优解,而不是真正的全局最优解,如果定位全局最优解是棘手的。

通常可以多次重新运行或重新启动算法,并记录每次运行找到的最优解,以确保找到了相对较好的解。

  • 局部搜索:适用于需要全局解决方案的狭窄问题。
  • 全局搜索:适用于全局最优解可能难以处理的广泛问题。

我们通常对目标函数的响应曲面了解很少,例如,局部或全局搜索算法哪个更合适。因此,最好通过局部搜索算法建立一个性能基线,然后探索全局搜索算法,看看它是否能做得更好。如果不能,这可能表明该问题确实是单峰的或适合局部搜索算法。

  • 最佳实践:在对目标函数了解甚少的情况下,先用局部搜索建立基线,然后探索全局搜索。

局部优化比全局优化是一个更简单的问题。因此,绝大多数数学优化研究都集中在局部搜索技术上。

关于一般非线性规划的大部分研究都集中在局部优化方法上,因此这些方法非常成熟。

— 第9页,《凸优化》,2004年。

全局搜索算法在搜索空间的导航方面通常比较粗糙。

许多群体方法在全局搜索中表现良好,能够避免局部最小值并找到设计空间的最佳区域。不幸的是,与下降方法相比,这些方法在局部搜索中的表现不如它们。

— 第162页,《优化算法》,2019年。

因此,它们可能会定位一个好的局部最优解的盆地或全局最优解,但可能无法在盆地内找到最佳解。

局部和全局优化技术可以组合起来形成混合训练算法。

— 第37页,《计算智能导论》,2007年。

因此,将局部搜索应用于全局搜索算法找到的最优解候选集是一个好习惯。

  • 最佳实践:将局部搜索应用于全局搜索找到的解。

进一步阅读

如果您想深入了解,本节提供了更多关于该主题的资源。

书籍

文章

总结

在本教程中,您了解了局部优化和全局优化之间的实际区别。

具体来说,你学到了:

  • 局部优化涉及在搜索空间的特定区域寻找最优解,或者对于没有局部最优解的问题寻找全局最优解。
  • 全局优化涉及在包含局部最优解的问题中寻找全局最优解。
  • 如何以及何时使用局部和全局搜索算法,以及如何结合使用这两种方法。

你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。

掌握现代优化算法!

Optimization for Maching Learning

加深您对优化的理解

...只需几行python代码

在我的新电子书中探索如何实现
机器学习优化

它提供**自学教程**,并附有关于以下内容的**完整工作代码**:
梯度下降遗传算法爬山法曲线拟合RMSPropAdam,以及更多...

将现代优化算法应用于
您的机器学习项目


查看内容

8 条对《局部优化与全局优化》的回复

  1. Francisco Cristancho 2021年1月29日 上午11:08 #

    Brownlee 博士,下午好。

    我想看看一个关于如何将 PSO 或其他全局优化算法应用于训练的实际示例。我在某些情况下看到它会比基于 GD 的算法带来更好的结果。您是否有关于如何使用此类系统构建神经网络的参考?感谢您的时间,我非常欣赏您出色的工作。

  2. Salman Zaidi 2021年3月10日 上午10:37 #

    感谢这篇文章。将进化算法或群体算法称为全局搜索算法是有争议的,因为它们无法提供关于以一定概率/置信度找到全局最优解的精确概率陈述。我喜欢称它们为局部随机搜索,与局部确定性搜索算法相比,它们更不容易陷入局部最优(这要归功于探索性特征,如突变)。

  3. Anwar Zaman 2021年4月15日 晚上9:00 #

    假设您已将优化方法应用于某个问题,但陷入了局部最小值?您需要达到全局最优点。需要采取哪些步骤才能获得最佳的优化解决方案?

    如果有谁能回答,请告知。

    • Jason Brownlee 2021年4月16日 上午5:30 #

      每个项目都有一个具体的目标,也许您需要最好的优化解,也许您需要一个足够好的优化解,考虑到您拥有的时间。

      通常我们无法在给定的时间/资源内找到最佳优化解。这太具挑战性了。

  4. Patrick 2022年5月6日 上午1:47 #

    哪些机器学习模型可以找到参数,从而找到目标函数的全局最优解?

    请帮助我回答这个问题。

留下回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。