在University of Colorado Boulder的ARPG实验室的小白一枚。最近在做贝叶斯优化(Bayesian Optimization)整定相机参数的research. 因为假期赋闲在家,便抽空写写所得。

像我这等小白通常想先看中文文献入门然后再看英文进阶。不过就我在接触这类问题的时候所遇到的问题来看,入门中文教程是几乎没有的。如果想要真正深入地了解贝叶斯优化,看我的博客肯定是不够的,你需要翻墙去Google学术看一些相关的英文文献。但是用我的内容入门之后再去看那些英文文献,想必会简单许多。

在你看了我的文章之后,如果想进一步了解贝叶斯优化,下面的是必读的英文文献。

《A Tutorial on Bayesian Optimization of ExpensiveCost Functions, with Application to Active User Modeling and Hierarchical ReinforcementLearning》Eric Brochu, Vlad M. Cora and Nando de Freitas

《Gaussian Processes for Machine Learning》the MIT Press, 2006

文献2是一本厚厚的书,可以在Google上下载到。肯定无法读完,但是其中的一些部分会非常有帮助。

Matlab 2016 a之后加入了贝叶斯优化的包,位于Statistics and Machine Learning Toolbox 里。在网页http://www.mathworks.com/help/stats/bayesian-optimization-algorithm.html 里又matlab关于贝叶斯优化的介绍。

另外贝叶斯优化也有相应的c++包和python包,读者可自行google寻找。

在网页http://www.360doc.com/content/16/1016/23/1067368_598974485.shtml 里有更浅显的关于贝叶斯优化的中文介绍,入门可以一读。

另外在网页http://www.cnblogs.com/hxsyl/p/5229746.html 里也有浅显的关于高斯过程(Gaussian Process,简称GP)的介绍,入门可以一读。

下面进入正题。 什么是贝叶斯优化?贝叶斯优化其实就是在函数方程不知的情况下根据已有的采样点预估函数最大值的一个算法。该算法假设函数符合高斯过程(GP). GP是多变量高斯分布(Multivariate Gaussian Distribution)的一个延伸(我应该会抽空写一章节讲解多变量高斯分布在Bayesian Optimization里的应用). 我们都清楚一个随机变量符合正态分布时它的方差,均值,分布函数等概念。当两个即以上变量仍服从正态分布,并且这些个随机变量之间有一定影响时,我们称这是多变量高斯分布。当无穷多变量他们之间的任意都符合多变量高斯分布时,可以看作是高斯过程。而这些变量都可以看作是某个函数上的采样点,所以我们说整个函数符合高斯过程。

贝叶斯优化会选取未知函数的中数个已知点,作为先验(prior),假设这些点是GP中的一部分,即他们服从多变量高斯分布。根据多变量高斯分布的一些性质,可以计算出这些点中每一个点的均值(mean)和方差(variance) 。我们不知道函数是什么,但是我们可以获得函数不同自变量下的因变量。举个栗子,假设我们有y=-x*x函数,然而我们并不知道它是这个样子,我们知道的是x=1,2,3..10所对应的y的值。如果我们想要的话,我们也可以找到x=1.5,2.5..时对应的y的值。我们取x=1,2,3..10作为prior, 获得对应的y值。 同样,如果我们能决定下一个采样点,与前面已经有的点“拼接”成更高维度的一个多变量高斯分布,我们也能计算出这个点的均值和方差。我们通过最大化收获函数(Acquisition Function,我并没有发现谁翻译这个Acquisition Function,自己随意译的,以后简称AF)来获得哪个采样点作为下一个采样点。

我们为什么要找下一个采样点呢?贝叶斯优化的目的是找到当x等于某个值的时候y得到最大. 我们随机选取的10个点x=1..10里很可能没有包含那个值(对y=x*x来说就是0),那么我们需要找下一个点x, 获得其对应的采样点y. 这“下一个x”,是基于我们对前面10个点的多变量高斯分布的假设以及最大化AF而得到的,现目前为止我们认为的y的最大值最可能出现的位置(恩,,个人认为这句话我还是总结得比较好的,,)。比如现在我们找到x=0.8为“下一个x”, 那么现在我们就有11个采样点,x=0.8,1,2...10 和他们对应的y值。这时候这11个点服从多变量高斯分布,我们再次最大化AF(每一次最大化AF,都需要多变量高斯分布的信息),得到"下一个x",如x=0.5,经过一定数量的迭代,我们可能可以得到最大点在x=0.1之类。

算法简化

选取m个点x1,..xm作为prior,假设他们服从多变量高斯分布

for t=1,2...n do

最大化AF求得下一个采样点x0

采样目标函数位于x0处的值y0

假设x0,x1....xm服从多变量高斯分布

我们提到了Acquisition Function那么多次了,那么什么是Acquisition Function呢?我们已经说AF是用来寻找下一个x的。但是AF不止一种,通常有下面几种

Improvement-based acquisition functions

expected improvement acquisition function

Confidence bound criteria acquisition function

(有更多种类,但这是最基本的三种)

