贝叶斯优化(Bayesian Optimization)的原理与黑箱函数最优解搜索过程
字数 3999 2025-12-06 19:37:37

贝叶斯优化(Bayesian Optimization)的原理与黑箱函数最优解搜索过程

题目描述
贝叶斯优化是一种用于对黑箱函数(目标函数形式未知、评估成本高)进行全局最优解搜索的序列决策方法。其核心思想是:利用一个概率代理模型(如高斯过程)来建模未知的目标函数,并通过一个采集函数(Acquisition Function)来决定下一个评估点的位置,以平衡探索(在不确定性高的区域采样)和利用(在预测最优的区域采样)的矛盾。本题目将详细讲解贝叶斯优化的数学原理、代理模型构建、采集函数选择以及迭代优化过程


1. 问题形式化
我们面对一个黑箱函数 \(f: \mathcal{X} \to \mathbb{R}\),其中定义域 \(\mathcal{X} \subset \mathbb{R}^d\)\(d\) 维空间的有界子集(如超立方体)。目标是在尽可能少的函数评估次数下,找到使 \(f\) 最小化的点(假设是最小化问题):

\[x^* = \arg\min_{x \in \mathcal{X}} f(x). \]

函数 \(f\) 本身可能是非凸、无解析形式、评估代价高(例如,调参实验一次需训练一个模型)。

