文章目录

  • Ⅰ.Grid Search/Random Search
  • Ⅱ.Bayesian Optimization

Ⅰ.Grid Search/Random Search

Grid Search:神经网络训练由许多超参数决定,例如网络深度、学习率、卷积核大小等等。为了找到一个最好的超参数组合,最直观的想法就是Grid Search, 其实也就是穷举搜索。

Random Search:为了提高搜索效率,提出随机搜索。虽然随机搜索得到的结果互相之间差异较大,但是实验证明随机搜索的确比网格搜索效果要好

Ⅱ.Bayesian Optimization

贝叶斯优化的大体思路:

假设一组超参数组合是 X=x1,x2,...,xnX = x_1,x_2, ...,x_nX=x1​,x2​,...,xn​, 贝叶斯优化假设超参数与需要优化的损失函数存在一个函数关系。

假设函数f:x→R,我们需要在x⊂X内找到\ f :x → R, 我们需要在 x \subset X内找到 f:x→R,我们需要在x⊂X内找到
x∗=argminx∈Xf(x)(1)x^* =\mathop{argmin}\limits_{x \in X}f(x) \qquad (1) x∗=x∈Xargmin​f(x)(1)
详细算法:
Sequential model-based optimization(SMBO)
Input:f,X,S,M\ {Input: f, X, S, M} Input:f,X,S,M
D←InitSamples(f,X)D \leftarrow InitSamples(f, X)D←InitSamples(f,X)
fori←∣D∣toTdo:for \quad i \leftarrow |D| \quad to\quad T \quad do :fori←∣D∣toTdo:
p(y∣x,D)←FitModel(M,D)\qquad p(y|x, D) \leftarrow FitModel(M,D)p(y∣x,D)←FitModel(M,D)
xi←argmaxx∈XS(x,p(y∣x,D))\qquad x_i \leftarrow \mathop{argmax}\limits_{x \in X}S(x, p(y|x, D))xi​←x∈Xargmax​S(x,p(y∣x,D))
yi←f(xi)▹Expensivestep\qquad y_i \leftarrow f(x_i) \quad \triangleright Expensive \ stepyi​←f(xi​)▹Expensive step
D←D∪(xi,yi)\qquad D \leftarrow D\cup (x_i,y_i)D←D∪(xi​,yi​)
endforend \ forend for

<1>.Input:
fff: 就是所谓的黑盒子,即输入一组超参数;得到一个输出值。
XXX: 超参数搜索空间。
DDD: 表示一个由若干对数据组成的数据集,每一对数组表示为(x,y),x(x,y),x(x,y),x是一组超参数, yyy表示该组超参数对应的结果。
SSS:是Acquisition Function(采集函数) ,这个函数的作用是用来选择 xxx
MMM: 是对数据集D进行拟合得到的模型,可以用来假设的模型有很多种,例如随机森林,Tree Parzen Estimators, 高斯模型。

<2>.D←InitSamples(f,X)D \leftarrow InitSamples(f,X)D←InitSamples(f,X)
这一步骤就是初始化获取数据集 D=(x1,y1),...,(xn,yn),D = (x_1, y_1), ..., (x_n, y_n),D=(x1​,y1​),...,(xn​,yn​),其中yi=f(xi)y_i = f(x_i)yi​=f(xi​)。

<3>.循环选参数T次
因为每次选出参数xxx后都需要计算f(x)f(x)f(x), 消耗大量资源,所以一般需要固定选参次数(或者是函数评估次数)。
p(y∣x,D)←FitModel(M,D)p(y|x,D) \leftarrow FitModel(M, D)p(y∣x,D)←FitModel(M,D)
首先我们预先假设了模型MMM服从高斯分布, 且已知了数据集DDD, 所以可以通过计算得出模型的具体函数表示。

高斯分布如何计算?
假设模型f∼GP(μ,K)(GP:高斯过程,μ:均值,K:协方差kernel)f \sim GP(\mu, K) \quad (GP:高斯过程, \mu: 均值, K:协方差kernel)f∼GP(μ,K)(GP:高斯过程,μ:均值,K:协方差kernel), 所以预测也是服从正态分布的,即 p(y∣x,D)=N(y∣μ^,σ^2)p(y|x, D) = N(y|\hat{\mu}, \hat{\sigma}^{2})p(y∣x,D)=N(y∣μ^​,σ^2)
y=(yi...yi)T\mathbf{y} = (y_i ... y_i)^{T}y=(yi​...yi​)T
μ^=k(x)T(K+σn2I)−1y\hat{\mu} = \mathbf{k(x)}^{T}(\mathbf{K} + \sigma_n^{2}\mathbf{I})^{-1}\mathbf{y}μ^​=k(x)T(K+σn2​I)−1y
σ^2=K(x1x)−k(x)T(K+σn2I)−1k(x)\hat{\sigma}^{2} = \mathbf{K}(x_1x) - \mathbf{k}(x)^{T}(\mathbf{K} + \sigma_n^{2}\mathbf{I})^{-1}\mathbf{k}(\mathbf{x})σ^2=K(x1​x)−k(x)T(K+σn2​I)−1k(x)

