微信号:weixin888
设计类问题在科学研究和工业领域无处不在.作为一种十分有效的全局优化算法,近年来,贝叶斯优化方法在设计类问题上被广泛应用.通过设计恰当的概率代理模型和采集函数,贝叶斯优化框架只需经过少数次目标函数评估即可获得理想解,非常适用于求解目标函数表达式未知、非凸、多峰和评估代价高昂的复杂优化问题.本文从方法论和应用领域两方面深入分析、讨论和展望了贝叶斯优化的研究现状、面临的问题和应用领域,期望为相关领域的研究者提供有益的借鉴和参考.
关键词:贝叶斯优化;全局优化算法;概率代理模型;采集函数;黑箱
目前在各行各业都容易出现这样一类优化问题:优化目标不仅具有多峰、非凸、高维、决策空间巨大等常见特征,通常还具有黑箱和评估代价高昂等新特点.优化目标不存在明确的数学表达,并且需要花费高额代价才能观测到目标函数的返回值
举个例子:在研制某癌症的有效药物问题中,药物配方可以作为决策空间,药物效果(药物效果用药物能够治愈病人的概率大小来描述)作为函数输出,临床实验作为评估药物效果的手段,目标是找到一种药物配方,使得药物能够最大概率地治愈病人.在该问题中,目标函数很难写成一个明确的数学表达式,评估函数过程可能会导致病人死亡.显然,这样的评估代价是巨大的.
针对具有以上特征的复杂设计问题,贝叶斯优化(Bayesian optimization,简称BO)是一种有效的解决方法.
贝叶斯优化已经应用于网页、游戏和材料设计、推荐系统、用户界面交互、机器人步态、导航和嵌入式学习系统、环境监控、组合优化、自动机器学习、传感器网络等领域,展示出令人瞩目的发展前景.
贝叶斯优化是一个很有效的全局优化算法,目标是为了找到全局最优解。本质上,因为贝叶斯优化框架使用代理模型拟合真实目标函数,并根据拟合结果主动选择最有“潜力”的评估点进行评估,避免不必要的采样,因此,贝叶斯优化也称作主动优化(active optimization)。同时,贝叶斯优化框架能够有效地利用完整的历史信息来提高搜索效率。
贝叶斯优化之所以称作“贝叶斯”,是因为优化过程中利用了著名的“贝叶斯定理”:
这个其实就是概率论上学的贝叶斯公式。其中,f 表示未知目标函数(或者表示参数模型中的参数);D1:t={(x1,y1),(x2,y2),…,(xt,yt)}表示已观测集合,xt 表示决策向量,yt=f(xt)+?t 表示观测值,?t 表示观测误差;p(D1:t|f)表示 y 的似然分布,由于观测值存在误差,所以也称为“噪声”;p(f)表示 f 的先验概率分布,即,对未知目标函数状态的假设;p(D1:t)表示边际化 f 的边际似然分布或者“证据”,由于该边际似然存在概率密度函数的乘积和积分,通常难以得到明确的解析式,该边际似然在贝叶斯优化中主要用于优化超参数(hyper-parameter);p(f|D1:t)表示 f 的后验概率分布,后验概率分布描述通过已观测数据集对先验进行修正后未知目标函数的置信度.
贝叶斯优化框架主要包含两个核心部分——概率代理模型(probabilistic surrogate model)和采集函数(acquisition function)
贝叶斯优化框架
下图为贝叶斯优化框架应用在一维函数 f(x)=(x-0.3)**2+0.2sin(20x)上 3 次迭代的示例:
贝叶斯优化原理
贝叶斯优化更侧重于减少评估代价,保证其能够仅经过少数次目标函数评估即可得到近优解.
贝叶斯优化与其他几个优化算法的对比:
贝叶斯优化的局限性:
根据以上特点分析,贝叶斯优化适合求解优化目标存在多峰、非凸、黑箱、存在观测噪音并且评估代价高昂等特点的问题,例如危险化学试剂实验、危害生命的药物测试、航空航天测试等等.但这些需要我们根据具体问题选择合适的模型代理模型和采集策略,才能充分发挥贝叶斯优化方法的潜力.
3.1概率代理模型
3.1.1高斯过程
该部分内容最重要,所以比较多。
高斯过程(Gaussian processes,简称 GPs)是常用的一种非参数模型,目前,高斯过程已被广泛应用在回归、分类以及许多需要推断黑箱函数的领域中.GaussianFace是高斯过程在人脸识别上的应用,该应用在人脸识别领域的表现胜过其他深度学习方法甚至人类.通常情况下,神经网络和高斯过程之间有这样一个联系:存在无限多个隐层单元的神经网络等价于高斯过程.
高斯过程是多元高斯概率分布的范化.一个高斯过程由一个均值函数 m(x) 和一个半正定(一个有效的协方差函数必须是半正定的)的协方差函数 k(x,x’) 构成:
其中,均值函数和协方差函数分别为:
(下面部分比较难懂,如果需要的话可以留言,我尽量写详细点)
高斯过程是一个随机变量的集合,存在这样的性质:任意有限个随机变量都满足一个联合高斯分布.首先假设一个 0 均值的先验分布 p:
其中
,
X
表示训练集
x
1
,
x
2
,
…
,
x
t
f
表示未知函数
f
的函数值集合
f
(
x
1
)
,
f
(
x
2
)
,
…
,
f
(
x
t
)
其中,X 表示训练集{x1,x2,…,xt}f 表示未知函数 f 的函数值集合{f(x1),f(x2),…,f(xt)}
其中,X表示训练集x1,x2,…,xtf表示未知函数f的函数值集合f(x1),f(x2),…,f(xt)
Σ
表示
k
(
x
,
x
′
)
构成的协方差矩阵
(
Σ
i
,
j
=
k
(
x
i
,
x
j
)
)
,
θ
表示超参数
.
\Sigma表示 k(x,x')构成的协方差矩阵(\Sigma i,j=k(xi,xj)), heta表示超参数.
Σ表示k(x,x′)构成的协方差矩阵(Σi,j=k(xi,xj)),θ表示超参数.
当存在观测噪声时
,
即
y
=
f
(
x
)
+
?
,
且假设噪声满足独立同分布的高斯分布
:
p
(
?
)
=
(
0
,
σ
)
.
从而得到似然分布
:
当存在观测噪声时,即y=f(x)+\epsilon,且假设噪声满足独立同分布的高斯分布:p(\epsilon)=(0,\sigma).从而得到似然分布:
当存在观测噪声时,即y=f(x)+?,且假设噪声满足独立同分布的高斯分布:p(?)=(0,σ).从而得到似然分布:
y 表示观测值集合 y 1 , y 2 , … , y t y 表示观测值集合{y1,y2,…,yt} y表示观测值集合y1,y2,…,yt
于是可以得到边际似然分布:
通常,通过最大化该边际似然分布优化超参数
θ
heta
θ,这个
θ
heta
θ就是
Σ
+
σ
2
I
\Sigma+\sigma^2 I
Σ+σ2I里的参数
这里理下思路,我们这个似然分布指在已知 X 和 θ X和 heta X和θ的情况下 y y y的分布是右边那个均值为0,方差为 Σ + σ 2 I \Sigma+\sigma^2 I Σ+σ2I的分布,所以我们需要的是优化 θ heta θ,使得下次来一个点,我们能预测出其y值
根据高斯过程的性质,存在如下联合分布:
于是有:
X
?
X*
X?表示预测输入,
f
?
f*
f?表示预测输出,<
f
?
f*
f?>表示预测均值,
c
o
v
(
f
?
)
cov(f*)
cov(f?)表示预测协方差
在实际应用中,只有选择合适的协方差函数才能保证得到理想的预测效果.协方差函数一般分为平稳(stationary)协方差函数和非平稳协方差函数.若目标函数具有非平稳性,可以直接使用非平稳协方差函数或者通过把目标函数分离成多个平稳区域,并在每个区域内使用平稳协方差函数的方法来处理.
常用的平稳协方差函数有平方指数(squared exponential)协方差函数、指数(exponential)协方差函数和Matérn协方差函数等等.
Matérn 协方差函数簇是一类高灵活性的协方差函数,具体函数表达式如下:
下表是常用的 Matérn 协方差函数:
3.1.2随机森林
随机森林回归是一种十分适合并行化的回归方法,该方法属于集成学习,即通过组合多个弱学习器来提高预测精度.随机森林回归构造多棵决策树,每棵决策树通过从训练数据中有放回的采样进行训练.当需要预测时,把采样点输入到每棵决策树中,并得到每棵树的预测均值,然后通过投票机制得到最终预测结果.
与高斯过程高昂的更新代价相比,随机森林方法具有极其优秀的计算效率.由于其计算的高效性和对大规模数据集的有效性,该方法已成功地应用于自动算法配置领域(Sequential model-based optimization for general algorithm configuration)。
虽然随机森林回归在训练数据附近能够快速得到高精度预测,但在远离训练数据时的预测效果通常很差,并且该方法的响应面是非连续、不可微的,因此不能对其使用基于梯度的优化方法.
3.1.3深度神经网络
深度神经网络通常是指层数超过 2 层的神经网络,虽然具有无限多个隐层单元的神经网络等价于高斯过程,但该神经网络具有无穷多个参数,无法训练.为了减少参数个数,一种常用的方法就是增加神经网络的深度.
近年来,由于其优越的性能,深度神经网络已成功应用于语音识别(Very deep convolutional networks for end-to-end speech recognition)、机器视觉(Deep visual-semantic alignments for generating image descriptions)等领域.在贝叶斯优化领域中,深度神经网络同样得到重视.
一些研究者通过使用深度神经网络代理未知目标函数,以提升模型处理大规模数据的能力(Scalable Bayesian optimization using deep neural networks,Bayesian optimization with robust Bayesian neural networks).然而,若想得到理想效果的函数近似,需要合理地设计神经网络架构,如层数、每层的神经元个数等.如何设计合理的神经网络架构,仍是具有挑战性的问题.
3.2采集函数/获取函数
采集函数.所谓采集函数就是从输入空间
χ
\chi
χ、观测空间
R
R
R和超参数空间
Θ
\Theta
Θ映射到实数空间的函数
α
:
χ
?
R
?
Θ
?
?
>
R
\alpha:\chi*R*\Theta-->R
α:χ?R?Θ??>R.该函数由已观测数据集
D
1
:
t
D1:t
D1:t 得到的后验分布构造,并通过对其最大化指导选择下一个评估点
x
t
+
1
xt+1
xt+1:
EI的采集函数为
获取函数汇总
略,想看可评论区留言
实时性和自适应性
贝叶斯优化每次迭代需要对概率代理模型进行更新,当问题维度高或存在大量历史数据时,更新概率模型需要高昂的计算量,尤其不能满足对实时性要求高的实际任务.针对该问题,研究者已经提出了一些解决策略.
作为求解非凸、多峰、评估代价高昂、黑箱的复杂优化问题的有效解决方案,贝叶斯优化近年来在多领域获得了广泛关注.本文综述了贝叶斯优化的研究现状.