参考文章《Auto-Encoding Variational Bayes》.
假设数据集是独立同分布(I.I.D),每个样本皆服从随机分布 p(⋅) p ( ⋅ ) ,数据集有N个样本。我们构造由N个随机变量构成的联合分布 p(x1,...,xN)=∏Ni=1p(xi) p ( x 1 , ... , x N ) = ∏ i = 1 N p ( x i ) 。
从最大似然观点来看联合分布,当N个变量恰好是数据集样本(即:由抽样点组成的联合状态的概率)此时的联合分布的概率应取最大值。
对联合分布取对数似然,有:
logp(x1,...,xN)=∑i=1Nlogp(xi)(1) log p ( x 1 , ... , x N ) = ∑ i = 1 N log p ( x i ) ( 1 )
因为Dataset背后的分布 P(⋅) P ( ⋅ ) 我们是不知道的,因而无法直接生成新的样本,这也是生成模型最终想要实现的目标。
VAE(Variational Auto-Encoder)是一个生成模型,它为解决上述目标,引入了一个隐变量模型,如图:
原来的随机变量只有一个 x x ,现在变成了两个随机变量的联合 (x,z) ( x , z ) ,原来的两个独立概率空间: x∈X x ∈ X 和 z∈Z z ∈ Z ,变成了联合空间 (X×Z) ( X × Z ) 相应的边沿分布(Marginal Distribution)。构造该联合分布只有一个约束条件:要满足 x x 这一侧的边沿分布为 p(x) p ( x ) ,对 z z 没有要求,因而我们可以指定 z z 的分布,比如:正态分布。
由Figure1,为简化推导,考虑连续随机变量,处理公式(1)有:
logp(xi)=∫zqϕ(z|xi)dz⋅logp(xi)=∫zqϕ(z|xi)⋅logp(xi)dz=∫zqϕ(z|xi)⋅logp(xi)⋅qϕ(z|xi)⋅pθ(z|xi)qϕ(z|xi)⋅pθ(z|xi)dz=∫zqϕ(z|xi)⋅logpθ(xi,z)⋅qϕ(z|xi)qϕ(z|xi)⋅pθ(z|xi)dz=∫zqϕ(z|xi)⋅logqϕ(z|xi)pθ(z|xi)dz + ∫zqϕ(z|xi)⋅logpθ(xi,z)qϕ(z|xi)dz(2) log p ( x i ) = ∫ z q ϕ ( z | x i ) d z ⋅ log p ( x i ) = ∫ z q ϕ ( z | x i ) ⋅ log p ( x i ) d z = ∫ z q ϕ ( z | x i ) ⋅ log p ( x i ) ⋅ q ϕ ( z | x i ) ⋅ p θ ( z | x i ) q ϕ ( z | x i ) ⋅ p θ ( z | x i ) d z = ∫ z q ϕ ( z | x i ) ⋅ log p θ ( x i , z ) ⋅ q ϕ ( z | x i ) q ϕ ( z |