数据集 X = { x ( i ) } i = 1 N \mathbf{X}={\{\mathbf{x}^{(i)}}\}_{i=1}^N X={x(i)}i=1N是随机变量 x \mathbf{x} x的 N N N个独立同分布采样。假设数据 x ( i ) \mathbf{x}^{(i)} x(i)由潜变量 z \mathbf{z} z的某种随机过程生成,这种随机过程由两个步骤组成:(1)根据先验概率 p θ ∗ ( z ) p_{\mathbf{\theta}^*}(\mathbf{z}) pθ∗(z)生成采样数据 z ( i ) \mathbf{z}^{(i)} z(i)。(2)根据似然概率 p θ ∗ ( x ∣ z ) p_{\mathbf{\theta}^*}(\mathbf{x}|\mathbf{z}) pθ∗(x∣z)生成采样数据 x ( i ) \mathbf{x}^{(i)} x(i)。其中 p θ ∗ ( z ) p_{\mathbf{\theta}^*}(\mathbf{z}) pθ∗(z)和 p θ ∗ ( x ∣ z ) p_{\mathbf{\theta}^*}(\mathbf{x}|\mathbf{z}) pθ∗(x∣z)来自于 p θ ( z ) p_{\mathbf{\theta}}(\mathbf{z}) pθ(z)和 p θ ( x ∣ z ) p_{\mathbf{\theta}}(\mathbf{x}|\mathbf{z}) pθ(x∣z)的参数族。
对数似然函数数学表示如下:
log p θ ( x ( i ) ) = D K L ( q ϕ ( z ∣ x ( i ) ) ∣ ∣ p θ ( z ∣ x ( i ) ) ) + L ( θ , ϕ ; x ( i ) ) (1) \log p_\mathbf{\theta}(\mathbf{x}^{(i)})=D_{KL}(q_{\phi}(\mathbf{z}|\mathbf{x}^{(i)})||p_{\mathbf{\theta}}(\mathbf{z}|\mathbf{x}^{(i)}))+\mathcal{L}(\mathbf{\theta},\mathbf{\phi};\mathbf{x}^{(i)})\tag{1} logpθ(x(i))=DKL(qϕ(z∣x(i))∣∣pθ(z∣x(i)))+L(θ,ϕ;x(i))(1)
L ( θ , ϕ ; x ( i ) ) = − D K L ( q ϕ ( z ∣ x ( i ) ) ∣ ∣ p θ ( z ) ) + E q ϕ ( z ∣ x ( i ) ) [ log p θ ( x ( i ) ∣ z ) ] = L 1 + L 2 (2) \mathcal{L}(\mathbf{\theta},\mathbf{\phi};\mathbf{x}^{(i)})=-D_{KL}(q_{\mathbf{\phi}}(\mathbf{z}|\mathbf{x}^{(i)})||p_{\mathbf{\theta}}(\mathbf{z}))+\mathbb{E}_{q_{\mathbf{\phi}}(\mathbf{z}|\mathbf{x}^{(i)})}[\log p_{\mathbf{\theta}}(\mathbf{x}^{(i)}|\mathbf{z})]=\mathcal{L}_1+\mathcal{L}_2\tag{2} L(θ,ϕ;x(i))=−DKL(qϕ(z∣x(i))∣∣pθ(z))+Eqϕ(z∣x(i))[logpθ(x(i)∣z)]=L1+L2(2)
D K L D_{KL} DKL表示KL散度, L \mathcal{L} L表示变分下界。根据EM算法思想,由于KL散度非负,可以利用最大化变分下界近似最大化对数似然函数。
变分推断利用形式已知的分布 q ϕ ( z ∣ x ( i ) ) q_{\phi}(\mathbf{z}|\mathbf{x}^{(i)}) qϕ(z∣x(i))近似分布 p θ ( z ∣ x ( i ) ) p_{\theta}(\mathbf{z}|\mathbf{x}^{(i)}) pθ(z∣x(i)),其优化目标为最大化变分下界。
分布函数 p θ ( z j ) p_{\theta}(z_j) pθ(zj)以及 q ϕ ( z j ∣ x ( i ) ) q_{\mathbf{\phi}}(z_j|\mathbf{x}^{(i)}) qϕ(zj∣x(i))服从高斯分布:
KaTeX parse error: \tag works only in display equations
q ϕ ( z j ∣ x ( i ) ) ∼ N ( z j ; u j ( x ( i ) , ϕ ) , σ j 2 ( x ( i ) , ϕ ) ) (4) q_{\mathbf{\phi}}(z_j|\mathbf{x}^{(i)})\sim N(z_j;u_j(\mathbf{x}^{(i)},\phi),{\sigma} _j^2(\mathbf{x}^{(i)},\phi))\tag{4} qϕ(zj∣x(i))∼N(zj;uj(x(i),ϕ),σj2(x(i),ϕ))(4)
L 1 = − ∑ j D K L ( q ϕ ( z j ∣ x ( i ) ) ∣ ∣ p θ ( z j ) ) = 1 2 ∑ j ( 1 + log ( σ j 2 ) − μ j 2 − σ j 2 ) (5) \begin{aligned}\mathcal{L}_1&=-\sum _jD_{KL}(q_{\mathbf{\phi}}(z_j|\mathbf{x}^{(i)})||p_{\mathbf{\theta}}(z_j)) \\&=\frac{1}{2}\sum_j(1+\log(\sigma_j^2)-\mu_j^2-\sigma_j^2)\end{aligned}\tag{5} L1=−j∑DKL(qϕ(zj∣x(i))∣∣pθ(zj))=21j∑(1+log(σj2)−μj2−σj2)(5)
对 L 1 \mathcal{L}_1 L1的求导可采用常规方法。
L 2 ≃ 1 L ∑ l = 1 L log p θ ( x ( i ) ∣ z ( l ) ) , z ( l ) ∼ q ϕ ( z ∣ x ( i ) ) (6) \mathcal{L}_2 \simeq \frac{1}{L}\sum_{l=1}^{L}\log p_{\theta}(\mathbf{x}^{(i)}|\mathbf{z}^{(l)}), \ \mathbf{z}^{(l)}\sim q_{\phi}(\mathbf{z}|\mathbf{x}^{(i)})\tag{6} L2≃L1l=1∑Llogpθ(x(i)∣z(l)), z(l)∼qϕ(z∣x(i))(6)
由于 L 2 \mathcal{L}_2 L2中积分运算十分复杂,因此利用MCMC采样近似计算,但这种方式不可导。参考文献[2]利用MCMC采样方法对 L 2 \mathcal{L}_2 L2求导:
∇ ϕ L 2 ≃ 1 L ∑ l = 1 L log p θ ( x ( i ) ∣ z ( l ) ) ∇ ϕ ln q ϕ ( z ( l ) ∣ x ( i ) ) , z ( l ) ∼ q ϕ ( z ∣ x ( i ) ) (7) \nabla_\phi\mathcal{L}_2\simeq\frac{1}{L}\sum_{l=1}^{L}\log p_\theta(\mathbf{x}^{(i)}|\mathbf{z}^{(l)})\nabla_\phi\ln q_{\phi}(\mathbf{z}^{(l)}|\mathbf{x}^{(i)}), \ \mathbf{z}^{(l)}\sim q_{\phi}(\mathbf{z}|\mathbf{x}^{(i)})\tag{7} ∇ϕL2≃L1l=1∑Llogpθ(x(i)∣z(l))∇ϕlnqϕ(z(l)∣x(i)), z(l)∼qϕ(z∣x(i))(7)
用采样方法所估计的导数会存在很大的方差。
AEVB算法对SGVB估计 L 2 \mathcal{L}_2 L2求导部分进行了改良,首先利用参数转换将对分布 q ϕ ( z ∣ x ( i ) ) q_{\phi}(\mathbf{z}|\mathbf{x}^{(i)}) qϕ(z∣x(i))的采样转换为对正态分布 N ( 0 , 1 ) \mathcal{N}(0,1) N(0,1)的采样:
z = μ + σ ϵ (8) z=\mu+\sigma \epsilon \tag{8} z=μ+σϵ(8)
然后从 N N N个点的完整数据集 X \mathbf{X} X中采样出 M = 100 M=100 M=100个点的批数据集 X M \mathbf{X}^M XM,对于每个数据点采样 L = 1 L=1 L=1次估计导数,最后将 M M M个估计导数求和后乘以系数 N M \frac{N}{M} MN作为最终估计导数。
变分自编码器训练的损失函数包括变分下界 L ( θ , ϕ ; x ) \mathcal{L}(\mathbf{\theta},\mathbf{\phi};\mathbf{x}) L(θ,ϕ;x)以及重构损失 ∣ ∣ x − f d e c o d e r ( z ) ∣ ∣ 2 ||\mathbf{x}-f_{decoder}(\mathbf{z})||^2 ∣∣x−fdecoder(z)∣∣2
变分自编码器可以根据任意输入 z \mathbf{z} z重构出与原始数据集相似的样本 f d e c o d e r ( z ) f_{decoder}(\mathbf{z}) fdecoder(z),但无法指定样本类别。在条件变分自编码的训练阶段,编码器以及解码器都引入了类别数据(例如类别的one-hot向量),在测试阶段,解码器就可以根据类别数据输出指定类别的样本。
[1] Auto-Encoding Variational Bayes
[2] Variational Bayesian Inference with Stochastic Search
[3] Tutorial on Variational Autoencoders
[4]Conditional Variational Autoencoders