您的位置:  首页 > 技术杂谈 > 正文

【AutoML】超参数优化及提前停止算法

2022-06-22 12:00 https://my.oschina.net/u/5682856/blog/5543190 SenseParrots 次阅读 条评论

文 @ 小 P 家的小胡易生

0 前言

深度神经网络 (DNN) 凭借强大的特征提取和数据拟合能力在机器学习诸多领域表现不凡。但目前对于人们来说,DNN 仍是一个黑盒,其内部的运作原理缺乏完备的理论支撑,即便相同的模型结构、相同的数据,在不同的超参数下训练得到的结果也可能有着巨大的差异。

在面对日新月异的细分任务和不同数据集时,前人经验对超参数设置的指导作用十分有限,并且超参数是不可导的,也就意味着无法转换为最优化问题进行自动学习。目前来说,仍然需要从业人员基于不同的场景,进行大量的尝试,以获得性能最佳的超参数配置。

在面对商业大规模的落地场景时,如果完全依靠研究员、工程师纯人工探索最佳模型,将消耗巨大的人力成本,同时也限制了从业人员进行更有创造性的工作。

近年来,许多研究表明,基于自动优化算法的超参数搜索可以具有媲美甚至超过人类专家基于经验设置的超参数配置,因此自动机器学习 (AutoML) 领域迅速崛起,涵盖的领域包括自动数据清理、自动特征工程、超参数优化 (HPO)、元学习、神经结构搜索 (NAS)、提前停止算法等。

今天,我们将介绍超参数优化算法和提前停止算法,揭示如何利用超参数优化算法替代人工,自动地在大规模搜索空间中高效地寻找到最佳配置,以及如何结合提前停止算法在搜索成本和搜索结果之间做到最佳的平衡。

  • 超参数优化算法
  • 提前停止算法
  • 基准测试

 

1 超参数优化算法

提到深度神经网络的参数,一般分为两类。第一类是可以利用梯度下降法进行学习更新的网络权重,第二类是在训练前设定的训练参数,也称为超参数

超参数的设定本质上也是一个最优化问题,不过其由于形式未知,也就无法通过梯度算法直接进行学习更新。

对于一个给定的算法,假设超参数包括 \({\lambda_1,\lambda_2,\lambda_3,......,\lambda_n}\),每个超参数属于特定的离散或连续空间,所有超参数空间组合构成总的搜索空间 \(A\)。

从搜索空间 \(A\)中采样得到的一组超参数配置定义为 \(A_{\lambda}\),超参数优化的过程就是不断地从搜索空间中采样配置,然后根据配置对应的反馈精度不断优化采样配置的过程。

其中,反馈精度是指在训练集上学习更新网络权重后,在验证集和测试集上的性能表现,根据不同的目标函数 \(L\) 可分为:

  • 最大化优化:\(\arg\max_{A_{\lambda}} L(A_{\lambda}, Dataset_{train}, Dataset_{valid}, Dataset_{test})\)
  • 最小化优化:\(\arg\min_{A_{\lambda}} L(A_{\lambda}, Dataset_{train}, Dataset_{valid}, Dataset_{test})\)

1.1 Babysitting

最简单也是最常用的方法称为 Babysiting 法,也叫做研究生下降法,完全由基于人工经验指导,进行手工调参。

首先确定几个待调的超参数及大致的调整范围,然后在此搜索空间中,基于变量控制法,或随机尝试各种参数组合,并根据性能指标进行超参数调整。

这种方法简单粗暴、效率低下、人力成本极高,搜索终止条件一般为论文截稿日期、汇报节点等。

对于初学者而言,该过程有助于更好地理解各种参数的作用和影响。但对于需要大规模落地的商业场景和需要创造性的探索场景,该方法就显得不是那么优雅和高效,并且多数情况下无法搜索到最优参数配置。

 

1.2 GridSearch 网格搜索