<4>.xi←argmaxx∈XS(x,p(y∣x,D))x_i \leftarrow \mathop{argmax}\limits_{x \in X}S(x, p(y|x, D))xi​←x∈Xargmax​S(x,p(y∣x,D))
假设的模型计算出来之后,在此模型的基础上选择满足公式(1)的参数,也就是选择xxx。通过Acquisition Function 来选择。

Acquisition Function
1) Probability of improvement
假设f′=minff^{'} = min ff′=minf。
定义utility function如下:
u(x)={0,iff(x)>f′1,iff(x)≤f′u(x) = \left\{ \begin{array}{rcl} 0, & & {if f(x) > f}' \\ 1, & & {if f(x) \leq f'} \end{array} \right. u(x)={0,1,​​iff(x)>f′iff(x)≤f′​
probability of improvement acquisition function 定义为the expected utility as a function of x:
aPI=E[u(x)∣x,D]=∫−∞f′N(f;μ(x),K(x,x))df=Φ(f′;μ(x),K(x,x))a_{PI} = E[u(x)|x, D] = \int_{-\infty}^{f'} N(f; \mu(x),K(x,x))df \\[8pt] = \Phi(f'; \mu(x), K(x,x)) aPI​=E[u(x)∣x,D]=∫−∞f′​N(f;μ(x),K(x,x))df=Φ(f′;μ(x),K(x,x))
求出a(x)a(x)a(x) 的最大值即可求出基于高斯分布的满足要求的 xxx。

2)Expected improvement
上面的AC function 有个缺点就是找到的 xxx 可能是局部最优点,所以有了Expected improvement。
f′=minff' = min ff′=minf
utility function定义如下:
u(x)=max(0,f′−f(x))u(x) = max(0, f'-f(x))u(x)=max(0,f′−f(x))
AC function 定义如下:
aEI=E[u(x)∣x,D]=∫−∞f′(f′−f)N(f;μ(x),K(x,x))df=(f′−μ(x))Φ(f′;μ(x),K(x,x))+K(x,x)N(f′;μ(x),K(x,x))a_{EI} = E[u(x)|x, D] = \int_{-\infty}^{f'}(f' - f)N(f; \mu(x), K(x, x))df \\[8pt] =(f' - \mu(x))\Phi(f'; \mu(x), K(x, x)) + K(x, x)N(f'; \mu(x), K(x,x)) aEI​=E[u(x)∣x,D]=∫−∞f′​(f′−f)N(f;μ(x),K(x,x))df=(f′−μ(x))Φ(f′;μ(x),K(x,x))+K(x,x)N(f′;μ(x),K(x,x))
通过计算使得aEIa_{EI}aEI​值最大的点即为最优点。
上式有两个组成部分,使得上式最大则需要同时优化左右两个部分:
左边需要尽可能的减少μ(x)\mu(x)μ(x)
右边需要尽可能的增大方差(或协方差)K(x,x)K(x,x)K(x,x)
但二者不能同时满足,这是一个exploration tradeoff

3)Entropy search
u(x)=H[x∗∣D]−H[x∗∣D,x,f(x)]u(x) = H[x^*|D] - H[x^*|D, x, f(x)] u(x)=H[x∗∣D]−H[x∗∣D,x,f(x)]

4)Upper confidence bound
aUCB(x;β)=μ(x)−βσ(x)σ(x)=K(x,x)a_{UCB}(x;\beta) = \mu(x) - \beta\sigma(x) \\[10pt] \sigma(x) = \sqrt{K(x,x)} aUCB​(x;β)=μ(x)−βσ(x)σ(x)=K(x,x)​

<5>.yi←f(xi)y_i \leftarrow f(x_i)yi​←f(xi​)
通过上述步骤选出了一组超参数xix_ixi​, 下一步将超参数带入网络中去进行训练, 最后得到输出yiy_iyi​

<5>.D←D∪(xi,yi)D \leftarrow D \cup(x_i, y_i)D←D∪(xi​,yi​) 更新数据集

超参数优化之贝叶斯优化(Bayesian Optimization)相关推荐

  1. 自动机器学习超参数调整(贝叶斯优化)

    [导读]机器学习中,调参是一项繁琐但至关重要的任务,因为它很大程度上影响了算法的性能.手动调参十分耗时,网格和随机搜索不需要人力,但需要很长的运行时间.因此,诞生了许多自动调整超参数的方法.贝叶斯优化 ...

  2. python 超参数_完整介绍用于Python中自动超参数调剂的贝叶斯优化

    完整介绍用于Python中自动超参数调剂的贝叶斯优化-1.jpg (109.5 KB, 下载次数: 0) 2018-7-4 23:45 上传 调剂机器学习超参数是一项繁琐但至关重要的任务,因为算法的性 ...

  3. python实现贝叶斯优化_贝叶斯优化的并行实现

    python实现贝叶斯优化 The concept of 'optimization' is central to data science. We minimize loss by optimizi ...

  4. xgboost参数_具有贝叶斯优化的XGBoost和随机森林

    作者 | Edwin Lisowski 编译 | CDA数据分析师 XGBoost and Random Forest with Bayesian Optimisation 在这篇文章中,我们将介绍带 ...

  5. 超参数优---贝叶斯优化及其改进(PBT优化)

    目录 参考文献: 简介 贝叶斯优化方法为什么好 贝叶斯优化的适用条件 贝叶斯优化的历史与在神经网络中的应用 贝叶斯优化基本原理与流程 贝叶斯优化的经典变种及其文章 Python中的贝叶斯优化库 贝叶斯 ...

  6. python贝叶斯优化算法_【干货】手把手教你Python实现自动贝叶斯调整超参数

    [导读]机器学习中,调参是一项繁琐但至关重要的任务,因为它很大程度上影响了算法的性能.手动调参十分耗时,网格和随机搜索不需要人力,但需要很长的运行时间.因此,诞生了许多自动调整超参数的方法.贝叶斯优化 ...

  7. 用贝叶斯优化的方法优化xgboost的参数

    除了我们平常所做的网格搜索,随机搜索外,我发现贝叶斯优化的方法挺不错,然后我就尝试了一下,发现效果挺好的,我这里把我的代码分享出来: 贝叶斯优化通过基于目标函数的过去评估结果建立替代函数(概率模型), ...

  8. 使用贝叶斯优化工具实践XGBoost回归模型调参

    0. 关于调参 0.1. 超参数 在机器学习的上下文中,超参数(hyper parameters)是在开始学习过程之前设置值的参数,而不是通过训练得到的参数数据.通常情况下,需要对超参数进行优化,给学 ...

  9. 贝叶斯优化python包_《用贝叶斯优化进行超参数调优》

    TPE CMAES 网格搜索 随机搜索 贝叶斯优化 用贝叶斯优化进行超参数调优 @QI ZHANG · JUL 12, 2019 · 7 MIN READ 超参数调优一直是机器学习里比较intract ...

最新文章

  1. 数据治理的理论实践与发展趋势
  2. 数据结构源码笔记(C语言):堆排序
  3. solr源码分析之数据导入DataImporter追溯。
  4. 算法模板-对称性递归
  5. HTTP的长链接和短链接说明
  6. ASP.NET Core 实战:使用ASP.NET Core Web API 和 Vue.js 搭建前后端分离项目
  7. DS博客大作业--树(李天明组)
  8. 大数据分析的目的与意义
  9. 尝鲜ESXi7.0,手工注入LSI MegaRAID 9260-8i驱动,封装iso安装文件
  10. 微信聊天记录生成词云图
  11. 啥是各向同性、各向异性GNN:
  12. Gilbert Elliot丢包模型
  13. 开源生态研究与实践| ChinaOSC
  14. 使用交易API将产品添加到您的eBay商店
  15. Python 中iterator
  16. 基于java愤怒的小鸟游戏的设计与实现
  17. matlab app designer使用心得
  18. 目标检测:CenterNet论文解读及代码详解
  19. 小甲鱼Python第二十三讲、第二十四讲(递归-这帮小兔崽子、汉诺塔)
  20. 2004年7月15日

热门文章

  1. [Vijos1579]宿命的PSS
  2. LinkLib例子之十:Hi3531D UI,触屏界面开发
  3. 19999 元的小米 MIX Alpha,有哪些亮点和不足?
  4. 写给Android工程师的协程指南
  5. Kotlin 开篇之基础语法篇
  6. ar 微信小程序_【看一看案例集】AR+微信小程序(1):认识篇
  7. pygame实现贪吃蛇
  8. /WEN-INF/jsp文件夹下文件不能直接访问--20180209第一篇
  9. php system函数用法,system函数如何使用?总结system函数实例用法
  10. 猿创征文|Android开发入门工具的那些事儿