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

目前在研究Automated Machine Learning,其中有一个子领域是实现网络超参数自动化搜索,而常见的搜索方法有Grid Search、Random Search以及贝叶斯优化搜索。前两者很好理解,这里不会详细介绍。本文将主要解释什么是体统(沉迷延禧攻略2333),不对应该解释到底什么是贝叶斯优化。

I Grid Search & Random Search

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

但是我们都知道机器学习训练模型是一个非常耗时的过程,而且现如今随着网络越来越复杂,超参数也越来越多,以如今计算力而言要想将每种可能的超参数组合都实验一遍(即Grid Search)明显不现实,所以一般就是事先限定若干种可能,但是这样搜索仍然不高效。

所以为了提高搜索效率,人们提出随机搜索,示意图如下。虽然随机搜索得到的结果互相之间差异较大,但是实验证明随机搜索的确比网格搜索效果要好。

II Bayesian Optimization

假设一组超参数组合是\(X={x_1,x_2,...,x_n}\)(\(x_n\)表示某一个超参数的值),而这组超参数与最后我们需要优化的损失函数存在一个函数关系,我们假设是\(f(X)\)。

而目前机器学习其实是一个黑盒子(black box),即我们只知道input和output,所以上面的函数\(f\)很难确定。所以我们需要将注意力转移到一个我们可以解决的函数上去,下面开始正式介绍贝叶斯优化。

假设我们有一个函数\(f:\cal{X}→\Bbb{R}\),我们需要在\(X\subseteq\cal{X}\)内找到

\(x^*=\underset{x\in X}{\operatorname{argmax}}f(x) \tag{1}\)

当\(f\)是凸函数且定义域\(X\)也是凸的时候,我们可以通过已被广泛研究的凸优化来处理,但是\(f\)并不一定是凸的,而且在机器学习中\(f\)通常是expensive black-box function,即计算一次需要花费大量资源。那么贝叶斯优化是如何处理这一问题的呢?

1. 详细算法

Sequential model-based optimization (SMBO) 是贝叶斯优化的最简形式,其算法思路如下:

下面详细介绍一下上图中的算法:

1. Input:

  • \(f\): 就是那个所谓的黑盒子
  • \(\cal{X}\):是输入数据,例如图像、语音等。
  • \(S\):是Acquisition Function(采集函数),这个函数的作用是用来选择公式(1)中的\(x\),后面会详细介绍这个函数。
  • \(\cal{M}\):是基于输入数据假设的模型,即已知的输入数据\(x\)都是在这个模型上的,可以用来假设的模型有很多种,例如随机森林,Tree Parzen Estimators(想要了解这两种的可以阅读参考文献[1])等,但是本文主要介绍高斯模型

2. InitSamples(f,x)→D

这一步骤就是初始化获取数据集\(\cal{D}={(X_1,Y_1),...,(X_n,Y_n)}\),其中\(Y_i=f(X_i)\),这些都是已知的。

3. 循环选参数\(T\)次

因为每次选出参数\(x\)后都需要计算\(f(x)\),而正如前面介绍的没计算一次函数\(f\),都会消耗大量资源,所以一般需要固定选参次数(或者是函数评估次数)

  • \(p(y|x,D)←FITMODEL(M,D)\)

首先我们预先假设了模型\(\cal{M}\)服从高斯分布,且已知了数据集\(\cal{D}\),所以可以通过计算得出具体的模型具体函数表示。假设下图中的绿色实现就是基于数据集\(\cal{D}\)经过计算后的服从高斯分布模型。可以看到Each additional band of green is another half standard deviation on the output distribution.

那么高斯分布是如何计算的呢?

因为我们已经假设\(f~GP(μ,K)\)。 (GP:高斯过程,μ:均值 K:协方差kernel,)。所以预测也是服从正态分布的,即有\(p(y|x,D)=\cal{N}(y|\hat{μ},\hat{σ}^2)\)

  • \(x_i←\underset{x\in X}{\operatorname{argmax}}S(X,p(y|X,D))\)

现在已经将假设的模型计算出来了,那么下一步我们需要基于假设模型的基础上选择满足公式(1)的参数了,也就是选择\(X\),那么如何选择呢?这就涉及到了Acquisition Function,为了让文章篇幅更易阅读,想了解Acquisition Function移步到文末。

  • \(y_i←f(x_i)\)