GridSearch 是最简单的自动搜索算法,不带任何先验信息,也不考虑历史结果,无差别地在搜索空间中遍历所有配置,是 Babysitting 法的机器版。

在确定待搜索参数种类和搜索空间后,计算超参数集合的笛卡尔积,然后产生所有的参数组合。

例如:超参数包括 Learning_rateBatch_sizen_layers 三种。其中 learning_rate 的搜索空间是连续的,但 GridSearch 仅支持在离散空间中采样, 因此需要预先采样到离散空间中,如下图所示。

如果遍历每组配置,那么一定可以找到此搜索空间中的最佳配置。

但深度神经网络模型训练一次的时间成本很高,短则数小时,长则数天、上月甚至更久。不论是从时间成本还是计算成本来看,都是无法接受的。

总的来说,GridSearcher 只适合于搜索空间较小的情况。

 

1.3 RandomSearch 随机搜索

有时,不确定性往往会产生意外之喜,就如同基因变异会为生物带来新的特征。

RandomSearch 就是在 GridSearch 的基础上增加了参数选择的随机性,GridSearch 只能从预定义的若干个点中进行采样组合,且连续值还需设定为离散值,导致其参数组合多样性受限。

同时,人类预定义的值往往形式规整、具有一定规律,但这些配置并不一定是最优的选择。

从直觉上来看,在一定的尝试次数和合理的搜索范围内,采样的配置越多样,则越有可能搜索到更优的组合配置。

为了在相同的尝试次数下能够尽可能多地尝试更多样的参数组合,RandomSearch 算法应运而生。

其核心思想是,在搜索空间中进行采样时,不局限于预定义的若干个点,而是随机地在连续空间中进行采样。

因此,在相同的尝试次数下,RandomSearch 的超参数组合更加多样。

不过,随机因素的引入有利也有弊,其搜索结果方差可能很大。直观来说就是随机产生的超参数结果可能很差,也很可能很好。但是,在达到一定的尝试次数后,这种方法可以获得比 GridSearch 更优的结果。

所以,一般可以使用该方法建立基准测试,作为后续更高阶算法的 baseline。

1.4 Bayesian Optimization 贝叶斯优化

GridSearch 和 RandomSearch 是更为低级的搜索算法,GridSearch 用于替代人类专家完成参数组合的重复性劳动,RandomSearch 则是在 GridSearch 的基础上引入了随机性,使得搜索过程的参数组合更加多样。两者都属于暴力搜索方法,优化过程不依赖任何历史结果,搜索结果的好坏不仅依赖于搜索空间设定的合理性,更多地要看可供使用的计算资源有多少。

目前来说,在业界最流行的应该就是基于贝叶斯优化的搜索算法了。超参数搜索过程建模为最优化问题,超参数为输入变量,模型性能作为优化目标,即:

\(res_{valid\_{test}} = f(hyperParameter, training\_data, model\_parameter) \)

类似地,神经网络模型也是一个最优化问题,其本质上是一个多层嵌套的复合函数,且函数形式已知。因此,可以通过梯度下降法进行参数学习。但对于超参数优化问题,其过程是一个黑盒,并不知道其具体的函数形态,也就无法基于梯度下降的方法进行优化。

针对这类不知道具体函数形态,但对于确定的输入 \(x\),可以计算输出 \(y\) 的场景,可以使用基于贝叶斯优化的方法进行求解。

这里我们介绍基于高斯过程回归的贝叶斯优化算法,高斯过程可以表示任何满足高斯假设的函数的分布,对于形式确定的函数,可以通过梯度下降的方式进行监督学习,这种方式称为参数化方法,但是前提是函数形式可知,而高斯过程可以应用于任何形式的函数,也就是说可以在不知道函数形式的前提下进行回归预测。

为了易于理解,这里假设超参数优化问题为单变量函数,并展示其回归过程以此解释高斯过程回归的原理。假设下图中红色虚线为待拟合的函数曲线,横轴是自变量(超参数),纵轴是因变量(模型性能),该曲线的形式和形态对于优化过程来说是未知的。

