基于高斯过程的贝叶斯优化(Bayesian Optimization with Gaussian Process)的原理与黑箱函数最优解搜索过程
字数 4449 2025-12-16 19:51:22

基于高斯过程的贝叶斯优化(Bayesian Optimization with Gaussian Process)的原理与黑箱函数最优解搜索过程

题目描述
假设我们需要对一个复杂的、计算成本高昂的、且没有显式表达式的黑箱函数 \(f(x)\) 进行优化,目标是找到其全局最大值(或最小值)。该函数可能是机器学习模型的超参数调优目标(如验证集准确率),也可能是物理实验的输出。由于每次评估 \(f(x)\) 都很昂贵,我们希望用尽可能少的评估次数找到最优解。基于高斯过程的贝叶斯优化 是一种高效的序列优化策略。它利用高斯过程(Gaussian Process, GP)作为代理模型(Surrogate Model)来建模 \(f(x)\) 的先验分布,并根据采集函数(Acquisition Function)智能地选择下一个待评估的点,以平衡探索(exploration)和利用(exploitation)。本题要求详细解释其工作原理、数学框架和迭代步骤。


解题过程

第一步:问题形式化与贝叶斯优化框架

  1. 优化目标
    最大化黑箱函数 \(f: \mathcal{X} \rightarrow \mathbb{R}\),其中 \(\mathcal{X}\) 通常是 \(\mathbb{R}^d\) 的紧致子集(例如,超参数的取值范围)。

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

我们只能通过顺序查询得到带噪声的观测值:\(y = f(x) + \epsilon\),通常假设 \(\epsilon \sim \mathcal{N}(0, \sigma_n^2)\)

  1. 核心思想
    • 用一个概率代理模型(这里用高斯过程)来建模我们对 \(f\) 的信念(belief)。
    • 定义一个采集函数 \(\alpha(x; \mathcal{D}_{1:t})\),它基于当前观测数据集 \(\mathcal{D}_{1:t} = \{(x_i, y_i)\}_{i=1}^t\) 下的后验分布,量化每个候选点 \(x\) 的“潜力”。
    • 在每一步 \(t+1\),选择最大化采集函数的点进行观测:

\[ x_{t+1} = \arg\max_{x \in \mathcal{X}} \alpha(x; \mathcal{D}_{1:t}) \]

  • 观测得到 \(y_{t+1} = f(x_{t+1}) + \epsilon\),将 \((x_{t+1}, y_{t+1})\) 加入数据集,更新代理模型的后验,重复直到评估预算用尽。

