收敛是指一个过程的极限,在评估优化算法的预期性能时,可以作为一种有用的分析工具。
当探索优化算法以及使用优化算法训练的机器学习算法(例如深度学习神经网络)的学习动态时,它也可以是一种有用的经验工具。这促使我们研究学习曲线和技术,例如早停法。
如果优化是一个生成候选解的过程,那么收敛就代表着过程结束时的稳定点,此时不再预期会有进一步的改变或改进。过早收敛是指优化算法的一种失效模式,即过程在未能代表全局最优解的稳定点处停止。
在本教程中,您将了解机器学习中过早收敛的入门知识。
完成本教程后,您将了解:
- 收敛是指通过迭代优化算法找到的解序列末端的稳定点。
- 过早收敛是指找到一个过早的稳定点,可能接近搜索的起点,且评估结果比预期更差。
- 优化算法的贪婪性决定了算法的收敛速度。
启动您的项目,阅读我的新书《机器学习优化》,其中包含分步教程和所有示例的Python源代码文件。
让我们开始吧。
早熟收敛简明介绍
照片由Don Graham拍摄,部分权利保留。
教程概述
本教程分为三个部分;它们是:
- 机器学习中的收敛
- 过早收敛
- 解决过早收敛问题
机器学习中的收敛
收敛通常指的是一个过程随着时间的推移趋于稳定的值。
在使用优化算法时,这是一个有用的概念。
优化是指一种需要找到一组输入,使得目标函数的值达到最大或最小的问题。优化是一个迭代过程,它会产生一系列候选解,直到最终在过程结束时得出一个最终解。
优化算法得出最终稳定点的这种行为或动态过程被称为收敛,例如优化算法的收敛。通过这种方式,收敛定义了优化算法的终止。
局部下降涉及迭代地选择一个下降方向,然后沿该方向迈出一步,并重复该过程直到收敛或满足某个终止条件。
— 第13页,《优化算法》,2019年。
- 收敛:优化算法的停止条件,此时找到一个稳定点,算法的进一步迭代不太可能产生进一步的改进。
我们可以通过经验方式测量和探索优化算法的收敛性,例如使用学习曲线。此外,我们也可以通过分析方式探索优化算法的收敛性,例如收敛性证明或平均情况计算复杂度。
强大的选择压力会导致快速但可能是过早的收敛。减弱选择压力会减慢搜索过程……
— 第78页,《进化计算:统一方法》,2002年。
对于那些通过迭代优化算法(如逻辑回归和人工神经网络)拟合(学习)训练数据集的机器学习算法来说,优化及其优化算法的收敛是一个重要的概念。
因此,我们可以选择比其他算法具有更好收敛行为的优化算法,或者花费大量时间通过优化(例如学习率)的超参数来调整优化算法的收敛动态(学习动态)。
收敛行为可以通过算法达到收敛所需的迭代次数,与收敛时找到的稳定点的目标函数评估值,以及这些因素的组合来比较。
想要开始学习优化算法吗?
立即参加我为期7天的免费电子邮件速成课程(附示例代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
过早收敛
过早收敛是指过程过早地收敛。
在优化中,它指的是算法收敛于一个比预期性能更差的稳定点。
过早收敛通常会影响复杂的优化任务,在这些任务中,目标函数是非凸的,这意味着响应面包含许多不同的良好解(稳定点),可能其中有一个(或几个)是最佳解。
如果我们把目标函数在优化过程中的响应面看作是一个几何景观,并且我们正在寻找函数的最小值,那么过早优化指的是在搜索起点附近找到一个比问题域中最浅的山谷更浅的山谷。
对于表现出高度多峰(崎岖)的适应度景观或随时间变化的景观的问题,过度的开发通常会导致过早地收敛到空间中的次优峰值。
— 第60页,《进化计算:统一方法》,2002年。
通过这种方式,过早收敛被描述为找到一个局部最优解而不是优化算法的全局最优解。它是优化算法的一种特定失效情况。
- 过早收敛:优化算法收敛到一个比最优解差的稳定点,该点可能接近起始点。
换句话说,收敛标志着搜索过程的结束,例如找到了一个稳定点,算法的进一步迭代不太可能改进解决方案。过早收敛指的是优化算法在达到该停止条件时,其稳定点不如预期的好。
解决过早收敛问题
在任何有相当挑战性的优化任务上,过早收敛可能是一个相关的问题。
例如,进化计算和遗传算法领域的大部分研究都涉及识别和克服算法在优化任务上过早收敛的问题。
如果选择侧重于适应度最高的个体,则选择压力可能因新种群多样性降低而导致过早收敛。
— 第139页,《计算智能:导论》,第二版,2007年。
群体优化算法,如进化算法和群体智能,通常根据选择压力和收敛之间的相互作用来描述它们的动态。例如,强大的选择压力会导致更快的收敛,并可能导致过早收敛。较弱的选择压力可能会导致收敛速度变慢(计算成本增加),尽管可能会找到更好的甚至全局最优解。
与选择压力较低的算子相比,选择压力高的算子会更快地降低种群中的多样性,这可能导致过早收敛到次优解。高选择压力限制了种群的探索能力。
— 第135页,《计算智能:导论》,第二版,2007年。
这种选择压力的概念对于更广泛地理解优化算法的学习动态非常有帮助。例如,配置得过于贪婪的优化(例如通过步长或学习率等超参数)可能会因过早收敛而失败,而配置得不那么贪婪的相同算法可能可以克服过早收敛并找到更好或全局最优的解决方案。
在使用随机梯度下降训练神经网络模型时,可能会遇到过早收敛,表现为学习曲线呈指数级快速下降然后停止改进。
达到收敛所需的更新次数通常随着训练集大小的增加而增加。然而,当 m 趋于无穷大时,模型将在 SGD 采样完训练集中的每个样本之前收敛到其最佳可能的测试误差。
— 第153页,《深度学习》,2016年。
拟合神经网络容易出现过早收敛的事实促使我们使用学习曲线等方法来监控和诊断模型在训练数据集上收敛的问题,以及使用正则化(如早停法)来在找到稳定点之前停止优化算法,但这会以在保留数据集上性能较差为代价。
因此,深度学习神经网络的许多研究最终都致力于克服过早收敛。
经验上,人们发现“tanh”激活函数比逻辑函数能使训练算法更快地收敛。
— 第127页,《神经网络模式识别》,1995年。
这包括权重初始化等技术,因为神经网络的初始权重定义了优化过程的起点,糟糕的初始化可能导致过早收敛。
初始点可以决定算法是否能够收敛,一些初始点非常不稳定,以至于算法遇到数值困难并完全失败。
— 第301页,《深度学习》,2016年。
这还包括随机梯度下降优化算法的各种变体和扩展,例如增加动量以防止算法过冲最优值(稳定点),以及 Adam,它为每个被优化的参数添加了自动调整的步长超参数(学习率),从而极大地加快了收敛速度。
进一步阅读
如果您想深入了解,本节提供了更多关于该主题的资源。
教程
书籍
- 优化算法, 2019.
- 遗传算法入门, 1998.
- 《计算智能:导论》,第二版,2007年。
- 深度学习, 2016.
- 进化计算:统一方法, 2002.
- 《用于模式识别的神经网络》, 1995.
- 概率机器学习:导论 2020.
文章
总结
在本教程中,您了解了机器学习中过早收敛的入门知识。
具体来说,你学到了:
- 收敛是指通过迭代优化算法找到的解序列末端的稳定点。
- 过早收敛是指找到一个过早的稳定点,可能接近搜索的起点,且评估结果比预期更差。
- 优化算法的贪婪性决定了算法的收敛速度。
你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。
谢谢哥们
这非常有帮助
但我想知道您是否能给出一本电子书的标题,我可以通过它深入理解这个主题,因为我真的需要它。
谢谢,我感谢您的努力。
你好 Mohammad… 这个主题与优化密切相关。你可能会发现以下内容有助于加深你的理解
https://machinelearning.org.cn/optimization-for-machine-learning-crash-course/