变分贝叶斯自编码器笔记

变分贝叶斯自编码器笔记

1. 问题情境

数据集 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θ(xz)生成采样数据 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θ(xz)来自于 p θ ( z ) p_{\mathbf{\theta}}(\mathbf{z}) pθ(z) p θ ( x ∣ z ) p_{\mathbf{\theta}}(\mathbf{x}|\mathbf{z}) pθ(xz)的参数族。

2. 变分下界

对数似然函数数学表示如下:

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ϕ(zx(i))pθ(zx(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ϕ(zx(i))pθ(z))+Eqϕ(zx(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ϕ(zx(i))近似分布 p θ ( z ∣ x ( i ) ) p_{\theta}(\mathbf{z}|\mathbf{x}^{(i)}) pθ(zx(i)),其优化目标为最大化变分下界。

3. SGVB估计与AEVB算法

分布函数 p θ ( z j ) p_{\theta}(z_j) pθ(zj)以及 q ϕ ( z j ∣ x ( i ) ) q_{\mathbf{\phi}}(z_j|\mathbf{x}^{(i)}) qϕ(zjx(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ϕ(zjx(i))N(zj;uj(x(i),ϕ),σj2(x(i),ϕ))(4)

3.1 SGVB估计

3.1.1 对 L 1 \mathcal{L}_1 L1求导

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=jDKL(qϕ(zjx(i))pθ(zj))=21j(1+log(σj2)μj2σj2)(5)

L 1 \mathcal{L}_1 L1的求导可采用常规方法。

3.1.2 对 L 2 \mathcal{L}_2 L2求导

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} L2L1l=1Llogpθ(x(i)z(l)), z(l)qϕ(zx(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} ϕL2L1l=1Llogpθ(x(i)z(l))ϕlnqϕ(z(l)x(i)), z(l)qϕ(zx(i))(7)

用采样方法所估计的导数会存在很大的方差。

3.2 AEVB算法

AEVB算法对SGVB估计 L 2 \mathcal{L}_2 L2求导部分进行了改良,首先利用参数转换将对分布 q ϕ ( z ∣ x ( i ) ) q_{\phi}(\mathbf{z}|\mathbf{x}^{(i)}) qϕ(zx(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作为最终估计导数。

4.自编码器的训练

变分自编码器训练的损失函数包括变分下界 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 xfdecoder(z)2

5.条件变分自编码器

变分自编码器可以根据任意输入 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

你可能感兴趣的:(深度学习,自编码器,深度学习,机器学习,人工智能)