AutoML 系列 - TPE简介

本文主要对 Tree-structured Parzen Estimator Approach (TPE) 进行介绍

SMBO 算法框架包含一系列优化算法,基本框架如下,而这个框架下的一系列算法的区别主要就在于选取的 surrogate model M M M 以及 评价标准 S S S
AutoML 系列 - TPE简介_第1张图片
这里介绍一种基于这个框架的优化方法,Tree-structured Parzen Estimator Approach (TPE)

TPE

该方法选择的评价标准 S S S为 Expected Improvement (EI),即 f ( x ) f(x) f(x)会小于某个阈值 y ∗ y^* y的期望。

E I y ∗ ( x ) = ∫ − ∞ ∞ m a x ( y ∗ − y , 0 ) p ( y ∣ x ) d y EI_{y^*}(x)=\int_{-\infty}^{\infty}max(y^*-y,0)p(y|x)dy EIy(x)=max(yy,0)p(yx)dy

TPE 定义如下两个概率密度,

p ( x ∣ y ) = { l ( x ) ,   y < y ∗ g ( x ) ,   y ≥ y ∗ p(x|y)=\left\{ \begin{aligned} l(x), \ yp(xy)={l(x), y<yg(x), yy

l ( x ) l(x) l(x) f ( x i ) f(x^i) f(xi)的值小于 y ∗ y^* y对应的 { x i } \{x^i\} {xi}集合的概率密度; g ( x ) g(x) g(x) f ( x i ) f(x^i) f(xi)的值大于等于 y ∗ y^* y对应的 { x i } \{x^i\} {xi}集合的概率密度。这两个概率密度即为 M M M

那么 y ∗ y^* y如何决定呢?

TPE 采取的方法是,选取在 { y i } \{y^i\} {yi}的一定分位数 γ \gamma γ处的数值作为 y ∗ y^* y,即 p ( y < y ∗ ) = γ p(yp(y<y)=γ

接下来的问题就在于如何求解上面伪代码中第3行的优化问题了。

因为我们无法直接得知 p ( y ∣ x ) p(y|x) p(yx),所以使用贝叶斯公式进行如下转换,

E I y ∗ ( x ) = ∫ − ∞ ∞ m a x ( y ∗ − y , 0 ) p ( y ∣ x ) d y = ∫ − ∞ y ∗ m a x ( y ∗ − y , 0 ) p ( y ∣ x ) d y = ∫ − ∞ y ∗ m a x ( y ∗ − y , 0 ) p ( x ∣ y ) p ( y ) p ( x ) d y EI_{y^*}(x)=\int_{-\infty}^{\infty}max(y^*-y,0)p(y|x)dy \\ =\int_{-\infty}^{y^*}max(y^*-y,0)p(y|x)dy \\ = \int_{-\infty}^{y^*}max(y^*-y,0)\frac{p(x|y)p(y)}{p(x)}dy EIy(x)=max(yy,0)p(yx)dy=ymax(yy,0)p(yx)dy=ymax(yy,0)p(x)p(xy)p(y)dy

又因为 γ = p ( y < y ∗ ) \gamma = p(yγ=p(y<y)并且 p ( x ) = ∫ p ( x ∣ y ) p ( y ) d y = γ l ( x ) + ( 1 − γ ) g ( x ) p(x)=\int p(x|y)p(y)dy=\gamma l(x) + (1-\gamma)g(x) p(x)=p(xy)p(y)dy=γl(x)+(1γ)g(x)

所以
E I y ∗ ( x ) = ∫ − ∞ y ∗ m a x ( y ∗ − y , 0 ) p ( x ∣ y ) p ( y ) p ( x ) d y = ∫ − ∞ y ∗ m a x ( y ∗ − y , 0 ) p ( x ∣ y ) p ( y ) d y p ( x ) = l ( x ) ∗ ∫ − ∞ y ∗ m a x ( y ∗ − y , 0 ) p ( y ) d y p ( x ) = l ( x ) y ∗ γ − l ( x ) ∫ − ∞ y ∗ p ( y ) d y γ l ( x ) + ( 1 − γ ) g ( x ) ∝ ( γ + g ( x ) l ( x ) ( 1 − γ ) ) − 1 EI_{y^*}(x)= \int_{-\infty}^{y^*}max(y^*-y,0)\frac{p(x|y)p(y)}{p(x)}dy \\ = \frac{ \int_{-\infty}^{y^*}max(y^*-y,0)p(x|y)p(y)dy}{p(x)} \\ = \frac{ l(x)*\int_{-\infty}^{y^*}max(y^*-y,0)p(y)dy}{p(x)} \\ = \frac{ l(x)y^*\gamma-l(x)\int_{-\infty}^{y^*}p(y)dy}{\gamma l(x) + (1-\gamma)g(x)} \\ \propto(\gamma+\frac{g(x)}{l(x)}(1-\gamma))^{-1} EIy(x)=ymax(yy,0)p(x)p(xy)p(y)dy=p(x)ymax(yy,0)p(xy)p(y)dy=p(x)l(x)ymax(yy,0)p(y)dy=γl(x)+(1γ)g(x)l(x)yγl(x)yp(y)dy(γ+l(x)g(x)(1γ))1

所以我们可以看出,通过 l ( x ) l(x) l(x)求出概率较高,通过 g ( x ) g(x) g(x)求出概率较小的 x x x,会使 E I EI EI较大。 l ( x ) l(x) l(x) g ( x ) g(x) g(x)tree-structured 的形式表示,会比较方便根据 l ( x ) l(x) l(x)进行采样,并计算 g ( x ) / l ( x ) g(x)/l(x) g(x)/l(x)

上述伪代码在每一轮迭代都返回有最大 E I EI EI x ∗ x^* x

参考资料:《Algorithms for Hyper-Parameter Optimization》

你可能感兴趣的:(超参数优化)