[机器学习] 超参数优化算法-SuccessiveHalving, BH与BOHB
一 传统优化算法
机器学习中模型性能的好坏往往与超参数(如batch size,filter size等)有密切的关系。最开始为了找到一个好的超参数,通常都是靠人工试错的方式找到"最优"超参数。但是这种方式效率太慢,所以相继提出了网格搜索(Grid Search, GS) 和 随机搜索(Random Search,RS)。
但是GS和RS这两种方法总归是盲目地搜索,所以贝叶斯优化(Bayesian Optimization,BO) 算法闪亮登场。BO算法能很好地吸取之前的超参数的经验,更快更高效地最下一次超参数的组合进行选择。但是BO算法也有它的缺点,如下:
- 对于那些具有未知平滑度和有噪声的高维、非凸函数,BO算法往往很难对其进行拟合和优化,而且通常BO算法都有很强的假设条件,而这些条件一般又很难满足。
- 为了解决上面的缺点,有的BO算法结合了启发式算法(heuristics),但是这些方法很难做到并行化
二 多保真优化--Multi Fidelity Optimization
在自动机器学习(Automatic Machine Learning, AutoML)任务中评价往往通过 k 折交叉验证获得,在大数据集的机器学习任务上,获得一个评价的时间代价巨大
。这也影响了优化算法在自动机器学习问题上的效果。所以一些减少评价代价
的方法被提出来,其中多保真度优化(Multi-Fidelity Optimization)[1]就是其中的一种。而多臂老虎机算法(Multi-armed Bandit Algorithm, MBA)是多保真度算法的一种。在此基础上,有两种主流的bandit-based
优化策略:
在贝叶斯方法中,目标函数的估计非常昂贵。 有没有更便宜的方法来估计目标函数? 多保真优化方法就是答案。 我会告诉你:
- Successive Halving (SH) 连续减半
- Hyperband (HB)
- BOHB
1. SuccessiveHalving算法
SuccessiveHalving算法:假设有nn组超参数组合,然后对这nn组超参数均匀地分配预算并进行验证评估,根据验证结果淘汰一半表现差的超参数组,然后重复迭代上述过程直到找到最终的一个最优超参数组合。
连续减半试图为最有前途的方法提供最多的预算。 它假设所有配置都可以提前停止并且可以获得验证分数。
想象一下,您有 N 个不同的配置和 B个预算(例如时间)。 在每次迭代中,如下图所示,连续减半保留了最好的一半配置,并丢弃了一半不好的算法。 它将一直持续到我们只有一个配置。 此方法将在达到其预算的最大值时完成。
连续减半最初是在 Non-stochastic Best Arm Identification and Hyperparameter Optimization 由 Kevin Jamieson 和 Ameet Talwalkar 撰写的
在连续减半策略中, 我们将评价代价
参数化为一个变量budget
,即预算。根据BOHB论文的阐述,我们可以根据不同的场景定义不同的budget,举例如下:
迭代算法的迭代数(如:神经网络的epoch、随机森林,GBDT的树的个数)
机器学习算法所使用的样本数
贝叶斯神经网络中MCMC链的长度
深度强化学习中的尝试数
举例说明,我们定义budgetmax=1, budgetmin=18, η=2 (eta
= 2) 。在这里budget
的语义表示使用100×budget%的样本。
首先我们从配置空间(或称为超参空间)随机采样8个配置,实例化为8个机器学习模型。
然后用1/8的训练样本训练这8个模型并在验证集得到相应的损失值。
保留这8个模型中loss最低的前4个模型,其余的舍弃。
依次类推,最后仅保留一个模型,并且其
budget=1
(可以用全部的样本进行训练)
2. Hyperband算法
连续减半有什么问题?
在连续减半中,我们需要在开始时选择多少配置和需要多少削减之间进行权衡。
1.Hyperband是什么
Hyperband 是随机搜索的一种变体,但使用一些 探索-利用 理论来为每种配置找到最佳时间分配。 您可以查看此 研究论文 以获取更多参考。
在介绍Hyperband之前我们需要理解怎样的超参数优化算法才算是好的算法,如果说只是为了找到最优的超参数组合而不考虑其他的因素,那么我们那可以用穷举法,把所有超参数组合都尝试一遍,这样肯定能找到最优的。但是我们都知道这样肯定不行,因为我们还需要考虑时间,计算资源等因素。而这些因素我们可以称为Budget,用
[机器学习] 超参数优化算法-SuccessiveHalving, BH与BOHB相关推荐
- [机器学习]超参数优化算法-SuccessiveHalving与Hyperband
一 传统优化算法 机器学习中模型性能的好坏往往与超参数(如batch size,filter size等)有密切的关系.最开始为了找到一个好的超参数,通常都是靠人工试错的方式找到"最优&qu ...
- Python 机器学习 | 超参数优化 黑盒(Black-Box)非凸优化技术实践
文章目录 一.关键原理 二.Python 实践 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一.关键原理 为什么要做超参数优化? 机器学习建模预测时,超参数是用 ...
- [机器学习] 超参数优化介绍
很多算法工程师戏谑自己是调参工程师,因为他们需要在繁杂的算法参数中找到最优的组合,往往在调参的过程中痛苦而漫长的度过一天.如果有一种方式可以帮助工程师找到最优的参数组合,那一定大有裨益,贝叶斯超参优化 ...
- [机器学习]超参数优化---贝叶斯优化(Bayesian Optimization) 理解
背景 很多算法工程师戏谑自己是调参工程师,因为他们需要在繁杂的算法参数中找到最优的组合,往往在调参的过程中痛苦而漫长的度过一天.如果有一种方式可以帮助工程师找到最优的参数组合,那一定大有裨益,贝叶斯超 ...
- tensorflow官方Blog-使用Keras Tuner超参数优化框架 进行超参数调整 ,具体实现版本
文章目录 进入正题,keras tuner超参数优化框架 模型构建def build_model(hp): 实例化tuner 加载数据集,进行超参数搜索tuner.search() 找到最佳的模型tu ...
- 超参数优化 贝叶斯优化框架_10个超参数优化框架
超参数优化 贝叶斯优化框架 Tune your Machine Learning models with open-source optimization libraries 使用开源优化库调整机器学 ...
- 【机器学习】算法模型自动超参数优化方法
什么是超参数? 学习器模型中一般有两类参数,一类是可以从数据中学习估计得到,我们称为参数(Parameter).还有一类参数时无法从数据中估计,只能靠人的经验进行设计指定,我们称为超参数(Hyper ...
- 全网最全:机器学习算法模型自动超参数优化方法汇总
什么是超参数? 学习器模型中一般有两类参数,一类是可以从数据中学习估计得到,我们称为参数(Parameter).还有一类参数时无法从数据中估计,只能靠人的经验进行设计指定,我们称为超参数(Hyper ...
- 机器学习模型的超参数优化 | 原力计划
作者 | deephub 责编 | 王晓曼 出品 | CSDN博客 头图 | CSDN付费下载自东方IC 引言 模型优化是机器学习算法实现中最困难的挑战之一.机器学习和深度学习理论的所有分支都致力于模 ...
最新文章
- C语言基础知识【常量】
- Eclipse中用户库的使用
- JAVA程序员面试32问(答案)
- ios UIPickerView 技巧集锦
- Qt工作笔记-主界面传输数据到附属界面(通过信号与槽非构造函数)
- npm收录了哪些包_手把手教你制作一个小而美丽的 npm 包并发布
- atomic原子类实现机制_反射机制实现两个类的复制
- mysql 刚安装完的用户_mysql 离线安装后用户初始化
- 通过angularjs的directive以及service来实现的列表页加载排序分页
- JavaWeb面试题1
- 三阶科赫雪花PYTHON
- Java发送短信验证码
- qt在表格中如何画线_Qt如何在表格中显示和编辑数据
- PHP编写modbus,php – CRC-CCITT转CRC16 Modbus实现
- 元宇宙持续火爆,这些问题值得思考和警惕!
- 异常图标导致转码失败
- 幻核关停,腾讯折戟数藏
- Vivado使用技巧(22):综合策略与设置的选择
- jsp文件的上传与下载
- CUMT2022密码学考试