随着训练的进行,假设我们获得了 4 组超参数配置的训练结果,即下图中的红色粗点。通过高斯过程回归计算前 4 组的后验概率分布,得到每组超参数的期望和方差,期望代表了该点预期能达到的效果,期望越大说明性能越好,而方差代表了该处性能的不确定性,不确定性越大就说明此处的性能越不稳定,直观来说就是该点出现更好或更坏结果的可能性更大。

随着训练的不断进行,获得了更多的可信结果,因此均值越来越贴近曲线的真实变化,方差也在不断减少。

非常容易发现,只要获得的真实样本点越多,就越能正确地拟合曲线的真实形态,但如果不借助任何历史结果进行随机尝试,则退化成了 GridSearch 和 RandomSearch。所以,贝叶斯优化的核心问题在于,在已有一定历史样本的情况下,如何有效地选择下一个进行训练的样本,以实现在尽可能小的尝试次数下,精确地拟合函数曲线,找到最优值。

优化时我们需要关注两个指标——期望方差。期望代表了该点预期的结果,期望越大说明该点可能的性能越好;方差代表了该点的随机性,随机性越大,可探索的空间也就越大,也就越有可能产生更好或更坏的结果。

因此,在产生新的超参数时应该综合考虑期望和方差,在不同的情境下应该产生不同的倾向,当然这一过程人类专家是不需要介入的,不然也就失去了自动优化的意义。

替代人类专家进行决策的即为称为 "Acquisition function",这是一个平衡保守(期望)和激进策略(方差)的函数,常用的 Acquistion function 有 Expected improvement、Lower confidence bound、Probability of improvement。

通过不断地在产生新样本、高斯过程回归之间反复迭代,经过一定时间,就可以近似逼近函数的真实曲线,也即搜索到了期望的最优超参数组合。

相比于 GridSearch 和 RandomSearch,基于贝叶斯优化的超参数搜索算法更加高效和合理,因此也是实际业务使用最为广泛的一种方法。

除了高斯过程回归,还有一些其他经典的基于贝叶斯优化的算法,如:

  • Tree-structured Parzen Estimator (TPE): 基于序列模型优化,适用于各种场景,通常能得到较好结果,性能优于随机搜索。
  • Byesian Optimization Hyperband (BOHB): Hyperband(HB) 算法的后续工作,通过建立多个 TPE 模型,利用已完成的训练任务结果生成新的配置。适用于计算资源有限但搜索空间相对较大,且中间结果能够很好反映最终结果的情况。相比于 HB,BOHB 可能得到更好的配置。
  • Sequential Model-Based Optimization forGeneral Algorithm Configuration (SMAC): SMAC 基于 Sequential Model-Based Optimization (SMBO, 基于模型的序列化优化算法),利用高斯随机过程模型,并将随机森林引入到 SMBO 中,来处理分类参数。适用于各种场景,在计算资源有限时也可以使用。适用于离散超参优化。
  • ......

接下来我们将介绍另一种基于群体智能的演变算法,该算法是从一种新的思路来进行超参数搜索。

 

1.5 Evolution Search 进化算法

进化算法是一种群体智能算法,最初是从生物群体的演变规律启发而来。包括多种具体类型,如遗传算法、爬山算法、粒子群算法等。

这里以遗传进化算法为例讲解如何应用到超参数搜索任务中。

生物种群在不断的进化中,展现出了越来越强的环境适应能力,也被称为"物竞天择,适者生存",这种进化的本质就是基因频率的改变。

在生物交配过程中,父体和母体的染色体交叉以交换各自一部分基因,生成后代的基因,染色体交叉增加了基因的多样性。

同时,遗传过程中伴随着基因突变,增加了基因的随机性,尽管基因突变产生的不利基因更多,但在大规模的种群演变中,也会产生有利基因,并导致生物的环境适应能力得到提高。

