Tree-structured Parzen Estimator Approach

本篇介绍黑盒优化的理论, 重点围绕 Tree-structured Parzen Estimator (TPE) 展开. 主要参考 NIPS 2011 的超参数优化论文: Algorithms for Hyper-Parameter Optimization [1].

Sequential Model-based Global Optimization (SMBO)

序贯搜索方法 (SMBO / 贝叶斯优化) 是为黑盒优化场景设计的: 目标函数不可微、内部机制未知, 只能通过一次次试验拿到“输入→得分/损失”的反馈, 然后边学边试, 用代理模型指导下一次评估. SMBO 用来最优化期望改进 (Expected Improvement, EI), 目标是优化一个昂贵函数 f:XRNf: X \rightarrow \mathbb{R}^N, (XX 为输入空间). 期望改进是选择下一个评估点 xx 的策略, 基于已知数据和模型, 选择能够最大化改进的点, 形式化为

EIy(x):=max(yy,0)pM(yx)dy \mathbf{E I}_{y^*}(x):=\int_{-\infty}^{\infty} \max \left(y^*-y, 0\right) p_M(y \mid x) d y

其中, yy^* 是分位数阈值 (比如取10%分位, 即数据集中 10% 的数据小于等于该分位数), yyffxx 点处的取值, 由于 ff 函数是无解析式的黑盒, 所以采用模型 MM 来近似 PM(yx)P_M(y\mid x), 即估计在给定 xx 条件下的 y=f(x)y = f(x) 概率分布. max(yy,0)max(y^* - y, 0) 是计算潜在的改进, 如果阈值 yy^* 高于 yy 则取差值表示潜在的改进, 否则就是没有改进的可能, 则取 0.

PM(yx)P_M(y\mid x) 是模型 MM 预测的概率分布, 表示输入 xx, f(x)f(x) 取值为 yy 的概率.

最终, 期望改进是对所有可能取值 yy 的改进的加权平均.

SMBO 的伪代码如下:

image-20251015140958695

其中, ff 即真实运行的函数, M0M_0 是初始的代理模型(可以为空模型或者带先验的模型), TT 是外层循环次数(评估 ff 的次数), SS 是给定模型 MM 的采集函数, 即预测点 xx 的可优化标量, 用来挑选下一个评估点, 比如 EI (Expected Improvement) / PI (Probability of Improvement) / UCB (Upper Confidence Bound) 或 TPE 的 g(x)/(x)g(x)/\ell(x).

H={(xi,f(xi))}\mathcal{H} = \{(x_i, f(x_i))\} 是观测的历史数据, 初始化为空集. Mt1M_{t-1} 用上一轮历史 H\mathcal{H} 拟合得到的当前代理模型, argminxargmin_x 取出在可行域 XX 内最小化采集函数的点 xx (如果是最大化问题, 则用 argmaxxargmax_x), 这步属于内层数值优化, 通常可以采用随机搜索、多启动、CMA-ES、网格微调等方法.

Evaluate f(x)Evaluate\ f(x^*) 即实际运行函数 ff 拿到真实的结果 yy.

Fit a new model MtM_t to H\mathcal{H}, 则是用新的历史重新拟合代理模型 MM. 这一步, Gaussian Process Approach (GP) 是更新 $p(y\mid x)$, Tree-structured Parzen Estimator (TPE) 则是重建 g(x)/(x)g(x) / \ell(x) 或密度估计.

最后返回 H\mathcal{H}, 最优解可以取其中的 argmin f(x)argmin\ f(x) (最大化问题取 argmax f(x)argmax\ f(x)).

Tree-structured Parzen Estimator (TPE)

Concepts

  • 分位数阈值 yy^*: 选择 yy^* 为观察到的损失值(或者奖励值)的某个分位数, 如 γ\gamma 分位数使 p(y<y)=γp(y < y^*) = \gamma. 这样 TPE 通过选择分位数来划分“好解集”和“坏解集”, 这样既保证了优化过程的多样性, 又避免了模型对最优值的过度集中.
  • 好解集 (x)\ell(x): 指那些损失小于 yy^* 的点; 如果是最大化奖励目标, 则是大于 yy^* 的点
  • 坏解集 g(x)g(x): 指那些损失大于或等于 yy^* 的点; 如果是最大化奖励目标, 则是小于或等于 yy^* 的点