第二步:代理模型——高斯过程回归

  1. 高斯过程先验
    GP 定义为随机变量的集合,其中任意有限个随机变量服从联合高斯分布。它完全由均值函数 \(m(x)\) 和协方差函数(核函数) \(k(x, x')\) 指定:

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

为简化,常设 \(m(x) = 0\)。核函数衡量两点之间的相似性,常见选择是平方指数(RBF)核:

\[ k(x, x') = \sigma_f^2 \exp\left(-\frac{1}{2l^2} \|x - x'\|^2\right) \]

其中 \(\sigma_f^2\) 是信号方差,\(l\) 是长度尺度。

  1. 后验分布推导
    假设已有观测数据集 \(\mathcal{D}_{1:t} = (X_t, \mathbf{y}_t)\),其中 \(X_t = [x_1, \dots, x_t]^\top\)\(\mathbf{y}_t = [y_1, \dots, y_t]^\top\)。定义核矩阵 \(K_t\) 满足 \((K_t)_{ij} = k(x_i, x_j)\),以及 \(\mathbf{k}_t(x) = [k(x_1, x), \dots, k(x_t, x)]^\top\)

    在噪声观测下,先验协方差需加入噪声项:\(\operatorname{Cov}(y_i, y_j) = k(x_i, x_j) + \sigma_n^2 \delta_{ij}\),其中 \(\delta_{ij}\) 是 Kronecker delta 函数。记 \(K_t' = K_t + \sigma_n^2 I\)

    对于一个新的测试点 \(x_*\),观测值 \(y_*\)\(\mathbf{y}_t\) 的联合分布为:

\[ \begin{bmatrix} \mathbf{y}_t \\ y_* \end{bmatrix} \sim \mathcal{N}\left( \mathbf{0}, \begin{bmatrix} K_t' & \mathbf{k}_t(x_*) \\ \mathbf{k}_t(x_*)^\top & k(x_*, x_*) + \sigma_n^2 \end{bmatrix} \right) \]

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

\[ p(y_* | x_*, \mathcal{D}_{1:t}) = \mathcal{N}(\mu_t(x_*), \sigma_t^2(x_*)) \]

其中后验均值和方差为:

\[ \mu_t(x_*) = \mathbf{k}_t(x_*)^\top (K_t')^{-1} \mathbf{y}_t \]

\[ \sigma_t^2(x_*) = k(x_*, x_*) + \sigma_n^2 - \mathbf{k}_t(x_*)^\top (K_t')^{-1} \mathbf{k}_t(x_*) \]

这里 \(\mu_t(x)\)\(f(x)\) 的最佳估计,\(\sigma_t^2(x)\) 表示不确定性。

第三步:采集函数的设计与优化

采集函数利用后验分布的信息,平衡“利用”(在已知高均值区域采样)和“探索”(在高不确定性区域采样)。最常用的三种采集函数:

  1. 期望改进(Expected Improvement, EI)
    定义当前最佳观测值为 \(y_{\text{best}} = \max_{i \le t} y_i\)。改进量 \(I(x) = \max(0, f(x) - y_{\text{best}})\)。由于 \(f(x)\) 是随机变量,EI 是改进量的期望:

\[ \alpha_{\text{EI}}(x) = \mathbb{E}[I(x) | \mathcal{D}_{1:t}] = \sigma_t(x) [\gamma(x) \Phi(\gamma(x)) + \phi(\gamma(x))] \]

其中 \(\gamma(x) = \frac{\mu_t(x) - y_{\text{best}}}{\sigma_t(x)}\)\(\Phi\)\(\phi\) 分别是标准正态分布的累积分布函数和概率密度函数。EI 在 \(\mu_t(x)\) 高(利用)或 \(\sigma_t(x)\) 大(探索)时取大值。

  1. 上置信界(Upper Confidence Bound, UCB)

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

其中 \(\beta_t\) 是平衡参数(通常随时间增加以鼓励探索)。UCB 具有理论遗憾界(regret bound)保证。

  1. 概率改进(Probability of Improvement, PI)

\[ \alpha_{\text{PI}}(x) = P(f(x) \ge y_{\text{best}} + \xi) = \Phi\left( \frac{\mu_t(x) - (y_{\text{best}} + \xi)}{\sigma_t(x)} \right) \]

\(\xi > 0\) 是小的正数,避免过度利用。

第四步:贝叶斯优化的完整迭代算法

  1. 初始化

    • 在定义域 \(\mathcal{X}\) 内随机选择少量点(如通过拉丁超立方采样)并观测得到 \(\mathcal{D}_{\text{init}}\)
    • 设定代理模型(GP)的超参数(可通过最大化边际似然初始化)。
  2. 循环迭代(直到评估次数达到上限):
    a. 拟合高斯过程:基于当前数据集 \(\mathcal{D}_{1:t}\),计算核矩阵 \(K_t'\) 及其逆(或通过 Cholesky 分解求解)。
    b. 优化采集函数:在 \(\mathcal{X}\) 上寻找 \(x_{t+1} = \arg\max_x \alpha(x; \mathcal{D}_{1:t})\)。由于采集函数通常非凸,可使用全局优化方法(如 DIRECT 算法、多起点梯度优化等)。
    c. 观测与更新:在 \(x_{t+1}\) 处评估目标函数(或通过实验)得到 \(y_{t+1}\),将 \((x_{t+1}, y_{t+1})\) 加入数据集。
    d. 更新 GP 后验:增量更新核矩阵的逆(或重新拟合),以纳入新数据点。

  3. 输出:返回使观测值最大的点 \(x_{\text{best}} = \arg\max_{x \in \{x_1,\dots,x_T\}} y_i\),或后验均值最大的点。

第五步:关键实现细节与扩展

  1. 处理高维空间:当 \(\mathcal{X}\) 维度高时,GP 的核矩阵计算成本为 \(O(t^3)\),可通过稀疏近似(如使用诱导点)加速。
  2. 采集函数优化:由于 \(\alpha(x)\) 计算成本低,可使用大量随机起始点的局部优化或贝叶斯优化自身来优化它。
  3. 考虑噪声:若观测噪声 \(\sigma_n^2\) 未知,可将其作为超参数与 GP 一起优化。
  4. 并行化:可通过多点采集函数(如 q-EI)同时选择多个评估点。

总结
基于高斯过程的贝叶斯优化将黑箱函数优化转化为一个序列决策问题:用 GP 建模目标函数的不确定性,用采集函数指导搜索方向。其核心优势在于以少量评估逼近全局最优,特别适合昂贵函数的优化。实际应用中需注意超参数选择、数值稳定性及计算效率。

基于高斯过程的贝叶斯优化(Bayesian Optimization with Gaussian Process)的原理与黑箱函数最优解搜索过程 题目描述 假设我们需要对一个复杂的、计算成本高昂的、且没有显式表达式的黑箱函数 \( f(x) \) 进行优化,目标是找到其全局最大值(或最小值)。该函数可能是机器学习模型的超参数调优目标(如验证集准确率),也可能是物理实验的输出。由于每次评估 \( f(x) \) 都很昂贵,我们希望用尽可能少的评估次数找到最优解。 基于高斯过程的贝叶斯优化 是一种高效的序列优化策略。它利用高斯过程(Gaussian Process, GP)作为代理模型(Surrogate Model)来建模 \( f(x) \) 的先验分布,并根据采集函数(Acquisition Function)智能地选择下一个待评估的点,以平衡探索(exploration)和利用(exploitation)。本题要求详细解释其工作原理、数学框架和迭代步骤。 解题过程 第一步:问题形式化与贝叶斯优化框架 优化目标 : 最大化黑箱函数 \( f: \mathcal{X} \rightarrow \mathbb{R} \),其中 \( \mathcal{X} \) 通常是 \( \mathbb{R}^d \) 的紧致子集(例如,超参数的取值范围)。 \[ x^* = \arg\max_ {x \in \mathcal{X}} f(x) \] 我们只能通过顺序查询得到带噪声的观测值:\( y = f(x) + \epsilon \),通常假设 \( \epsilon \sim \mathcal{N}(0, \sigma_ n^2) \)。 核心思想 : 用一个概率代理模型(这里用高斯过程)来建模我们对 \( f \) 的信念(belief)。 定义一个采集函数 \( \alpha(x; \mathcal{D} {1:t}) \),它基于当前观测数据集 \( \mathcal{D} {1:t} = \{(x_ i, y_ i)\}_ {i=1}^t \) 下的后验分布,量化每个候选点 \( x \) 的“潜力”。 在每一步 \( t+1 \),选择最大化采集函数的点进行观测: \[ x_ {t+1} = \arg\max_ {x \in \mathcal{X}} \alpha(x; \mathcal{D}_ {1:t}) \] 观测得到 \( y_ {t+1} = f(x_ {t+1}) + \epsilon \),将 \( (x_ {t+1}, y_ {t+1}) \) 加入数据集,更新代理模型的后验,重复直到评估预算用尽。 第二步:代理模型——高斯过程回归 高斯过程先验 : GP 定义为随机变量的集合,其中任意有限个随机变量服从联合高斯分布。它完全由均值函数 \( m(x) \) 和协方差函数(核函数) \( k(x, x') \) 指定: \[ f(x) \sim \mathcal{GP}(m(x), k(x, x')) \] 为简化,常设 \( m(x) = 0 \)。核函数衡量两点之间的相似性,常见选择是平方指数(RBF)核: \[ k(x, x') = \sigma_ f^2 \exp\left(-\frac{1}{2l^2} \|x - x'\|^2\right) \] 其中 \( \sigma_ f^2 \) 是信号方差,\( l \) 是长度尺度。 后验分布推导 : 假设已有观测数据集 \( \mathcal{D}_ {1:t} = (X_ t, \mathbf{y}_ t) \),其中 \( X_ t = [ x_ 1, \dots, x_ t]^\top \),\( \mathbf{y} t = [ y_ 1, \dots, y_ t]^\top \)。定义核矩阵 \( K_ t \) 满足 \( (K_ t) {ij} = k(x_ i, x_ j) \),以及 \( \mathbf{k}_ t(x) = [ k(x_ 1, x), \dots, k(x_ t, x) ]^\top \)。 在噪声观测下,先验协方差需加入噪声项:\( \operatorname{Cov}(y_ i, y_ j) = k(x_ i, x_ j) + \sigma_ n^2 \delta_ {ij} \),其中 \( \delta_ {ij} \) 是 Kronecker delta 函数。记 \( K_ t' = K_ t + \sigma_ n^2 I \)。 对于一个新的测试点 \( x_* \),观测值 \( y_* \) 与 \( \mathbf{y} t \) 的联合分布为: \[ \begin{bmatrix} \mathbf{y} t \\ y * \end{bmatrix} \sim \mathcal{N}\left( \mathbf{0}, \begin{bmatrix} K_ t' & \mathbf{k} t(x ) \\ \mathbf{k} t(x )^\top & k(x , x_ ) + \sigma_ n^2 \end{bmatrix} \right) \] 利用条件高斯分布公式,得到预测分布: \[ p(y_* | x_ , \mathcal{D} {1:t}) = \mathcal{N}(\mu_ t(x ), \sigma_ t^2(x_ )) \] 其中后验均值和方差为: \[ \mu_ t(x_ ) = \mathbf{k} t(x )^\top (K_ t')^{-1} \mathbf{y} t \] \[ \sigma_ t^2(x ) = k(x_ , x_ ) + \sigma_ n^2 - \mathbf{k} t(x )^\top (K_ t')^{-1} \mathbf{k} t(x ) \] 这里 \( \mu_ t(x) \) 是 \( f(x) \) 的最佳估计,\( \sigma_ t^2(x) \) 表示不确定性。 第三步:采集函数的设计与优化 采集函数利用后验分布的信息,平衡“利用”(在已知高均值区域采样)和“探索”(在高不确定性区域采样)。最常用的三种采集函数: 期望改进(Expected Improvement, EI) : 定义当前最佳观测值为 \( y_ {\text{best}} = \max_ {i \le t} y_ i \)。改进量 \( I(x) = \max(0, f(x) - y_ {\text{best}}) \)。由于 \( f(x) \) 是随机变量,EI 是改进量的期望: \[ \alpha_ {\text{EI}}(x) = \mathbb{E}[ I(x) | \mathcal{D} {1:t}] = \sigma_ t(x) [ \gamma(x) \Phi(\gamma(x)) + \phi(\gamma(x)) ] \] 其中 \( \gamma(x) = \frac{\mu_ t(x) - y {\text{best}}}{\sigma_ t(x)} \),\( \Phi \) 和 \( \phi \) 分别是标准正态分布的累积分布函数和概率密度函数。EI 在 \( \mu_ t(x) \) 高(利用)或 \( \sigma_ t(x) \) 大(探索)时取大值。 上置信界(Upper Confidence Bound, UCB) : \[ \alpha_ {\text{UCB}}(x) = \mu_ t(x) + \beta_ t \sigma_ t(x) \] 其中 \( \beta_ t \) 是平衡参数(通常随时间增加以鼓励探索)。UCB 具有理论遗憾界(regret bound)保证。 概率改进(Probability of Improvement, PI) : \[ \alpha_ {\text{PI}}(x) = P(f(x) \ge y_ {\text{best}} + \xi) = \Phi\left( \frac{\mu_ t(x) - (y_ {\text{best}} + \xi)}{\sigma_ t(x)} \right) \] \( \xi > 0 \) 是小的正数,避免过度利用。 第四步:贝叶斯优化的完整迭代算法 初始化 : 在定义域 \( \mathcal{X} \) 内随机选择少量点(如通过拉丁超立方采样)并观测得到 \( \mathcal{D}_ {\text{init}} \)。 设定代理模型(GP)的超参数(可通过最大化边际似然初始化)。 循环迭代 (直到评估次数达到上限): a. 拟合高斯过程 :基于当前数据集 \( \mathcal{D} {1:t} \),计算核矩阵 \( K_ t' \) 及其逆(或通过 Cholesky 分解求解)。 b. 优化采集函数 :在 \( \mathcal{X} \) 上寻找 \( x {t+1} = \arg\max_ x \alpha(x; \mathcal{D} {1:t}) \)。由于采集函数通常非凸,可使用全局优化方法(如 DIRECT 算法、多起点梯度优化等)。 c. 观测与更新 :在 \( x {t+1} \) 处评估目标函数(或通过实验)得到 \( y_ {t+1} \),将 \( (x_ {t+1}, y_ {t+1}) \) 加入数据集。 d. 更新 GP 后验 :增量更新核矩阵的逆(或重新拟合),以纳入新数据点。 输出 :返回使观测值最大的点 \( x_ {\text{best}} = \arg\max_ {x \in \{x_ 1,\dots,x_ T\}} y_ i \),或后验均值最大的点。 第五步:关键实现细节与扩展 处理高维空间 :当 \( \mathcal{X} \) 维度高时,GP 的核矩阵计算成本为 \( O(t^3) \),可通过稀疏近似(如使用诱导点)加速。 采集函数优化 :由于 \( \alpha(x) \) 计算成本低,可使用大量随机起始点的局部优化或贝叶斯优化自身来优化它。 考虑噪声 :若观测噪声 \( \sigma_ n^2 \) 未知,可将其作为超参数与 GP 一起优化。 并行化 :可通过多点采集函数(如 q-EI)同时选择多个评估点。 总结 基于高斯过程的贝叶斯优化将黑箱函数优化转化为一个序列决策问题:用 GP 建模目标函数的不确定性,用采集函数指导搜索方向。其核心优势在于以少量评估逼近全局最优,特别适合昂贵函数的优化。实际应用中需注意超参数选择、数值稳定性及计算效率。