在种群不断的进化过程中,对环境适应能力更强的个体,就越有可能将其基因继续传递下去。经过不断的进化,越来越多优秀的个体产生并且被传承,而对环境适应能力低的个体则更容易被社会淘汰,其携带的劣质基因就难以得到传承。

基于遗传进化的超参数优化算法也是借鉴了种群自然进化的过程,首先基于随机采样的方式生成初代种群,每组超参数配置就是种群中的一个个体。

计算初代个体的环境适应度,环境适应度一般使用在测试集上的性能表现,然后过滤掉环境适应度低的个体,在剩下的优秀个体中随机配对,进行染色体交叉和变异产生新的个体。

对于超参数组合来说,染色体交叉即将两组超参数中的部分参数进行随机互换,使得新的参数组合中同时包括优秀的父体和母体的超参数选择,然后基于一定的概率决定是否随机改变各超参数值。

经过不断的变化,优秀的基因(超参数组合)会被不断传承下去,并组合产生更优秀的基因,同时变异操作也保证了基因的多样性,使之不再局限于初代个体的基因种类。

 

2 提前停止算法

深度神经网络训练的时间和计算成本十分高昂,在大规模的搜索空间里进行超参数搜索时,这个问题更加明显。

人类专家进行超参数调优时,在训练的任何阶段(尤其是训练初期),通常结合经验和历史任务表现评估当前超参数的性能,当认为性能不佳时,会终止当前任务,以节省时间和资源,并开始新的参数尝试。

假设目前的搜索任务包含 5 个超参数,每个参数 5 个候选项,则搜索空间一共包含 3125 种参数组合。若每个模型训练需要 4 小时,使用 8 张 GPU 并行 8 个模型训练任务,完成所有参数的训练也需要整整 2 个月,即使限定搜索任务数的上限,巨大的时间和计算成本也让人难以接受。

因此,在自动优化过程中,如果能使用评估算法替代人类专家的决策,提前终止掉性能不佳的任务,加速搜索过程,以消耗尽可能少的时间和计算成本,获得比人类专家更优的调优结果,那么 HPO 任务才是真正的具有实用价值。

接下来,我们将分别介绍两种提前停止算法的原理。

 

2.1 MedianStop

MedianStop 是一种基于数学统计的前向提前停止算法,实现简单,适用范围广泛,支持最大优化或最小优化指标的场景。

该算法的基本原理是以历史任务在各 step 的中位数为阈值(根据用户不同的设置,step 的单位可以是epoch、iteration、运行时间等),若当前任务的表现低于当前 step 的阈值,则认为该任务产生最优结果的可能性较低,应该提前终止任务训练。

该算法原理简单明了,但是在实际使用中为了使得评估结果更加可信,减少误判,评估启动时机显得尤为重要。

一般在具备一定数量的历史样本结果后,结合训练任务的总 Step 数,决定何时启动评估。

MedianStop 是一种前向评估算法,依据历史结果来评判当前任务的表现。接下来要介绍一种更加复杂的后向提前停止评估算法。

 

2.2 Extrapolation of Learning Curves

几乎所有的机器学习算法都属于最优化问题,为了达到预设的目标,需要构造目标函数,并通过极大化或极小化目标函数来更新模型参数。

常用的目标函数有准确率、召回率等。在极大化的场景中,随着训练的进行,指标在验证或测试集上会呈现出初期快速上升,然后上升速度逐渐减慢,最后趋于平稳的趋势。若发生了过拟合,则在训练后期还会出现指标下降的情况。

对于大多数训练场景,指标曲线的变化趋势存在一定的规律,呈现出递增、饱和的特性。同时,这种变化是时序相关的,曲线整个训练周期的变化同历史的变化趋势呈现正相关关系,即若在训练初期指标更好,则在训练后期也有很大概率得到更好的指标。

依据这样的规律,提出了曲线拟合预测算法。这是一种基于早期训练指标,来推断其未来的性能表现,并依据历史任务的最优性能决定是否需要提前停止当前任务的评估算法。

