Reparameterization Trick
在 VAE 中,我们要对 ELBO 求关于 ϕ 的偏导数 Eqϕ(z∣x)[f(z)],z 是连续随机变量, z given x 的条件密度函数为 gϕ(z∣x)。在 VAE 中 z 作为 encoder 的输出,其具有灵活性。
Change of variables
我们可以认为 z 是在 x 和 ϕ 给定情况下,由另外一个确定的随机变量 ϵ∼p(ϵ) 经过可微和可逆的变换 g 得到的,
z=gϕ(ϵ,x) ϵ 和 x 和 ϕ 是无关的。
忽略 x 和 ϕ ,因为它们都是给定的。则
z=g(ϵ)=(g1(ϵ1,...,ϵn),...,gn(ϵ1,...,ϵn)) 由于 g 可逆,因此存在逆映射
ϵ=(ϵ1,...,ϵn)=(h1(z1,...,zn),...,hn(z1,...,zn))=h(z) 因此我们有 z=g(h(z)),根据链式法则:
∂z∂z=∂h∂g∂z∂h=∂ϵ∂g∂z∂h 等式左边是单位矩阵 I,我们对两边取行列式,则有
1=det(I)=det(∂ϵ∂g∂z∂h)=det(∂ϵ∂g)⋅det(∂z∂h) qϕ(z∣x) 是随机变量函数的概率密度函数,则有
qϕ(z∣x)=p(ϵ)∣∣det(∂z∂h)∣∣ 对 dz 做变量替换 z=gϕ(ϵ,x),则有
dz=∣∣det(∂ϵ∂g)∣∣dϵ 因此
qϕ(z∣x)dz=p(ϵ)∣∣det(∂ϵ∂g)∣∣⋅∣∣det(∂z∂h)∣∣=p(ϵ)dϵ Monte Carlo estimte under change of variables
在使用了上面的变量替换之后,对于任何一个随机变量函数 f(z),我们有
Eqϕ(z∣x)[f(z)]=∫f(z)qϕ(z∣x)dz=∫f(gϕ(ϵ,x))p(ϵ)dϵ=Ep(ϵ)[f(z)] 期望的 Monte Carlo estimte:
Eqϕ(z∣x)[f(z)]=Ep(ϵ)[f(z)]=Ep(ϵ)[f(z)]≃L1l=1∑Lf(gϕ(ϵ(l),x)) 其中 ϵ(l)∼p(ϵ).
如上所示,利用 reparameterization 可以用来重写关于 qϕ(z∣x) 的期望,使得对期望的 Monte Carlo estimate 关于 ϕ 可微。
Example
单变量高斯分布 z∼p(z∣x)=N(μ,σ2),其中 μ 和 σ 由 x 和 ϕ 决定,根据上述对变换 g 的要求,令 z=μ+σϵ,其中 ϵ∼N(0,1),则
EN(μ,σ2)[f(z)]=EN(μ,σ2)[f(μ+σϵ)]≃l=1∑Lf(μ+σϵ(l)) 其中 ϵ(l)∼N(0,1).