2. 概率代理模型:高斯过程(Gaussian Process, GP)
贝叶斯优化使用高斯过程作为代理模型,因为它能提供预测值的不确定性估计(即预测的均值和方差)。

  • 高斯过程定义:一个高斯过程是定义在函数空间上的分布,完全由均值函数 \(m(x)\) 和协方差函数(核函数) \(k(x, x')\) 描述:

\[ f \sim \mathcal{GP}(m(x), k(x, x')). \]

通常设先验均值 \(m(x) = 0\)

  • 核函数选择:常用的核函数是平方指数核(径向基函数核):

\[ k_{\text{SE}}(x, x') = \sigma_f^2 \exp\left(-\frac{1}{2\ell^2} \|x - x'\|\^2\right), \]

其中 \(\sigma_f^2\) 是函数方差(输出尺度),\(\ell\) 是长度尺度(输入变化敏感度)。这些是超参数,可通过最大化观测数据的边际似然来优化。

  • 后验预测分布
    假设我们已经观察到一组数据 \(\mathcal{D}_{1:t} = \{(x_i, y_i)\}_{i=1}^t\),其中 \(y_i = f(x_i) + \epsilon_i\)\(\epsilon_i \sim \mathcal{N}(0, \sigma_n^2)\) 是观测噪声。记 \(X_t = [x_1, \dots, x_t]^\top\)\(y_t = [y_1, \dots, y_t]^\top\)
    对于一个新的测试点 \(x_{t+1}\),目标函数值 \(f(x_{t+1})\) 与观测值 \(y_t\) 的联合分布为:

\[ \begin{bmatrix} y_t \\ f(x_{t+1}) \end{bmatrix} \sim \mathcal{N}\left( \mathbf{0}, \begin{bmatrix} K_t + \sigma_n^2 I & k_t(x_{t+1}) \\ k_t(x_{t+1})^\top & k(x_{t+1}, x_{t+1}) \end{bmatrix} \right), \]

其中:

  • \(K_t\)\(t \times t\) 矩阵, \([K_t]_{ij} = k(x_i, x_j)\)
  • \(k_t(x_{t+1}) = [k(x_1, x_{t+1}), \dots, k(x_t, x_{t+1})]^\top\)

利用条件高斯分布公式,得到后验预测分布

\[ f(x_{t+1}) \mid \mathcal{D}_{1:t} \sim \mathcal{N}(\mu_t(x_{t+1}), \sigma_t^2(x_{t+1})), \]

其中:

\[ \mu_t(x) = k_t(x)^\top (K_t + \sigma_n^2 I)^{-1} y_t, \]

\[ \sigma_t^2(x) = k(x, x) - k_t(x)^\top (K_t + \sigma_n^2 I)^{-1} k_t(x). \]

\(\mu_t(x)\) 是预测均值(对 \(f(x)\) 的最佳估计),\(\sigma_t^2(x)\) 是预测方差(表示不确定性)。

3. 采集函数(Acquisition Function)
采集函数 \(a_t(x)\) 基于当前的后验分布,量化了在点 \(x\) 处进行下一次采样的“期望效用”。下一个评估点选择为:

\[x_{t+1} = \arg\max_{x \in \mathcal{X}} a_t(x). \]

常用采集函数包括:

  • 期望改善(Expected Improvement, EI):衡量当前最优观测值 \(f_t^* = \min_{i \le t} y_i\) 基础上的“期望改进量”。

\[ \text{EI}_t(x) = \mathbb{E}[\max(f_t^* - f(x), 0) \mid \mathcal{D}_{1:t}]. \]

利用高斯过程后验的正态性,可解析计算:

\[ \text{EI}_t(x) = (f_t^* - \mu_t(x)) \Phi(Z) + \sigma_t(x) \phi(Z), \quad \text{其中 } Z = \frac{f_t^* - \mu_t(x)}{\sigma_t(x)}. \]

\(\Phi\)\(\phi\) 分别是标准正态分布的分布函数和密度函数。当 \(\sigma_t(x) = 0\) 时,定义 \(\text{EI}_t(x)=0\)

  • 上置信界(Upper Confidence Bound, UCB)

\[ \text{UCB}_t(x) = \mu_t(x) + \beta_t \sigma_t(x), \]

其中 \(\beta_t\) 是平衡探索与利用的参数(可设为随时间递增的函数,如 \(\beta_t = \sqrt{2 \log(t^{d/2+2} \pi^2 / (3\delta))}\) 以确保理论收敛)。

  • 概率改善(Probability of Improvement, PI)

\[ \text{PI}_t(x) = \Phi\left( \frac{f_t^* - \mu_t(x) - \xi}{\sigma_t(x)} \right), \]

其中 \(\xi \ge 0\) 是权衡参数(防止纯利用)。

4. 贝叶斯优化算法步骤
输入:黑箱函数 \(f\),定义域 \(\mathcal{X}\),最大评估次数 \(T\)
输出:找到的最优点 \(x^*\)

  1. 初始化:在 \(\mathcal{X}\) 内随机或通过低差异序列(如拉丁超立方采样)选择少量点 \(x_1, \dots, x_{n_0}\)(如 \(n_0=5\)),评估得到 \(y_i = f(x_i) + \epsilon_i\),构成初始观测集 \(\mathcal{D}_{n_0}\)

  2. 循环:对于 \(t = n_0, n_0+1, \dots, T-1\),执行:
    a. 拟合高斯过程:用当前观测集 \(\mathcal{D}_t\) 优化高斯过程的超参数(如通过最大化边际似然)。
    b. 优化采集函数:基于当前高斯过程后验,计算采集函数 \(a_t(x)\),并通过全局优化方法(如多起点梯度下降、DIRECT 算法等)找到其最大值对应的点:

\[ x_{t+1} = \arg\max_{x \in \mathcal{X}} a_t(x). \]

c. 评估目标函数:计算 \(y_{t+1} = f(x_{t+1}) + \epsilon\)(若 \(f\) 是确定性的,可设 \(\epsilon=0\))。
d. 更新数据集\(\mathcal{D}_{t+1} = \mathcal{D}_t \cup \{(x_{t+1}, y_{t+1})\}\)

  1. 返回最优观测点:从 \(\mathcal{D}_T\) 中找到使 \(y_i\) 最小的点 \(x^* = \arg\min_{(x_i, y_i) \in \mathcal{D}_T} y_i\)

5. 关键特点与注意事项

  • 高效性:通过代理模型避免了大量真实评估,适合昂贵函数优化。
  • 探索与利用平衡:采集函数的设计直接控制此平衡,EI 和 UCB 在实践中效果良好。
  • 计算开销:每步需拟合高斯过程(\(O(t^3)\) 时间复杂度)和全局优化采集函数(但相对真实函数评估成本较低)。
  • 扩展:可处理有约束、多目标、高维(通过添加结构假设或随机嵌入)等问题。

总结:贝叶斯优化的核心在于用高斯过程代理模型量化不确定性,并通过采集函数的序列决策来智能选择下一个评估点,以较少的评估次数逼近全局最优解。这一框架已被广泛应用于超参数调优、实验设计、机器人控制等领域。

贝叶斯优化(Bayesian Optimization)的原理与黑箱函数最优解搜索过程 题目描述 贝叶斯优化是一种用于对 黑箱函数 (目标函数形式未知、评估成本高)进行 全局最优解 搜索的序列决策方法。其核心思想是:利用一个 概率代理模型 (如高斯过程)来建模未知的目标函数,并通过一个 采集函数 (Acquisition Function)来决定下一个评估点的位置,以平衡 探索 (在不确定性高的区域采样)和 利用 (在预测最优的区域采样)的矛盾。本题目将详细讲解贝叶斯优化的 数学原理、代理模型构建、采集函数选择 以及 迭代优化过程 。 1. 问题形式化 我们面对一个黑箱函数 \( f: \mathcal{X} \to \mathbb{R} \),其中定义域 \(\mathcal{X} \subset \mathbb{R}^d\) 是 \(d\) 维空间的有界子集(如超立方体)。目标是在尽可能少的 函数评估 次数下,找到使 \(f\) 最小化的点(假设是最小化问题): \[ x^* = \arg\min_ {x \in \mathcal{X}} f(x). \] 函数 \(f\) 本身可能是 非凸、无解析形式、评估代价高 (例如,调参实验一次需训练一个模型)。 2. 概率代理模型:高斯过程(Gaussian Process, GP) 贝叶斯优化使用 高斯过程 作为代理模型,因为它能提供 预测值的不确定性估计 (即预测的均值和方差)。 高斯过程定义 :一个高斯过程是定义在函数空间上的分布,完全由均值函数 \(m(x)\) 和协方差函数(核函数) \(k(x, x')\) 描述: \[ f \sim \mathcal{GP}(m(x), k(x, x')). \] 通常设先验均值 \(m(x) = 0\)。 核函数选择 :常用的核函数是 平方指数核 (径向基函数核): \[ k_ {\text{SE}}(x, x') = \sigma_ f^2 \exp\left(-\frac{1}{2\ell^2} \|x - x'\|\^2\right), \] 其中 \(\sigma_ f^2\) 是函数方差(输出尺度),\(\ell\) 是长度尺度(输入变化敏感度)。这些是 超参数 ,可通过最大化观测数据的边际似然来优化。 后验预测分布 : 假设我们已经观察到一组数据 \(\mathcal{D} {1:t} = \{(x_ i, y_ i)\} {i=1}^t\),其中 \(y_ i = f(x_ i) + \epsilon_ i\),\(\epsilon_ i \sim \mathcal{N}(0, \sigma_ n^2)\) 是观测噪声。记 \(X_ t = [ x_ 1, \dots, x_ t]^\top\), \(y_ t = [ y_ 1, \dots, y_ t ]^\top\)。 对于一个新的测试点 \(x_ {t+1}\),目标函数值 \(f(x_ {t+1})\) 与观测值 \(y_ t\) 的联合分布为: \[ \begin{bmatrix} y_ t \\ f(x_ {t+1}) \end{bmatrix} \sim \mathcal{N}\left( \mathbf{0}, \begin{bmatrix} K_ t + \sigma_ n^2 I & k_ t(x_ {t+1}) \\ k_ t(x_ {t+1})^\top & k(x_ {t+1}, x_ {t+1}) \end{bmatrix} \right), \] 其中: \(K_ t\) 是 \(t \times t\) 矩阵, \([ K_ t]_ {ij} = k(x_ i, x_ j)\), \(k_ t(x_ {t+1}) = [ k(x_ 1, x_ {t+1}), \dots, k(x_ t, x_ {t+1}) ]^\top\)。 利用条件高斯分布公式,得到 后验预测分布 : \[ f(x_ {t+1}) \mid \mathcal{D} {1:t} \sim \mathcal{N}(\mu_ t(x {t+1}), \sigma_ t^2(x_ {t+1})), \] 其中: \[ \mu_ t(x) = k_ t(x)^\top (K_ t + \sigma_ n^2 I)^{-1} y_ t, \] \[ \sigma_ t^2(x) = k(x, x) - k_ t(x)^\top (K_ t + \sigma_ n^2 I)^{-1} k_ t(x). \] \(\mu_ t(x)\) 是预测均值(对 \(f(x)\) 的最佳估计),\(\sigma_ t^2(x)\) 是预测方差(表示不确定性)。 3. 采集函数(Acquisition Function) 采集函数 \(a_ t(x)\) 基于当前的后验分布,量化了在点 \(x\) 处进行下一次采样的“期望效用”。下一个评估点选择为: \[ x_ {t+1} = \arg\max_ {x \in \mathcal{X}} a_ t(x). \] 常用采集函数包括: 期望改善(Expected Improvement, EI) :衡量当前最优观测值 \(f_ t^* = \min_ {i \le t} y_ i\) 基础上的“期望改进量”。 \[ \text{EI} t(x) = \mathbb{E}[ \max(f_ t^* - f(x), 0) \mid \mathcal{D} {1:t} ]. \] 利用高斯过程后验的正态性,可解析计算: \[ \text{EI}_ t(x) = (f_ t^* - \mu_ t(x)) \Phi(Z) + \sigma_ t(x) \phi(Z), \quad \text{其中 } Z = \frac{f_ t^* - \mu_ t(x)}{\sigma_ t(x)}. \] \(\Phi\) 和 \(\phi\) 分别是标准正态分布的分布函数和密度函数。当 \(\sigma_ t(x) = 0\) 时,定义 \(\text{EI}_ t(x)=0\)。 上置信界(Upper Confidence Bound, UCB) : \[ \text{UCB}_ t(x) = \mu_ t(x) + \beta_ t \sigma_ t(x), \] 其中 \(\beta_ t\) 是平衡探索与利用的参数(可设为随时间递增的函数,如 \(\beta_ t = \sqrt{2 \log(t^{d/2+2} \pi^2 / (3\delta))}\) 以确保理论收敛)。 概率改善(Probability of Improvement, PI) : \[ \text{PI}_ t(x) = \Phi\left( \frac{f_ t^* - \mu_ t(x) - \xi}{\sigma_ t(x)} \right), \] 其中 \(\xi \ge 0\) 是权衡参数(防止纯利用)。 4. 贝叶斯优化算法步骤 输入 :黑箱函数 \(f\),定义域 \(\mathcal{X}\),最大评估次数 \(T\)。 输出 :找到的最优点 \(x^* \)。 初始化 :在 \(\mathcal{X}\) 内随机或通过低差异序列(如拉丁超立方采样)选择少量点 \(x_ 1, \dots, x_ {n_ 0}\)(如 \(n_ 0=5\)),评估得到 \(y_ i = f(x_ i) + \epsilon_ i\),构成初始观测集 \(\mathcal{D}_ {n_ 0}\)。 循环 :对于 \(t = n_ 0, n_ 0+1, \dots, T-1\),执行: a. 拟合高斯过程 :用当前观测集 \(\mathcal{D} t\) 优化高斯过程的超参数(如通过最大化边际似然)。 b. 优化采集函数 :基于当前高斯过程后验,计算采集函数 \(a_ t(x)\),并通过全局优化方法(如多起点梯度下降、DIRECT 算法等)找到其最大值对应的点: \[ x {t+1} = \arg\max_ {x \in \mathcal{X}} a_ t(x). \] c. 评估目标函数 :计算 \(y_ {t+1} = f(x_ {t+1}) + \epsilon\)(若 \(f\) 是确定性的,可设 \(\epsilon=0\))。 d. 更新数据集 :\(\mathcal{D} {t+1} = \mathcal{D} t \cup \{(x {t+1}, y {t+1})\}\)。 返回最优观测点 :从 \(\mathcal{D} T\) 中找到使 \(y_ i\) 最小的点 \(x^* = \arg\min {(x_ i, y_ i) \in \mathcal{D}_ T} y_ i\)。 5. 关键特点与注意事项 高效性 :通过代理模型避免了大量真实评估,适合昂贵函数优化。 探索与利用平衡 :采集函数的设计直接控制此平衡,EI 和 UCB 在实践中效果良好。 计算开销 :每步需拟合高斯过程(\(O(t^3)\) 时间复杂度)和全局优化采集函数(但相对真实函数评估成本较低)。 扩展 :可处理有约束、多目标、高维(通过添加结构假设或随机嵌入)等问题。 总结 :贝叶斯优化的核心在于用 高斯过程 代理模型量化不确定性,并通过 采集函数 的序列决策来智能选择下一个评估点,以较少的评估次数逼近全局最优解。这一框架已被广泛应用于超参数调优、实验设计、机器人控制等领域。