曲线拟合算法是基于概率模型的在线学习、预测和评估方法,可以和任何超参数优化算法结合使用,并应用于训练的任何阶段。

核心思想是通过回归预测,在一组预设的函数上进行拟合,并计算未来某个时刻(一般为训练的最大 Epoch 或 Iteration 数)的函数值作为未来可能的性能表现,并基于已经完成的训练结果,来判定当前训练产生更优结果的可能性。

曲线拟合算法可以拆分为拟合、预测、评估三个阶段,三个阶段会在预定义的检测时刻(如每轮 Epoch 训练结束后)串行执行,预测当前任务是否有潜力产生更优表现,决定是否需要继续训练。

 

2.2.1 拟合阶段

利用已有的前 N 步训练指标,通过最小二乘法,在一组变化规律符合人类先验知识(递增、饱和)的函数进行回归预测。

之所以选择多种函数曲线来进行拟合,是因为每种函数曲线都代表了指标曲线的某一部分,但没有任何一种曲线可以单独地表示所有可能的情况,因此使用一组函数共同来刻画当前模型的性能表现,函数集见下图:

和集成学习的思想一样,每个函数曲线就是一个弱表达器,将其结果合理地集成起来,能更全面精准地进行预测。

这里采用加权线性组合的方式进行结果集成,函数的权重直接影响到集成结果的表现。最简单的方式是通过极大似然估计来寻求最佳的权重组合,但是这样会产生过拟合的现象,使得权重分配更关注于早期的性能表现,而忽略了训练指标在未来变化的随机性。

为了更准确对这种不确定性进行建模,可以使用马尔可夫链蒙特卡洛采样 (MCMC) 的方式进行权重推测,同时,为了避免因为先验知识带来的偏差,往往将所有权重的初始值先设为 1,但在采样的过程中,产生的学习曲线就会出现下降趋势。

为了避免这种情况,我们在采样过程中加入了人类的先验知识:表现良好的学习曲线应该是正在增加的饱和曲线。即在采样权重前,需要过滤掉拟合不佳的函数曲线,然后挑选最终有效的函数,同时限制所有的权重为正值。

函数拟合表现的判定方法为:当拟合曲线预测的历史指标的平均值小于真实的历史指标的平均值时,则认为该曲线表现良好,否则舍弃掉该曲线。

\(Indicator(\cfrac{\sum_{t=1}^{curr} (y_{pred_t} - y_{truth})^2}{curr} < avg_{truth}^2)\)

函数是否有效的判定方法为:首先计算保留的函数曲线在当前时刻的预测值的中位数和标准差,对标准差按如下公式进行缩放:

\(\epsilon=\cfrac{curr}{10}{*}{std}\)

得到有效区间

\([median-\epsilon, median + \epsilon]\)

当曲线的预测值在有效区间中时,才将此函数曲线加入到后续的采样过程中。

经过上述的修正,可以生成不断增加的饱和函数。

马尔可夫链蒙特卡罗法过程是基于上述的先验和假设进行的。

在介绍该过程之前,我们先分别简单的介绍一下蒙特卡罗法和马尔可夫链,以及马尔可夫链蒙特卡罗法。

蒙特卡罗法

蒙特卡罗法是基于概率模型,通过随机抽样的方式进行数值近似计算,广泛应用于数学期望估计、定积分计算等。

蒙特卡罗法的核心是随机抽样,通过抽样获得一个概率分布定义已知的随机样本,并利用这些随机样本的经验分布近似估计总体概率分布。

例如,我们可以使用蒙特卡罗法用于估计圆周率的大小。

假设在一个边长为 \(2R\) 的正方形中内切一个圆形,圆的半径为 \(R\),面积为 \(\pi R^2\),则有圆形和正方形的面积之比为 \(\frac{\pi}{4}\)。随机地向正方形内撒下 \(n\) 个点,统计落在圆内的点的数目 \(m\),则有 \(\frac{m}{n} = \frac{\pi}{4}\),因此可以近似求得圆周率的大小。点数 \(n\) 越大,近似圆周率就越准确。

