PRML读书笔记 第十章 近似推断(1)
从今天起开始更新关于PRML书籍当中的一些学习笔记和感悟心得。目前先从最近所学的部分开始更新,会在未来一段时间当中补更之前的章节所学内容。
这篇文章主要简述一下变分估计方法的作用和基本概念,并详细对比变分近似法下解决线性回归问题和之前的统计方法解决线性问题的异同。
近似推断方法概述
-
近似推断方法的作用
之前我们学习过利用极大似然估计等统计学方法对于各种模型(线性回归模型,混合高斯模型等等)进行处理。利用近似推断的方法其实与之前所使用的方法能够得到类似的结果,然而利用传统方法可能会出现比较难以处理的概率分布,或者参数过多计算复杂度过大的情况。这种时候我们就需要引入近似算法来计算相应的结果。 -
变分法
我理解的变分法的主要思想是把我们所需求的后验概率 p ( Z ∣ X ) \ p\left(Z |X\right) p(Z∣X) 近似为我们变分选择的一个量 q ( Z ) \ q\left(Z \right) q(Z) ,再通过对于 q ( Z ) \ q\left(Z \right) q(Z) 进行一种类似于递归迭代的方法来进行求解。
其在对边缘概率 ln p ( X ) \ln p\left(X \right) lnp(X)进行分解 ln p ( X ) = ζ ( q ) + K L ( q ∣ ∣ p ) \ln p\left(X \right)=\zeta(q)+KL\left(q ||p\right) lnp(X)=ζ(q)+KL(q∣∣p) 的时候使用了KL散度:
K L ( q ∣ ∣ p ) = − ∫ q ( Z ) ln { p ( X , Z ) q ( Z ) } d Z \ KL\left(q ||p\right)=-\int\,q\left(Z \right)\ln\lbrace\frac{p\left(X,Z\right)}{q\left(Z \right)}\rbrace dZ KL(q∣∣p)=−∫q(Z)ln{ q(Z)p(X,Z)}dZ
这其中KL散度曾经在VAE模型当中使用过,在VAE模型当中它所起到的作用也是作为我们所需概率分布的重要近似。
分解概率分布的方法是一种比较常用的利用变分法进行计算的方法,也是后续所对比的几种方法中比较常用的。其步骤与EM算法类似,核心是限制
q ( Z ) q\left(\boldsymbol{Z} \right) q(Z)的分布,将Z元素分解成若干个互不相交的组,即 q ( Z ) = ∏ i = 1 M q i ( Z ) q\left(\boldsymbol{Z} \right)=\prod_{i=1}^M q_i\left(\boldsymbol{Z} \right) q(Z)=∏i=1Mqi(Z)
那么对于 ζ ( q ) \zeta(q) ζ(q)有下述变换:
ζ ( q ) = ∫ ∏ i = 1 q i { ln p ( X , Z ) − ∑ k = 1 ln q i } d Z = ∫ q j { ∫ ln p ( X , Z ) ∏ i ≠ j q i d Z j } − ∫ q j ln q j d Z j + 常 数 = ∫ q j ln p ~ ( X , Z ) d Z j − ∫ q j ln q j d Z j + 常 数 \zeta(q)=\int\,\prod_{i=1}q_i\lbrace\ln p(\boldsymbol{X,Z})-\sum_{k=1}\ln q_i\rbrace d\boldsymbol{Z}\\ =\int\,q_j\lbrace\int\,\ln p(\boldsymbol{X,Z})\prod_{i \neq j}q_id\boldsymbol{Z_j}\rbrace-\int\,q_j\ln q_jd\boldsymbol{Z_j}+常数\\ =\int\,q_j\ln \tilde{p}(\boldsymbol{X,Z})d\boldsymbol{Z_j}-\int\,q_j\ln q_jd\boldsymbol{Z_j}+常数 ζ(q)=∫i=1∏qi{ lnp(X,Z)−k=1∑lnqi}dZ=∫qj{ ∫lnp(X,Z)i=j∏qidZj}−∫qjlnqj