既然参数选出来了,那么当然就是要计算咯。例如我们通过上述步骤已经选出了一组超参数\(x_i\),那么我们下一步就是将超参数带入网络中去进行训练,最后得到输出\(y_i\)。这一步骤虽然expensive,但是没办法还是得走啊。

  • \(D←D \bigcup{(x_i,y_i)}\)

更新数据集。

2. Acquisition Function

Acquisition Function的选择可以有很多种,下面将分别介绍不同的AC function。

1) Probability of improvement

假设\(f'=min \, f\),这个\(f'\)表示目前已知的\(f\)的最小值。

然后定义utility function如下:
\[
u(x) =
\begin{cases}
o, & \text{if $f(x)>f'$} \ 1, & \text{if $f(x)≤f'$ }
\end{cases}
\]

其实也可以把上面的\(u(x)\)理解成一个reward函数,如果f(x)不大于f‘就有奖励,反之没有。

probability of improvement acquisition function定义为the expected utility as a function of x:

\[
\begin{align}
a_{PI}(x)=E[u(x)|x,D] & = \int_{-∞}^{f'}\cal{N}(f;μ(x),K(x,x))df \notag{} \ & = \cal{\Phi}(f';μ(x),K(x,x)) \notag{}
\end{align}
\]

之后只需要求出\(a(x)\)的最大值即可求出基于高斯分布的满足要求的\(x\)。

2) Excepted improvement

上面的AC function有个缺点就是找到的\(x\)可能是局部最优点,所以有了Excepted improvement。\(f'\)的定义和上面一样,即\(f'=min \, f\)。utility function定义如下:

\[u(x)=max(0,f'-f(x))\]

因为我们最初的目的是找到使得f(x)最小的x,所以这个utility function的含义很好理解,即接下来找到的\(f(x)\)比已知最小的\(f'\)越小越好,然后选出小的程度最大的那个\(f(x)\)和\(f'\)之间的差距的绝对值作为奖励,如果没有更小的那么奖励则为0.

AC function定义如下:

\[
\begin{align}
a_{EI}(x)=E[u(x)|x,D] & = \int_{-∞}^{f'}(f'-f)\cal{N}(f;μ(x),K(x,x))df \notag{} \ & = (f'-μ(x))\cal{\Phi}(f';μ(x),K(x,x)) \, + \, K(x,x)\cal{N}(f';μ(x),K(x,x)) \notag{}
\end{align}
\]

通过计算使得\(a_{EI}\)值最大的点即为最优点。

上式中有两个组成部分。要使得上式值最大则需要同时优化左右两个部分:

  • 左边需要尽可能的减少\(μ(x)\)
  • 右边需要尽可能的增大方差(或协方差)\(K(x,x)\)

但是二者并不同能是满足,所以这是一个exploitation-exploration tradeoff。

3) Entropy search

4) Upper confidence bound

Reference

MARSGGBO?原创

2018-10-28


原文地址:https://www.cnblogs.com/marsggbo/p/9866764.html

时间: 2024-10-09 13:34:28

贝叶斯优化(Bayesian Optimization)深入理解的相关文章

强大而精致的机器学习调参方法:贝叶斯优化

一.简介 贝叶斯优化用于机器学习调参由J. Snoek(2012)提出,主要思想是,给定优化的目标函数(广义的函数,只需指定输入和输出即可,无需知道内部结构以及数学性质),通过不断地添加样本点来更新目标函数的后验分布(高斯过程,直到后验分布基本贴合于真实分布.简单的说,就是考虑了上一次参数的信息**,从而更好的调整当前的参数. 他与常规的网格搜索或者随机搜索的区别是: 贝叶斯调参采用高斯过程,考虑之前的参数信息,不断地更新先验:网格搜索未考虑之前的参数信息 贝叶斯调参迭代次数少,速度快:网格搜索

基于贝叶斯优化的超参数tuning

https://arimo.com/data-science/2016/bayesian-optimization-hyperparameter-tuning/ 贝叶斯优化:使用高斯过程作为代理函数,并且通常优化提升幅度的期望Expected Improvement(新试验相对当前最好观测的提升的期望).高斯过程是一组函数的分布.高斯过程中的一个样本包括一组函数.训练高斯过程会拟合训练数据的分布,因此能产生和观测数据相近的函数.使用高斯过程,我们可以计算搜索空间中任意点的期望提升.然后将期望提升

贝叶斯网络(Bayesian networks)

算法杂货铺——分类算法之贝叶斯网络(Bayesian networks) 2.1.摘要 在上一篇文章中我们讨论了朴素贝叶斯分类.朴素贝叶斯分类有一个限制条件,就是特征属性必须有条件独立或基本独立(实际上在现实应用中几乎不可能做到完全独立).当这个条件成立时,朴素贝叶斯分类法的准确率是最高的,但不幸的是,现实中各个特征属性间往往并不条件独立,而是具有较强的相关性,这样就限制了朴素贝叶斯分类的能力.这一篇文章中,我们接着上一篇文章的例子,讨论贝叶斯分类中更高级.应用范围更广的一种算法——贝叶斯网络(

DataMining-朴素贝叶斯Naive Bayesian

贝叶斯分类器是一种对于属性集X和类变量Y的概率关系建模的方法,其有两种实现方式:朴素贝叶斯和贝叶斯信念网络.本次首先介绍贝朴素叶斯,以及在R软件中的实现和注意事项.

基于高斯过程的贝叶斯优化(二)AC函数

上节介绍过acquistion function(AC函数)是用来利用之前的信息寻找下一个$x_{t+1}$.下面介绍AC函数的具体形式: 目前主流的AC函数主要有三种Probability of Improvement(PI),Excepted Improvement(EI),GP Upper Confidence Bound(GP-UCB)三种. 首先介绍下最基本的数学背景. 记$\mathcal { D } _ { 1 : t } = \left\{ \mathbf { x } _ { 1

贝叶斯线性回归(Bayesian Linear Regression)

贝叶斯线性回归(Bayesian Linear Regression) 标签(空格分隔): 监督学习 @ author : [email protected] @ time : 2015-06-19 原文地址 贝叶斯线性回归Bayesian Linear Regression 原文地址 关于参数估计 极大似然估计 渐进无偏 渐进一致 最大后验估计 贝叶斯估计 贝叶斯估计核心问题 贝叶斯估计第一个重要元素 贝叶斯估计第二个重要元素 贝叶斯估计的增量学习 贝叶斯线性回归 贝叶斯线性回归的学习过程 贝

【原】对频率论(Frequentist)方法和贝叶斯方法(Bayesian Methods)的一个总结

注: 本文是对<IPython Interactive Computing and Visualization Cookbook>一书中第七章[Introduction to statistical data analysis in Python – frequentist and Bayesian methods]的简单翻译和整理,这部分内容主要将对统计学习中的频率论方法和贝叶斯统计方法进行介绍. 本文将介绍如何洞察现实世界的数据,以及如何在存在不确定性的情况下做出明智的决定. 统计数据分析

从贝叶斯方法谈到贝叶斯网络

0 引言 事实上,介绍贝叶斯定理.贝叶斯方法.贝叶斯推断的资料.书籍不少,比如<数理统计学简史>,以及<统计决策论及贝叶斯分析 James O.Berger著>等等,然介绍贝叶斯网络的中文资料则非常少,中文书籍总共也没几本,有的多是英文资料,但初学者一上来就扔给他一堆英文论文,因无基础和语言的障碍而读得异常吃力导致无法继续读下去则是非常可惜的(当然,有了一定的基础后,便可阅读更多的英文资料). 11月9日上午,机器学习班第9次课,邹博讲贝叶斯网络,其帮助大家提炼了贝叶斯网络的几个关

PGM:贝叶斯网络与朴素贝叶斯网络

http://blog.csdn.net/pipisorry/article/details/51471222 贝叶斯与频率派思想 频率派思想 长久以来,人们对一件事情发生或不发生,只有固定的0和1,即要么发生,要么不发生,从来不会去考虑某件事情发生的概率有多大,不发生的概率又是多大.而且事情发生或不发生的概率虽然未知,但最起码是一个确定的值. 比如如果问那时的人们一个问题:"有一个袋子,里面装着若干个白球和黑球,请问从袋子中取得白球的概率是多少?"他们会立马告诉你,取出白球的概率就是