马尔可夫链

这里所说的马尔可夫链特指时间齐次的一阶马尔可夫链。

马尔可夫链是由一组隶属于同一状态空间的随机变量序列构成的随机过程,随机变量可以是离散的,也可以是连续的,一阶是指每一时刻的状态只依赖于前一时刻的状态,而不依赖于更远的历史时刻,即时刻 \(t\) 的状态满足条件概率分布 \(p(X_t|X_{t-1})\),这一性质也被称为马尔可夫性。时间齐次性是指状态的转移与所处时刻无关,只与当前所属状态有关。

因此马尔可夫链实际上描述了与具体时间无关,但随时间变化的状态转移概率模型,并且假设未来的状态转移只与当前时刻的状态有关,与历史时刻的状态无关。 这与许多真实场景是契合的。

马尔可夫链的应用非常广泛,比如在自然语言处理领域的 n-gram 语言模型就是一个 \(n\) 阶的马尔可夫链,即当前时刻 Token 的概率分布,依赖于前 \(n-1\) 个时刻的Token。

以 3-gram 语言模型为例,假设有两句话“今天晴空万里”、“今天晴空万米”,从人类的角度能够很容易地判断第一句话更加合理,因为第一句话更符合日常用语习惯;也可以通过 3-gram 语言模型进行判断,只需要分别计算两组条件概率,\(p(\text{里}|\text{晴空万})> p(\text{米}|{晴空万})\),就可以判断在“晴空万”三个字之后出现“里”的概率更高。

马尔可夫链由初始状态概率分布矩阵和状态转移概率分布矩阵构成,初始概率分布矩阵即初始时刻各个状态的概率,状态转移概率分布矩阵是状态与状态之间转移的概率,两个概率分布均可从数据集中学习得到,如语言模型的初始状态概率分布矩阵的大小为数据集的词表大小,初始概率可以通过统计每个字出现在每句话第一个位置的概率得到。

对于一阶马尔可夫模型来说,状态概率转移分布矩阵也可以通过统计字对连续出现的条件概率分布得到,如:

\(p(里|万) = \cfrac{count(万里)}{count(万*)}\)

马尔可夫链最重要的性质之一是平稳性,平稳性是后续马尔可夫链蒙特卡罗法的理论基础,也是曲线拟合算法中权重计算可以通过此方法进行计算的原因。

简单来说,平稳性是指对于一个马尔科链,其具有初始状态概率分布 \(\pi(0) = [p1,p2,p3,......,p_n]\),经过 \(K\) 步后,状态概率分布变为:

\(\pi(K) = P_\pi(0) = [p_{k1},p_{k2},p_{k3},......,p_{kn}]\)

其中 \(P\) 为状态转移概率矩阵。

当在状态空间上存在一个状态概率分布 \(\pi(M)\) 使得 \(\pi(M) = P_\pi(M)\),则 \(\pi(M)\) 为马尔可夫链的平稳分布。

具体地说,就是以平稳分布出发,不管经过多少时刻的随机状态转移,之后任一时刻的状态分布都是该平稳分布。

马尔可夫链可能存在平稳分布,也可能不存在平稳分布,或者存在无数个平稳分布,对于如何判定一个马尔可夫链是否具有唯一的平稳分布涉及到马尔可夫链的遍历定理。具体来说包括不可约、非周期和正常返性质,该部分内容超过了本文所属的范围,后续的内容都是基于具有平稳分布的马尔可夫链进行的,若对这部分感兴趣的读者可以参照相关资料继续学习。

马尔可夫链蒙特卡罗法

马尔可夫链蒙特卡罗法是基于蒙特卡罗法发展进化而来,也可用于对一个概率分布进行随机抽样、或是求解函数的数学期望等。马尔可夫链蒙特卡罗法最大的作用在于能应对多元随机变量、非标准形式的密度函数或随机变量分量非独立的复杂情况。

