【转载】AutoML--超参数调优之Bayesian Optimization
优化器是机器学习中很重要的一个环节。当确定损失函数时,你需要一个优化器使损失函数的参数能够快速有效求解成功。优化器很大程度影响计算效率。越来越多的超参数调整是通过自动化方式完成,使用明智的搜索在更短的时间内找到最佳超参组合,无需在初始设置之外进行手动操作。
贝叶斯优化(Bayesian Optimization)是基于模型的超参数优化,已应用于机器学习超参数调整,结果表明该方法可以在测试集上实现更好的性能,同时比随机搜索需要更少的迭代。此外,现在有许多Python库可以为任何机器学习模型简化实现贝叶斯超参数调整。
1. 超参数是什么?
- 在模型开始学习过程之前人为设置值的参数,而不是(像bias、weights)通过训练可得到的参数数据。
- 这些参数定义关于模型更高层次的概念(模型复杂性、学习能力等)。
- 比如说随机梯度下降算法中的学习速率/learning rate,出于计算复杂度和算法效率等,我们并不能从数据中直接学习一个比较不错的学习速度。但学习速率却又是十分重要的,较大的学习速率不易令模型收敛到较合适的较小值解,而较小的学习速率却又常常令模型的训练速度大大降低。对于像学习速率这样的超参数,我们通常需要在训练模型之前设定。因此,对于超参数众多的复杂模型,调超参技能显得很重要。
2. 常用的调超参方法有哪些?
1.Grid Search 网格搜索/穷举搜索
- 搜索整个超参数空间,在高维空间容易遇到维度灾难,不实用。
- 网格搜索是一种昂贵的方法。假设我们有n个超参数,每个超参数有两个值,那么配置总数就是2的N次方。因此,仅在少量配置上进行网格搜索是可行的。
- 网格搜索可以并行化,使得网格搜索在足够的计算能力下更加可行。
- 每次trial之间是相互独立的,不能利用先验知识选择下一组超参数。
2.Random Search 随机搜索
- 稀疏的简单抽样,试验之间是相互独立的,不能利用先验知识选择下一组超参数。
- 超参通过并行选择,但试验次数要少得多,而性能却相当。一些超参可能会产生良好的性能,另一些不会。
3.Heuristic Tuning 手动调参
- 经验法,耗时长。
4.Automatic Hyperparameter Tuning 自动超参数调优
- 自动超参数调整形成了关于超参数设置和模型性能之间关系的知识,能利用先验知识选择下一组超参数。
- 首先在多个配置中收集性能,然后进行一些推断并确定接下来要尝试的配置。目的是在找到最佳状态时尽量减少试验次数。
- 这个过程本质上是顺序的,不容易并行化。
调整超参数的大多数方法都属于基于顺序模型的全局优化(SMBO)。这些方法使用代理函数来逼近真正的黑盒函数。SMBO的内部循环是对该替代品的优化,或者对代理进行某种转换。最大化此代理的配置将是下一个应该尝试的配置。SMBO算法在优化替代品的标准以及他们根据观察历史对替代品进行建模的方式上有所不同。最近在文献中提出了几种用于超参数的SMBO方法:
- Bayesian Optimization
使用_高斯过程_对代理进行建模,通常优化 Expected Improvement(EI),这是新试验将在当前最佳观察上改进的预期概率。高斯过程是函数的分布。来自高斯过程的样本是整个函数。训练高斯过程涉及将此分布拟合到给定数据,以便生成接近观察数据的函数。使用高斯过程,可以计算搜索空间中任何点的EI。接下来将尝试给出最高的EI。贝叶斯优化通常为连续超参数(例如learning rate, regularization coefficient…)提供 non-trivial/off-the-grid 值,并且在一些好的数据集上击败人类表现。Spearmint是一个众所周知的贝叶斯优化实现。 - SMAC
使用_随机森林_对目标函数进行建模,从随机森林认为最优的区域(高EI)中抽取下一个点。 - TPE
是SMAC的改进版本,其中两个分离的模型用于模拟后验。众所周知的TPE实现是hyperopt。
- Bayesian Optimization
3. 概念解释
- 高斯过程
上图里那么多线就是高斯过程的体现。
要使用贝叶斯优化,需要一种能灵活地在目标函数上建立分布的方法。这比在实数上建立分布更棘手,因为我们需要一个这样的分布来表示我们对每个x的f(x)的信念。如果x包含连续的超参数,那么我们必须为f(x)建模无限多的x,即构造它的分布。对于这个问题,高斯过程是一种优雅的方法。实际上,高斯过程生成多维高斯分布,并且存在足够灵活以模拟任何目标函数的模样。
- Prior Function 先验函数
基于概率分布,用于描述目标函数的分布,拟合目标函数曲线。不同的分布,PF不同,效果是不一样的。 - Acquisition Function 收获函数 = max(mean + var)
用于从候选集中选择一个新的点。贝叶斯优化的效果与AF的设计有较大的关系,由于此类function可能陷入局部最优解,因此在选点时,需考虑不能过早进入局部最优。AF计算EI,用来选择下一个采样点。- mean均值大:
多去采样这些点会帮助我们更好的了解这个函数形态。 - var方差大:
表示我们对该点的了解甚少。
- mean均值大:
- 采样点
每一个采样点就是原理解析里的黑点。每个采样点是基于前面n个点的多变量高斯分布的假设以及最大化AF而得到的,现目前为止认为的y的最大值最可能出现的位置。- 一开始,采样数据少,算法会采标准差大的点。采样一定数目后,标准差的值会下降很多,此时采样点的选择就更多的受到均值的影响,采样点就更大概率的出现在真正最大值附近。
4. Bayesian Optimizer 原理解析
贝叶斯优化基于高斯过程。
- 上图2个evaluations黑点,是两次评估后显示替代模型的初始值估计,会影响下一个点的选择,穿过这两个点的曲线可以画出非常多条,如上上图
- 红色虚线曲线是实际真正的目标函数
- 黑色实线曲线是代理模型的目标函数的均值
- 灰色区域是代理模型的目标函数的方差
- 只有两个点,拟合的效果稍差,根据下方的紫色的EI曲线,最左侧的最大值EI为下一个点
- 3个evaluations黑点
- 灰色区域是代理模型的目标函数的方差,黑点越多,灰色区域面积越小,误差越小
- 根据下方的紫色的EI曲线,左侧的最大值EI为第四个拟合点
- 4个evaluations黑点
- 黑点越多,灰色区域面积越小,误差越小,代理模型越接近真实模型的目标函数
- 根据下方的紫色的EI曲线,最大值EI为第五个拟合点,同理类推…
- 8个黑点
- 黑色代理曲线已经十分接近红色真实目标函数,灰色区域也越来越小,拟合效果不错。
5. Bayesian Optimizer 基本思想
一句话总结:建立目标函数的概率模型,并用它来选择最有希望的超参数来评估真实的目标函数。
基本思想是:利用先验知识逼近未知目标函数的后验分布从而调节超参。花一点时间选择下一个超参数,以减少对目标函数的调用。
- 建立代理模型的目标函数(Prior Function/先验函数)
- 找到在代理上表现最佳的超参数(利用EI值,根据Acquisition Function得出EI)
- 将这些超参数应用于真正的目标函数
- 更新包含新结果的代理模型
- 重复步骤2-4,直到达到最大迭代次数或时间
基于顺序模型的优化方法(SMBO)是贝叶斯优化的形式化。顺序是指一个接一个地运行试验,每次通过应用贝叶斯推理和更新概率模型(代理)来尝试更好的超参数。
6. Bayesian Optimizer 在python中的包
Python中有几个贝叶斯优化库,它们在目标函数的代理算法上有所不同。
- Spearmint(高斯过程代理)
- SMAC(随机森林回归)
- Hyperopt(Tree Parzen Estimator-TPE)
7. Bayesian Optimizer 优点
- 能利用先验知识高效地调节超参数,每个试验不独立,前一个推动下一个选择
- 通过减少计算任务而加速寻找最优参数的进程
- 不依赖人为猜测所需的样本量为多少,优化技术基于随机性,概率分布
- 在目标函数未知且计算复杂度高的情况下极其强大
- 通常适用于连续值的超参,例如 learning rate, regularization coefficient
- 在测试集表现优秀于手工调参结果,泛化性/鲁棒性好
- 不易陷入局部最优:
EI的计算根据 Acquisition Function收获函数计算所得:- 探索和开发是解释现象和优化算法的常用术语。
- 对于贝叶斯优化,一旦找到局部最优解,会在这个区域不断采样,很容易陷入局部最优。为了减轻这个,贝叶斯优化会使用“ 收获函数Acquisition Function ” 来平衡“探索”和“开发”,下一个点的选择要在这两者之间存在权衡。
- 下一个选择点(x)应该具有高均值(开发)和高方差(探索)。
8. 其他优秀文章与论文链接
【转载】AutoML--超参数调优之Bayesian Optimization的更多相关文章
- 【深度学习篇】--神经网络中的调优一,超参数调优和Early_Stopping
一.前述 调优对于模型训练速度,准确率方面至关重要,所以本文对神经网络中的调优做一个总结. 二.神经网络超参数调优 1.适当调整隐藏层数对于许多问题,你可以开始只用一个隐藏层,就可以获得不错的结果,比 ...
- 评价指标的局限性、ROC曲线、余弦距离、A/B测试、模型评估的方法、超参数调优、过拟合与欠拟合
1.评价指标的局限性 问题1 准确性的局限性 准确率是分类问题中最简单也是最直观的评价指标,但存在明显的缺陷.比如,当负样本占99%时,分类器把所有样本都预测为负样本也可以获得99%的准确率.所以,当 ...
- Spark2.0机器学习系列之2:基于Pipeline、交叉验证、ParamMap的模型选择和超参数调优
Spark中的CrossValidation Spark中采用是k折交叉验证 (k-fold cross validation).举个例子,例如10折交叉验证(10-fold cross valida ...
- Bayesian Optimization使用Hyperopt进行参数调优
超参数优化 Bayesian Optimization使用Hyperopt进行参数调优 1. 前言 本文将介绍一种快速有效的方法用于实现机器学习模型的调参.有两种常用的调参方法:网格搜索和随机搜索.每 ...
- Hbase记录-client访问zookeeper大量断开以及参数调优分析(转载)
1.hbase client配置参数 超时时间.重试次数.重试时间间隔的配置也比较重要,因为默认的配置的值都较大,如果出现hbase集群或者RegionServer以及ZK关掉,则对应用程序是灾难性的 ...
- XGBoost参数调优完全指南(附Python代码)
XGBoost参数调优完全指南(附Python代码):http://www.2cto.com/kf/201607/528771.html https://www.zhihu.com/question/ ...
- Spark机器学习——模型选择与参数调优之交叉验证
spark 模型选择与超参调优 机器学习可以简单的归纳为 通过数据训练y = f(x) 的过程,因此定义完训练模型之后,就需要考虑如何选择最终我们认为最优的模型. 如何选择最优的模型,就是本篇的主要内 ...
- XGBoost参数调优
XGBoost参数调优 http://blog.csdn.net/hhy518518/article/details/54988024 摘要: 转载:http://blog.csdn.NET/han_ ...
- JBOSS参数调优
阅读目录 JBOSS参数调优 jvm调优讲解1 JVM调优讲解2 JVM常见配置汇总 JBOSS生产环境下JVM调优 JBOSS瘦身 JBoss性能优化:内存紧张的问题终于解决了(转载)--- ...
随机推荐
- Java封装、继承整理
封装 3.1封装概念: 提高代码复用性 隐藏实现细节,对外访问提供公共接口 提高安全型 3.2封装举例 机箱就是隐藏实现细节,提供了公共的访问接口 3.3私有private 一般对成员属性的访问动作: ...
- u-boot(一)启动简介
目录 u-boot(一)启动简介 启动概述 内部存储布局 Bootloader概述 内核启动参数 taggedlist 体验一下实际的Uboot U-boot的使用帮助 U-boot基本要求 titl ...
- 《Go并发编程实战》读书笔记-初识Go语言
<Go并发编程实战>读书笔记-初识Go语言 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在讲解怎样用Go语言之前,我们先介绍Go语言的特性,基础概念和标准命令. 一. ...
- Kafka技术内幕 读书笔记之(二) 生产者——新生产者客户端
消息系统通常由生产者(producer ). 消费者( consumer )和消息代理( broker ) 三大部分组成,生产者会将消息写入消息代理,消费者会从消息代理中读取消息 . 对于消息代理而言 ...
- WEB网站类型系统中使用的OFFICE控件
WEB下使用的OFFICE控件介绍,另提供一个原创破解首先来个名词解释,Office网络文档控件,就是在网页中编辑office文档的控件(前提是browser已经安装OFFICE).最近一个项目需要用 ...
- Integer与int值的比较
==一般用于比较内存地址,equals()用于比较Object的值,注意int用equals()是会报错的.Integer i=1Integer k=1i.equals(k)=truei==k=tru ...
- ES学习之分片路由
本文主要内容: 1.路由一个文档到一个分片 2.新建.索引和删除请求 3.取回单个文档 4.局部单个文档 5.多文档模式 6.理解一下ES深度分页(from-size)的劣势 路由一个文档到一个分片 ...
- Part-Six
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
- 保存页面数据的场所----Hidden、ViewState、ControlState
1.使用隐藏域Session.Application和Cache都是保存在服务器内存中的.一般来说我们是无权访问客户端的机器,把数据直接保存在客户端的(Cookie是一个例外,不过Cookie只能保存 ...
- Groovy 设计模式 -- 借贷
借贷模式 http://groovy-lang.org/design-patterns.html#_loan_my_resource_pattern The Loan my Resource patt ...
一.前述 调优对于模型训练速度,准确率方面至关重要,所以本文对神经网络中的调优做一个总结. 二.神经网络超参数调优 1.适当调整隐藏层数对于许多问题,你可以开始只用一个隐藏层,就可以获得不错的结果,比 ...
1.评价指标的局限性 问题1 准确性的局限性 准确率是分类问题中最简单也是最直观的评价指标,但存在明显的缺陷.比如,当负样本占99%时,分类器把所有样本都预测为负样本也可以获得99%的准确率.所以,当 ...
Spark中的CrossValidation Spark中采用是k折交叉验证 (k-fold cross validation).举个例子,例如10折交叉验证(10-fold cross valida ...
超参数优化 Bayesian Optimization使用Hyperopt进行参数调优 1. 前言 本文将介绍一种快速有效的方法用于实现机器学习模型的调参.有两种常用的调参方法:网格搜索和随机搜索.每 ...
1.hbase client配置参数 超时时间.重试次数.重试时间间隔的配置也比较重要,因为默认的配置的值都较大,如果出现hbase集群或者RegionServer以及ZK关掉,则对应用程序是灾难性的 ...
XGBoost参数调优完全指南(附Python代码):http://www.2cto.com/kf/201607/528771.html https://www.zhihu.com/question/ ...
spark 模型选择与超参调优 机器学习可以简单的归纳为 通过数据训练y = f(x) 的过程,因此定义完训练模型之后,就需要考虑如何选择最终我们认为最优的模型. 如何选择最优的模型,就是本篇的主要内 ...
XGBoost参数调优 http://blog.csdn.net/hhy518518/article/details/54988024 摘要: 转载:http://blog.csdn.NET/han_ ...
阅读目录 JBOSS参数调优 jvm调优讲解1 JVM调优讲解2 JVM常见配置汇总 JBOSS生产环境下JVM调优 JBOSS瘦身 JBoss性能优化:内存紧张的问题终于解决了(转载)--- ...
封装 3.1封装概念: 提高代码复用性 隐藏实现细节,对外访问提供公共接口 提高安全型 3.2封装举例 机箱就是隐藏实现细节,提供了公共的访问接口 3.3私有private 一般对成员属性的访问动作: ...
目录 u-boot(一)启动简介 启动概述 内部存储布局 Bootloader概述 内核启动参数 taggedlist 体验一下实际的Uboot U-boot的使用帮助 U-boot基本要求 titl ...
<Go并发编程实战>读书笔记-初识Go语言 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在讲解怎样用Go语言之前,我们先介绍Go语言的特性,基础概念和标准命令. 一. ...
消息系统通常由生产者(producer ). 消费者( consumer )和消息代理( broker ) 三大部分组成,生产者会将消息写入消息代理,消费者会从消息代理中读取消息 . 对于消息代理而言 ...
WEB下使用的OFFICE控件介绍,另提供一个原创破解首先来个名词解释,Office网络文档控件,就是在网页中编辑office文档的控件(前提是browser已经安装OFFICE).最近一个项目需要用 ...
==一般用于比较内存地址,equals()用于比较Object的值,注意int用equals()是会报错的.Integer i=1Integer k=1i.equals(k)=truei==k=tru ...
本文主要内容: 1.路由一个文档到一个分片 2.新建.索引和删除请求 3.取回单个文档 4.局部单个文档 5.多文档模式 6.理解一下ES深度分页(from-size)的劣势 路由一个文档到一个分片 ...
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
1.使用隐藏域Session.Application和Cache都是保存在服务器内存中的.一般来说我们是无权访问客户端的机器,把数据直接保存在客户端的(Cookie是一个例外,不过Cookie只能保存 ...
借贷模式 http://groovy-lang.org/design-patterns.html#_loan_my_resource_pattern The Loan my Resource patt ...