本文主要对 Tree-structured Parzen Estimator Approach (TPE) 进行介绍
SMBO 算法框架包含一系列优化算法,基本框架如下,而这个框架下的一系列算法的区别主要就在于选取的 surrogate model M M M 以及 评价标准 S S S。
这里介绍一种基于这个框架的优化方法,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(y∗−y,0)p(y∣x)dy
TPE 定义如下两个概率密度,
p ( x ∣ y ) = { l ( x ) , y < y ∗ g ( x ) , y ≥ y ∗ p(x|y)=\left\{ \begin{aligned} l(x), \ y
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(y
接下来的问题就在于如何求解上面伪代码中第3行的优化问题了。
因为我们无法直接得知 p ( y ∣ x ) p(y|x) p(y∣x),所以使用贝叶斯公式进行如下转换,
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(y∗−y,0)p(y∣x)dy=∫−∞y∗max(y∗−y,0)p(y∣x)dy=∫−∞y∗max(y∗−y,0)p(x)p(x∣y)p(y)dy
又因为 γ = p ( y < y ∗ ) \gamma = p(y
所以
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)=∫−∞y∗max(y∗−y,0)p(x)p(x∣y)p(y)dy=p(x)∫−∞y∗max(y∗−y,0)p(x∣y)p(y)dy=p(x)l(x)∗∫−∞y∗max(y∗−y,0)p(y)dy=γl(x)+(1−γ)g(x)l(x)y∗γ−l(x)∫−∞y∗p(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》