对于曲线拟合算法中各函数曲线的权重计算,就是求解一个多元的随机变量概率分布,但是这个随机变量的函数十分复杂,且形式无法显式定义,因此可以在该随机变量的状态空间上定义一个满足遍历定理的马尔可夫链。

从起点出发,在马尔可夫链上进行随机游走,每个时刻得到一个样本。根据遍历定理,当时间趋于无穷时,权重的概率分布就趋近于平稳分布。

在实际应用中不可能进行无穷地随机游走模拟,我们可以根据实验结果和计算机性能进行调节。同时,根据马尔可夫链的遍历定理可知,随机游走的起点不会影响最终收敛到平稳分布,因此在曲线权重计算中,将各权重初始值设为 1,即不带任何先验信息。

由上述的介绍可知,经过多轮迭代后,采样得到的概率会趋于真实平稳分布,也就是需要求解的权重的真实分布,结合此权重将各曲线的拟合结果通过线性加权的方式即可预测当前模型在目标步数的性能表现。

在运用 MCMC 采样时,我们设置所有权重的初始值为 1,即不带任何先验假设,随机游走过程引入随机噪声误差,来产生新的权重分布。建议分布采用 Metropolis 选择,也就是 Metropolis-Hastings 算法最初采用的建议分布,即,接受分布简化为:

\(a(x,x^{'}) = \min({1, \frac{p(x^{'})}{p(x)}})\)

\(p(x)\) 目标分布采用正态概率分布计算。我们在 \([0,1]\) 的区间上进行随机均匀分布采样,和接受分布的计算结果进行比较,决定是否接受当前采样。

 

2.2.2 预测阶段

通过上述的采样过程中,我们得到了一组有效的函数曲线对应的权重,通过线性加权组合的方式,预测当前任务在目标步数的性能表现。

\(y_{pred} = \sum_{i}^nw_{i}f_{i}(\theta, x)\)

 

2.2.3 评估阶段

评估时必须确保有一定数量已经完成训练的历史任务,如果没有足够数量的样本,则不进行评估,保持当前任务继续训练,直到产生足够的评估样本。

若已有足够的历史样本,则先判定当前训练任务在目标步数的预测值是否超过了历史最优表现的阈值,再来决定是否继续训练。

\(Indicatior(y_{pred} > y_{best} * a)\),\(a\) 为阈值系数

 

3 提前停止算法基准测试

我们基于商汤内部的一项目标检测任务,建立了关于超参数搜索优化算法和提前停止算法的基准测试,四种优化算法和两种提前停止算法组合进行了 12 组实验(其中 4 组为仅实用优化算法)。

每种优化算法最高进行 60 次搜索尝试,每个训练任务共 24 Epoch。实验结果显示在使用了提前停止算法的情况下,四种优化算法的搜索时间都得到了显著的降低,两种提前停止算法平均减少了 77% 和 78% 的训练时间,并且不会影响最终的搜索结果,甚至部分实验产生了更好的结果。

 

References

  1. Google Vizier: A Service for Black-Box Optimization, The 23rd ACM SIGKDD International Conference on Knowledge Discovery and Data Mining
  2. Extrapolation_of_Learning_Curves, IJCAI
  3. Random search for hyper-parameter optimization, Journal of Machine Learning Research
  4. 《统计学习方法》, 李航
  5. https://scikit-optimize.github.io
  6. https://zhuanlan.zhihu.com/p/388846455

感谢阅读,欢迎在评论区留言讨论哦~

P.S. 如果喜欢本篇文章,请多多 点赞,让更多的人看见我们 :D

关注 公众号「SenseParrots」,获取人工智能框架前沿业界动态与技术思考。

展开阅读全文
  • 0
    感动
  • 0
    路过
  • 0
    高兴
  • 0
    难过
  • 0
    搞笑
  • 0
    无聊
  • 0
    愤怒
  • 0
    同情
热度排行
友情链接