我最近一直在研究贝叶斯优化,并就这个话题做了以下笔记:
与确定性函数不同,现实世界的函数是使用物理测量构建的
测量总是会有误差(例如人为误差、设计和实验误差、随机误差、测量误差)——如果您在相同条件下但在未来时间记录相同的测量,这些测量很可能与以前不同测量
因此,基于物理测量的目标函数自然是“不稳定的”——两个人可能会记录相同的测量结果,最终得到不同的值,并因此得到两个不同的目标函数。
“嘈杂”函数也是“不稳定”函数——如果我们对这个“嘈杂函数”进行顶级优化,由于记录测量时的固有误差,优化结果可能与我们正在研究的自然系统不对应。这意味着在某种意义上,我们正在处理一个更复杂版本的“苹果和橘子”。
贝叶斯优化试图通过使用记录的测量作为“钉子”并通过高斯过程的形式在这些测量上安装“马戏团帐篷”来解决这个问题。这种行为类似于“概率平滑”,并试图在统计上解释存在的测量中所有可能的未捕获变化 - 假设“数据生成过程”被高斯过程很好地表示的假设在某种程度上是正确的。
因此,贝叶斯优化试图“消除”目标函数中的噪声/变化/误差,为最终的优化解决方案添加自然的“鲁棒性”。这一切意味着贝叶斯优化有可能给我们带来更好的结果。
贝叶斯优化的优点:
- 鲁棒性(如上所述)
- 不要求目标函数是可微的(即在离散和组合优化问题中有用)
- 由于它不计算导数,因此与基于梯度的优化方法相比,它具有更“计算效率”的潜力。
贝叶斯优化的缺点:
- 需要用高斯过程很好地建模真正的目标函数
- 从经验上观察到在高维目标函数(即高于 20 维)上表现不佳 - 但是,我不明白为什么。
我经常听到有人声称贝叶斯优化在 20 多个维度上表现不佳,但我一直无法理解为什么会这样。我尝试在网上查阅一些参考资料:
1) “具有稀疏轴对齐子空间的高维贝叶斯优化”(Eriksson et al 2021)
“高维 BO 提出了一个特殊的挑战,部分原因是维数的诅咒使得难以定义以及推断合适的代理模型类别。”
过于僵化的模型类不太可能捕获目标函数的足够特征。灵活性和简约性之间的妥协是必不可少的。”
2)《使用低维特征空间的高维贝叶斯优化》(Moriconi et al, 2020)
- “然而,BO(贝叶斯优化)实际上仅限于优化 10-20 个参数。为了将 BO 扩展到高维,我们通常对目标的分解做出结构性假设和/或利用问题的内在低维性,例如通过“使用线性投影。我们可以通过非线性投影实现更高的压缩率,但学习这些非线性嵌入通常需要大量数据。这与相对较小评估预算的 BO 目标相矛盾。”
3) “贝叶斯优化教程”(Frazier,2018)
“它(贝叶斯优化)最适合对小于 20 的连续域进行优化”
“输入 x 在 Rd 中,d 的值不太大。在 BayesOpt 的大多数成功应用中,通常 d ≤ 20。”
我的问题:在这些论文中,他们没有解释为什么“20 维”似乎是决定贝叶斯优化性能开始恶化的条件的相关阈值。
有人可以解释为什么说“20 维”是贝叶斯优化的最大阈值吗?
尽管提供了一些解释来解释贝叶斯优化在更高维度上的难度 - 有人可以帮助我更详细地理解这一点吗?
参考:
使用稀疏轴对齐子空间的高维贝叶斯优化( PDF )
贝叶斯优化教程( PDF )
使用低维特征空间的高维贝叶斯优化( PDF )