问题
对于观察(observation)和隐变量,其联合概率密度为
变分分布为。这里的和为模型(model)和变分分布(guide)的参数。【注:所谓变分就是将原始函数换作另一(易处理的)函数的数学技巧】
目标为最大化证据(evidence)的对数形式。而通常做法是最大化“(对数的)证据下限”ELBO(evidence lower bound),其形式如下:
ELBO和证据的对数,二者之差为:
ELBO的无偏梯度估计为:
我们考虑一个更一般的形式:
【注:这里的指代更一般化的参数,和ELBO中狭义的不同。】
题外话:的最优值等于
我们借用结论,我们使用拉格朗日法:
当我们取时,
这时的后验概率恰好有
易处理的情况:可重参数化的随机变量
假如我们能够对随机变量重参数化为
也就是说,我们把对依赖的项,全部放在求期望的范围里(即用E给“框”在里面),这时候就不再依赖于了。
这样的重参数化操作,可以对许多分布使用(比如高斯分布)。这样我们就得到梯度估计:
这里假定和都是光滑的(即可导的),我们就可以用蒙特卡洛法(将多次观察求平均)求解上述无偏的梯度估计了。
取巧的情况:非重参数化的随机变量
如果不能使用重参数化,例如分布是离散的,这时上面的技巧就不管用了。
我们将梯度估计量展开:
由链式法则,我们继续展开:
对于存在恒等式
代入上式得:
我们把求期望和梯度的项写在一起,称为“代理目标”(surrogate objective):
于是ELBO的梯度无偏估计为
。
的横线表示该项对来说是常数,不对求导数。
减少梯度估计的方差
考虑下面的等式:
其中为任意的常数。这是因为:
于是,对于,我们利用上述等式,用下面的项代替:
二者的梯度的期望是相同的。更妙的是,不必是常数,只要对下游任务没有影响即可。所以可设为上游任务,自变量为的函数。
参考文献:http://pyro.ai/examples/svi_part_iii.html
网友评论