贝叶斯优化

1. 最优解问题

最优解问题 最简单的,获得最优解的方法,就是网格搜索Grid Search了。
如果网格搜索开销稍微有点大,可以尝试随机搜索Random Search
如果是凸函数Convex Function,我们可以用Gradient Descent。大量的机器学习算法,都用了这个。如线性回归,逻辑回归等。
如果,这个黑盒函数的开销非常大,又不是凸函数,我们则考虑贝叶斯优化

2. 贝叶斯优化

贝叶斯优化(Bayesian optimization algorithm,简称BOA)利用之前已搜索点的信息确定下一个搜索点,用于求解维数不高的黑盒优化问题

黑盒优化问题

非形式化的来说,一个黑盒函数f可以理解为从Rn 到 R 的一个映射.但是映射关系 f 的解析表达式及工作方式未知,我们只能通过不断地将数据输入到黑盒函数中然后通过得到的输出值来猜测黑盒函数的结构信息.下图表示一个黑盒问题的映射关系.

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4IxLQ8wO-1664957136676)(https://s3-us-west-2.amazonaws.com/secure.notion-static.com/54a05118-54f7-4ff8-9d4a-6770b2359443/Untitled.png)]

与黑盒优化问题相对应的优化问题便是白盒优化问题。白盒问题要么优化问题的具体形式已知(如线性回归和SVM),要么虽然表达式的形式未知,但是我们可以利用目标对优化参数的梯度进行迭代(如深度网络,尽管深度网络也常被看做一个黑盒).这里的黑盒优化指的是优化目标的具体表达式及其梯度信息均未知的优化问题,因此我们无法利用优化目标的本身特性求得其全局最优解,也无法直接利用参数的梯度信息

除了深度网络的超参数优化问题之外,深度强化学习中智能体与环境的交互问题也可以看做一个黑盒优化问题.在model-free强化学习问题中,我们不对智能体所处的环境进行建模.在这种情形下,我们将环境当做一个黑盒,智能体通过不断尝试动作来从这个黑盒中获得奖励值,最后的优化目标是使累计获得的奖励值最大.

算法的思路

是首先生成一个初始候选解集合,然后根据这些点寻找下一个有可能是极值的点,将该点加入集合中,重复这一步骤,直至迭代终止。最后从这些点中找出极值点作为问题的解。

概念

  • 黑盒函数叫做目标函数Objective Function
  • 近似函数,这个函数叫代理函数Surrogate Function——计算出一条平均值曲线和对应的标准差(Standard Deviation)
  • 获取函数Acquisition Function——找到下一个探索点