在我最开始介绍的资料里,http://www.360doc.com/content/16/1016/23/1067368_598974485.shtml  提到的AF为第三种。第二种Acquisition Function是第一种的延伸,并且应用更为多。我应该会专门用一个章节介绍AF,下面只简要提及其中第一种,improvement based AF.

formula 1

式子中的phi()是标准正态分布的累积分布函数(输入公式实在是不方便,phi即是第三式子括号外那东东),属于高中内容,大家应该很熟悉,或者百度回想一下就知道了. u(x)是我们想要的下一个x的均值,分母为其对应的方差,f(x+)是我们先验中采样点中均值最大的采样点的均值。从这里我们可以简单了解到要想最大化AF,即最大化IP,我们需要先验中(先前假设的多变量高斯分布)的信息,即x+。 这就是为什么我在前面说我们找到的"下一个x"是基于我们多变量高斯分布和最大化AF共同得到的了。

下一篇文章介绍多变量高斯分布和它在贝叶斯优化中的应用

发现CSDN显示不出我上传的图片,我会在新浪博客发表这些内容

稍微深入地介绍贝叶斯优化相关推荐

  1. 随机森林算法及贝叶斯优化调参Python实践

    1. 随机森林算法 1.1. 集成模型简介 集成学习模型使用一系列弱学习器(也称为基础模型或基模型)进行学习,并将各个弱学习器的结果进行整合,从而获得比单个学习器更好的学习效果. 集成学习模型的常见算 ...

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

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

  3. 贝叶斯优化调参-Bayesian optimiazation原理加实践

    随着机器学习用来处理大量数据被广泛使用,超参数调优所需要的空间和过程越来越复杂.传统的网格搜索和随即搜索已经不能满足用户的需求,因此方便快捷的贝叶斯优化调参越来越受程序员青睐. 1.贝叶斯优化原理介绍 ...

  4. ​独家 | 一文读懂贝叶斯优化

    作者:Apoorv Agnihotri,Nipun Batra 翻译:王雨桐 校对:张一然 本文约6200字,建议阅读10+分钟. 本文将贝叶斯优化拆解为易于理解的小部分. 许多现代的机器学习算法都涉 ...

  5. 暴力调参——GridSearchCV、RandomizedSearchCV、贝叶斯优化

    https://blog.csdn.net/juezhanangle/article/details/80051256 http://www.360doc.com/content/18/0707/15 ...

  6. 贝叶斯优化(BayesianOptimization)

    文章目录 贝叶斯优化 贝叶斯优化器的介绍 采集函数(Acquisition Function,AC) UCB(Upper confidence bound) PI(probability of imp ...

  7. 贝叶斯优化(Bayesian Optimization)深入理解

    目前在研究Automated Machine Learning,其中有一个子领域是实现网络超参数自动化搜索,而常见的搜索方法有Grid Search.Random Search以及贝叶斯优化搜索.前两 ...

  8. 贝叶斯优化方法和应用综述

    贝叶斯优化方法和应用综述 各类优化算法入门优秀论文总结目录 1.摘要 设计类问题在科学研究和工业领域无处不在.作为一种十分有效的全局优化算法,近年来,贝叶斯优化方法在设计类问题上被广泛应用.通过设计恰 ...

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

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

最新文章

  1. Vue.js 学习笔记 第5章 内置指令
  2. mysql堵塞 sending data和sort状态多,cpu高
  3. Spring AOP 源码分析-寻找入口
  4. pc 图片预览放大 端vue_安利一款简单好用的Vue图片预览插件
  5. PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilder
  6. windows配置gvim高效率编程(cc++)带自动补全代码
  7. 6月10款超赞的jQuery插件新鲜出炉
  8. 奇瑞a3中控按键图解_实拍奇瑞全新瑞虎e 十万元级纯电SUV新选择
  9. ppt设置外观样式_PPT办公技巧:PPT内置主题样式的3种运用办法
  10. 决策树系列(二)——剪枝
  11. spl_autoload_register 和 __autoload()魔术方法
  12. 微信小程序上传 分享发测试
  13. 微信小程序开发全流程记录(从前台到后台,到发布)
  14. 笔记本拔插电源黑屏问题
  15. go操作excel单元格合并
  16. 机器学习二:K均值聚类算法(k-means clustering algorithm)
  17. 太原市山大附中2021年高考成绩查询,太原40所高中高考喜报汇总!
  18. Ubuntu 14.04 LTS 搜狗拼音输入法不能使用的情况
  19. C#,入门教程——列表(List)的基础知识
  20. VB.net读取Outlook签名

热门文章

  1. 203、商城业务-商品详情-环境搭建
  2. 杰理之IIS总线【篇】
  3. ensp:使用路由器实现网间通信
  4. Python 词云分析周杰伦新歌《说好不哭》
  5. 计算机校本培训心得,校本培训心得体会总结
  6. 为JY61加入OLED显示系统
  7. 实体店防盗,RFID技术作用巨大
  8. SF图像滤镜/美颜/美妆算法详解与实战
  9. 考研英语(七)——状语和状语从句
  10. 民间借贷利息,最新计算方式