ELBO 梯度估计

问题

对于观察(observation)和隐变量,其联合概率密度为

变分分布为。这里的和为模型(model)和变分分布(guide)的参数。【注:所谓变分就是将原始函数换作另一(易处理的)函数的数学技巧】
目标为最大化证据(evidence)的对数形式。而通常做法是最大化“(对数的)证据下限”ELBO(evidence lower bound),其形式如下:

ELBO和证据的对数,二者之差为:

ELBO的无偏梯度估计为:

我们考虑一个更一般的形式:

【注:这里的指代更一般化的参数,和ELBO中狭义的不同。】

题外话:的最优值等于

我们借用结论,我们使用拉格朗日法:



当我们取时,

这时的后验概率恰好有

易处理的情况:可重参数化的随机变量

假如我们能够对随机变量重参数化为

也就是说,我们把对依赖的项,全部放在求期望的范围里(即用E给“框”在里面),这时候就不再依赖于了。
这样的重参数化操作,可以对许多分布使用(比如高斯分布)。这样我们就得到梯度估计:

这里假定和都是光滑的(即可导的),我们就可以用蒙特卡洛法(将多次观察求平均)求解上述无偏的梯度估计了。

取巧的情况:非重参数化的随机变量

如果不能使用重参数化,例如分布是离散的,这时上面的技巧就不管用了。
我们将梯度估计量展开:

由链式法则,我们继续展开:

对于存在恒等式

代入上式得:

我们把求期望和梯度的项写在一起,称为“代理目标”(surrogate objective)

于是ELBO的梯度无偏估计为

的横线表示该项对来说是常数,不对求导数。

减少梯度估计的方差

考虑下面的等式:

其中为任意的常数。这是因为:
\mathbb{E}_{q_{\phi}({\bf z})} \left [\nabla_{\phi} \log q_{\phi}({\bf z}) \right]= \int \!d{\bf z} \; q_{\phi}({\bf z}) \nabla_{\phi} \log q_{\phi}({\bf z})= \int \! d{\bf z} \; \nabla_{\phi} q_{\phi}({\bf z})= \nabla_{\phi} \int \! d{\bf z} \; q_{\phi}({\bf z})=\nabla_{\phi} 1 = 0
于是,对于,我们利用上述等式,用下面的项代替:

二者的梯度的期望是相同的。更妙的是,不必是常数,只要对下游任务没有影响即可。所以可设为上游任务,自变量为的函数
参考文献:http://pyro.ai/examples/svi_part_iii.html

你可能感兴趣的:(ELBO 梯度估计)