Comparison

  • 高斯过程 (GP): GP 方法通过直接建模目标函数 p(yx)p(y\mid x), 即在给定输入 xx 的条件下, 估计输出 yy 的分布. 这种方法在面对低维度数据时效果很好, 但当维度很高时, 它的计算开销和样本效率会变差.

  • TPE (树结构 Parzen 估计): 相较于 GP, TPE 并不直接建模 p(yx)p(y\mid x) , 而是建模 p(xy)p(x\mid y)p(y)p(y). TPE 通过替代传统的配置空间分布 (prior distribution) , 采用非参数密度 (如高斯混合模型) 来建模目标函数的行为. 它将模型中的参数空间表示为树状结构, 而不是直接在空间内进行建模.

TPE Modeling

p(xy)p(x\mid y) 在给定损失 yy 的条件下, 预测配置 xx 的密度. 分为两部分 (x)\ell(x) 用于好解集, g(x)g(x) 用于坏解集.

p(xy)={(x) if y<yg(x) if yy p(x \mid y)= \begin{cases}\ell(x) & \text { if } y<y^* \\ g(x) & \text { if } y \geq y^*\end{cases}

通过在 H\mathcal{H} 中保存已观测变量的有序列表, TPE 算法每次迭代的运行时间可以与 H|\mathcal{H}| 成线性关系, 并与被优化的变量 (维度) 的数量成线性关系.

TPE 的 EI 最优化公式推导

EIy(x)=y(yy)p(yx)dy=y(yy)p(xy)p(y)p(x)dy \mathrm{EI}_{y^*}(x)=\int_{-\infty}^{y^*}\left(y^*-y\right) p(y \mid x) d y=\int_{-\infty}^{y^*}\left(y^*-y\right) \frac{p(x \mid y) p(y)}{p(x)} d y

代入 γ=p(y<y)\gamma=p\left(y<y^*\right) p(x)=Rp(xy)p(y)dy=γ(x)+(1γ)g(x) p(x)=\int_{\mathbb{R}} p(x \mid y) p(y) d y=\gamma \ell(x)+(1-\gamma) g(x) 得到

y(yy)p(xy)p(y)dy=(x)y(yy)p(y)dy=γy(x)(x)yp(y)dy \int_{-\infty}^{y^*}\left(y^*-y\right) p(x \mid y) p(y) d y=\ell(x) \int_{-\infty}^{y^*}\left(y^*-y\right) p(y) d y=\gamma y^* \ell(x)-\ell(x) \int_{-\infty}^{y^*} p(y) dy

最后可以推出

EIy(x)=γy(x)(x)yp(y)dyγ(x)+(1γ)g(x)(γ+g(x)(x)(1γ))1 E I_{y^*}(x)=\frac{\gamma y^* \ell(x)-\ell(x) \int_{-\infty}^{y^*} p(y) d y}{\gamma \ell(x)+(1-\gamma) g(x)} \propto\left(\gamma+\frac{g(x)}{\ell(x)}(1-\gamma)\right)^{-1}

所以, 为了最大化 EIy(x)E I_{y^*}(x), 我们只需要最大化 (x)/g(x)\ell(x) / g(x). 即选择那些在 (x)\ell(x) 下具有较高概率且在 g(x)g(x) 下具有较低概率的点. (x)\ell(x)g(x)g(x) 的树结构形式使得根据 (x)\ell(x) 来生成许多候选点变得简单. 在每次迭代中, 算法返回具有最大期望改进 EIEI 的候选点 xx^*.

Reference

[1] James Bergstra, Rémi Bardenet, Yoshua Bengio, and Balázs Kégl. 2011. Algorithms for hyper-parameter optimization. In Proceedings of the 25th International Conference on Neural Information Processing Systems (NIPS'11). Curran Associates Inc., Red Hook, NY, USA, 2546–2554.

results matching ""

    No results matching ""