当前位置: 首页 > news >正文

建设二手商品网站总结建设银行官网首页 网站

建设二手商品网站总结,建设银行官网首页 网站,东莞注册营业执照,咨询网站搭建本文主要记录了自己对变分自编码器论文的理解。 Kingma D P, Welling M. Auto-encoding variational bayes[J]. arXiv preprint arXiv:1312.6114, 2013. https://arxiv.org/abs/1312.6114 1 带有潜在变量的极大似然估计 假设我们有一个有限整数随机数发生器 z ∼ p θ ( z ) …本文主要记录了自己对变分自编码器论文的理解。 Kingma D P, Welling M. Auto-encoding variational bayes[J]. arXiv preprint arXiv:1312.6114, 2013. https://arxiv.org/abs/1312.6114 1 带有潜在变量的极大似然估计 假设我们有一个有限整数随机数发生器 z ∼ p θ ( z ) z \sim {p_\theta }\left( z \right) z∼pθ​(z) z 1 , 2 , . . . , K z 1,2,...,K z1,2,...,K且每一个整数 z z z 都对应着一个随机分布 p θ ( x ∣ z ) {p_\theta }\left( {x|z} \right) pθ​(x∣z)其中 θ \theta θ 代表这个随机系统所涉及所有参数的集合。根据全概率公式可知 p θ ( x ) ∑ z 1 K p θ ( x , z ) ∑ z 1 K p θ ( x ∣ z ) p θ ( z ) . (1.1) {p_\theta }\left( x \right) \sum\limits_{z 1}^K {{p_\theta }\left( {x,z} \right)} \sum\limits_{z 1}^K {{p_\theta }\left( {x|z} \right){p_\theta }\left( z \right)} .\tag{1.1} pθ​(x)z1∑K​pθ​(x,z)z1∑K​pθ​(x∣z)pθ​(z).(1.1) 在实际应用中我们往往只能获取到 x x x而无法直接得知 x x x 采样自哪个条件分布 p θ ( x ∣ z ) {p_\theta }\left( {x|z} \right) pθ​(x∣z)。这时 z z z 称为潜在变量。如果我们要通过独立同分布数据集 X { x ( i ) } i 1 N X \left\{ {{x^{\left( i \right)}}} \right\}_{i 1}^N X{x(i)}i1N​ 来估计未知的分布参数 θ \theta θ根据极大似然估计相当于最大化以下函数 L ( θ ; X ) log ⁡ ∏ i 1 N p θ ( x ( i ) ) ∑ i 1 N log ⁡ ∑ z 1 K p θ ( x ( i ) ∣ z ) p θ ( z ) . (1.2) {\cal L}\left( {\theta ;X} \right) \log \prod\limits_{i 1}^N {{p_\theta }\left( {{x^{\left( i \right)}}} \right)} \sum\limits_{i 1}^N {\log \sum\limits_{z 1}^K {{p_\theta }\left( {{x^{\left( i \right)}}|z} \right){p_\theta }\left( z \right)} } .\tag{1.2} L(θ;X)logi1∏N​pθ​(x(i))i1∑N​logz1∑K​pθ​(x(i)∣z)pθ​(z).(1.2) 这时可以发现log 函数内部包含了求和部分这对于梯度计算非常麻烦。 为了解决以上问题我们需要引入变分的思想。引入一个关于潜在变量 z z z 的未知条件分布 q ϕ ( z ∣ x ) {q_\phi }\left( {z|x} \right) qϕ​(z∣x)注意此分布无需与 θ \theta θ 相关结合 Jensen 不等式可得 log ⁡ p θ ( x ) log ⁡ ∑ z 1 K p θ ( x , z ) log ⁡ ∑ z 1 K q ϕ ( z ∣ x ) p θ ( x , z ) q ϕ ( z ∣ x ) ≥ ∑ z 1 K q ϕ ( z ∣ x ) log ⁡ p θ ( x , z ) q ϕ ( z ∣ x ) . (1.3) \begin{array}{c} \log {p_\theta }\left( x \right) \log \sum\limits_{z 1}^K {{p_\theta }\left( {x,z} \right)} \log \sum\limits_{z 1}^K {{q_\phi }\left( {z|x} \right)\frac{{{p_\theta }\left( {x,z} \right)}}{{{q_\phi }\left( {z|x} \right)}}} \\ \ge \sum\limits_{z 1}^K {{q_\phi }\left( {z|x} \right)\log \frac{{{p_\theta }\left( {x,z} \right)}}{{{q_\phi }\left( {z|x} \right)}}} . \end{array}\tag{1.3} logpθ​(x)logz1∑K​pθ​(x,z)logz1∑K​qϕ​(z∣x)qϕ​(z∣x)pθ​(x,z)​≥z1∑K​qϕ​(z∣x)logqϕ​(z∣x)pθ​(x,z)​.​(1.3) 且可计算得不等式两侧差距为 log ⁡ p θ ( x ) − ∑ z 1 K q ϕ ( z ∣ x ) log ⁡ p θ ( x , z ) q ϕ ( z ∣ x ) ∑ z 1 K q ϕ ( z ∣ x ) ( log ⁡ p θ ( x ) − log ⁡ p θ ( x , z ) q ϕ ( z ∣ x ) ) ∑ z 1 K q ϕ ( z ∣ x ) log ⁡ q ϕ ( z ∣ x ) p θ ( x ) p θ ( x , z ) ∑ z 1 K q ϕ ( z ∣ x ) log ⁡ q ϕ ( z ∣ x ) p θ ( z ∣ x ) D K L ( q ϕ ( z ∣ x ) ∥ p θ ( z ∣ x ) ) . (1.4) \begin{array}{l} \log {p_\theta }\left( x \right) - \sum\limits_{z 1}^K {{q_\phi }\left( {z|x} \right)\log \frac{{{p_\theta }\left( {x,z} \right)}}{{{q_\phi }\left( {z|x} \right)}}} \\ \sum\limits_{z 1}^K {{q_\phi }\left( {z|x} \right)\left( {\log {p_\theta }\left( x \right) - \log \frac{{{p_\theta }\left( {x,z} \right)}}{{{q_\phi }\left( {z|x} \right)}}} \right)} \\ \sum\limits_{z 1}^K {{q_\phi }\left( {z|x} \right)\log \frac{{{q_\phi }\left( {z|x} \right){p_\theta }\left( x \right)}}{{{p_\theta }\left( {x,z} \right)}}} \\ \sum\limits_{z 1}^K {{q_\phi }\left( {z|x} \right)\log \frac{{{q_\phi }\left( {z|x} \right)}}{{{p_\theta }\left( {z|x} \right)}}} \\ {D_{KL}}\left( {{q_\phi }\left( {z|x} \right)\parallel {p_\theta }\left( {z|x} \right)} \right). \end{array}\tag{1.4} logpθ​(x)−z1∑K​qϕ​(z∣x)logqϕ​(z∣x)pθ​(x,z)​z1∑K​qϕ​(z∣x)(logpθ​(x)−logqϕ​(z∣x)pθ​(x,z)​)z1∑K​qϕ​(z∣x)logpθ​(x,z)qϕ​(z∣x)pθ​(x)​z1∑K​qϕ​(z∣x)logpθ​(z∣x)qϕ​(z∣x)​DKL​(qϕ​(z∣x)∥pθ​(z∣x)).​(1.4) 即不等式两侧差距刚好为未知分布 q ϕ ( z ∣ x ) {q_\phi }\left( {z|x} \right) qϕ​(z∣x) 与后验分布 p θ ( z ∣ x ) {p_\theta }\left( {z|x} \right) pθ​(z∣x) 的 KL 散度其具有非负性当且仅当两分布相同时 KL 散度为 0。于是我们可以将式 (1.2) 拆分为以下两部分 L ( θ ; X ) ∑ i 1 N L ( θ ; x ( i ) ) ∑ i 1 N log ⁡ p θ ( x ( i ) ) ∑ i 1 N [ D K L ( q ϕ ( z ∣ x ( i ) ) ∥ p θ ( z ∣ x ( i ) ) ) L ( θ , ϕ ; x ( i ) ) ] , (1.5) \begin{array}{l} {\cal L}\left( {\theta ;X} \right) \sum\limits_{i 1}^N {{\cal L}\left( {\theta ;{x^{\left( i \right)}}} \right)} \sum\limits_{i 1}^N {\log {p_\theta }\left( {{x^{\left( i \right)}}} \right)} \\ \sum\limits_{i 1}^N {\left[ {{D_{KL}}\left( {{q_\phi }\left( {z|{x^{\left( i \right)}}} \right)\parallel {p_\theta }\left( {z|{x^{\left( i \right)}}} \right)} \right) {\cal L}\left( {\theta ,\phi ;{x^{\left( i \right)}}} \right)} \right]} , \end{array}\tag{1.5} L(θ;X)i1∑N​L(θ;x(i))i1∑N​logpθ​(x(i))i1∑N​[DKL​(qϕ​(z∣x(i))∥pθ​(z∣x(i)))L(θ,ϕ;x(i))],​(1.5) 其中 L ( θ , ϕ ; x ( i ) ) ∑ z 1 K q ϕ ( z ∣ x ( i ) ) log ⁡ p θ ( x ( i ) , z ) q ϕ ( z ∣ x ( i ) ) . (1.6) {\cal L}\left( {\theta ,\phi ;{x^{\left( i \right)}}} \right) \sum\limits_{z 1}^K {{q_\phi }\left( {z|{x^{\left( i \right)}}} \right)\log \frac{{{p_\theta }\left( {{x^{\left( i \right)}},z} \right)}}{{{q_\phi }\left( {z|{x^{\left( i \right)}}} \right)}}} .\tag{1.6} L(θ,ϕ;x(i))z1∑K​qϕ​(z∣x(i))logqϕ​(z∣x(i))pθ​(x(i),z)​.(1.6) 当然目前我们还不知道式 (1.5) 所表示的极大似然估计对于估计分布参数的作用更不清楚新引入的未知分布 q ϕ ( z ∣ x ) {q_\phi }\left( {z|x} \right) qϕ​(z∣x) 的意义。但实际上由于 q ϕ ( z ∣ x ) {q_\phi }\left( {z|x} \right) qϕ​(z∣x) 是任意选取的结合 KL 散度的性质我们将能推导出一种十分巧妙而有效的优化方法也就是期望最大化EM算法。这种通过改变概率分布来达到代价函数最大化的模式也正是变分法的特征所在。由于篇幅的限制本文只是大概地讲述了 EM 算法的原理更多内容以及利用 EM 算法求解高斯混合模型GMM可查看我以前的博客 高斯混合模型GMM与期望最大化算法EM https://blog.csdn.net/qq_33552519/article/details/106963417 2 期望最大化算法 首先考虑一种参数优化模式。对于需要寻找极大值点的函数 f ( x ) f\left( x \right) f(x)假设存在一辅助函数 A ( x , x o l d ) A\left( {x,{x^{old}}} \right) A(x,xold)其中 x o l d {x^{old}} xold 为上一次迭代所找到的最优解即辅助函数的定义与上一次的最优解相关。注意这里的 x o l d {x^{old}} xold 为已知常数。如果辅助函数满足以下条件 ∀ x → f ( x ) ≥ A ( x , x o l d ) , f ( x o l d ) A ( x o l d , x o l d ) . (2.1) \begin{array}{l} \forall x \to f\left( x \right) \ge A\left( {x,{x^{old}}} \right),\\ f\left( {{x^{old}}} \right) A\left( {{x^{old}},{x^{old}}} \right). \end{array}\tag{2.1} ∀x→f(x)≥A(x,xold),f(xold)A(xold,xold).​(2.1) 那么找到 A ( x , x o l d ) A\left( {x,{x^{old}}} \right) A(x,xold) 的极大值点即有 x n e w arg ⁡ max ⁡ x A ( x , x o l d ) ⇒ f ( x n e w ) ≥ A ( x n e w , x o l d ) ≥ A ( x o l d , x o l d ) f ( x o l d ) . (2.2) \begin{array}{l} {x^{new}} \arg {\max _x}A\left( {x,{x^{old}}} \right)\\ \Rightarrow f\left( {{x^{new}}} \right) \ge A\left( {{x^{new}},{x^{old}}} \right) \ge A\left( {{x^{old}},{x^{old}}} \right) f\left( {{x^{old}}} \right). \end{array}\tag{2.2} xnewargmaxx​A(x,xold)⇒f(xnew)≥A(xnew,xold)≥A(xold,xold)f(xold).​(2.2) 因此我们可以保证整个迭代过程不会出现恶化的情况。当迭代停滞时即意味着 f ( x ) f\left( x \right) f(x) 也到达了一个极大值点。要证明这一点令 h ( x ) f ( x ) − A ( x , x o l d ) ≥ 0. (2.3) h\left( x \right) f\left( x \right) - A\left( {x,{x^{old}}} \right) \ge 0.\tag{2.3} h(x)f(x)−A(x,xold)≥0.(2.3) 那么 x o l d {x^{old}} xold 一定是 h ( x ) h\left( x \right) h(x) 的一个极小值点所以有 f ′ ( x o l d ) A ′ ( x o l d , x o l d ) . (2.4) f\left( {{x^{old}}} \right) A\left( {{x^{old}},{x^{old}}} \right). \tag{2.4} f′(xold)A′(xold,xold).(2.4) 当迭代停滞时有 x n e w x o l d ⇒ A ′ ( x n e w , x o l d ) A ′ ( x o l d , x o l d ) 0 ⇒ f ′ ( x n e w ) f ′ ( x o l d ) 0. (2.5) \begin{array}{l} {x^{new}} {x^{old}}\\ \Rightarrow A\left( {{x^{new}},{x^{old}}} \right) A\left( {{x^{old}},{x^{old}}} \right) 0\\ \Rightarrow f\left( {{x^{new}}} \right) f\left( {{x^{old}}} \right) 0. \end{array}\tag{2.5} xnewxold⇒A′(xnew,xold)A′(xold,xold)0⇒f′(xnew)f′(xold)0.​(2.5) 因此这种迭代策略是十分有效的只是寻找合适的辅助函数成了我们现在所要面临的问题。 回到第一节所讨论的极大似然估计问题上对于任意一个待考察的参数 θ o l d {\theta ^{old}} θold根据贝叶斯定理我们可以求得 x x x 来自某一个 z z z 对应分布的后验概率为 p θ o l d ( z ∣ x ) p θ o l d ( x ∣ z ) p θ o l d ( z ) p θ o l d ( x ) p θ o l d ( x ∣ z ) p θ o l d ( z ) ∑ k 1 K p θ o l d ( x ∣ z k ) p θ o l d ( z k ) . (2.6) {p_{{\theta ^{old}}}}\left( {z|x} \right) \frac{{{p_{{\theta ^{old}}}}\left( {x|z} \right){p_{{\theta ^{old}}}}\left( z \right)}}{{{p_{{\theta ^{old}}}}\left( x \right)}} \frac{{{p_{{\theta ^{old}}}}\left( {x|z} \right){p_{{\theta ^{old}}}}\left( z \right)}}{{\sum\limits_{k 1}^K {{p_{{\theta ^{old}}}}\left( {x|z k} \right){p_{{\theta ^{old}}}}\left( {z k} \right)} }}.\tag{2.6} pθold​(z∣x)pθold​(x)pθold​(x∣z)pθold​(z)​k1∑K​pθold​(x∣zk)pθold​(zk)pθold​(x∣z)pθold​(z)​.(2.6) 因为 KL 散度当且仅当两分布相同时为 0因此不妨令 q ϕ o l d ( z ∣ x ) p θ o l d ( z ∣ x ) . (2.7) {q_{{\phi ^{old}}}}\left( {z|x} \right) {p_{{\theta ^{old}}}}\left( {z|x} \right).\tag{2.7} qϕold​(z∣x)pθold​(z∣x).(2.7) 因为 KL 散度具有非负性于是有 D K L ( q ϕ o l d ( z ∣ x ) ∥ p θ ( z ∣ x ) ) ≥ 0. (2.8) {D_{KL}}\left( {{q_{{\phi ^{old}}}}\left( {z|x} \right)\parallel {p_\theta }\left( {z|x} \right)} \right) \ge 0.\tag{2.8} DKL​(qϕold​(z∣x)∥pθ​(z∣x))≥0.(2.8) 注意这里 q ϕ o l d ( z ∣ x ) {q_{{\phi ^{old}}}}\left( {z|x} \right) qϕold​(z∣x) 是一个固定的分布而 p θ ( z ∣ x ) {p_\theta }\left( {z|x} \right) pθ​(z∣x) 则是由变量 θ \theta θ 决定的不断变化的分布。于是我们获得了式 (2.1) 所需的两个条件 ∀ θ → L ( θ ; x ( i ) ) ≥ L ( θ , ϕ o l d ; x ( i ) ) . L ( θ o l d ; x ( i ) ) L ( θ o l d , ϕ o l d ; x ( i ) ) . (2.9) \begin{array}{l} \forall \theta \to {\cal L}\left( {\theta ;{x^{\left( i \right)}}} \right) \ge {\cal L}\left( {\theta ,{\phi ^{old}};{x^{\left( i \right)}}} \right).\\ {\cal L}\left( {{\theta ^{old}};{x^{\left( i \right)}}} \right) {\cal L}\left( {{\theta ^{old}},{\phi ^{old}};{x^{\left( i \right)}}} \right). \end{array}\tag{2.9} ∀θ→L(θ;x(i))≥L(θ,ϕold;x(i)).L(θold;x(i))L(θold,ϕold;x(i)).​(2.9) 因此为了极大化似然 L ( θ ; X ) {\cal L}\left( {\theta ;X} \right) L(θ;X)我们可以定义以下辅助函数 A ( θ , θ o l d ) ∑ i 1 N L ( θ , ϕ o l d ; x ( i ) ) ∑ i 1 N ∑ z 1 K q ϕ o l d ( z ∣ x ( i ) ) log ⁡ p θ ( x ( i ) , z ) q ϕ o l d ( z ∣ x ( i ) ) ∑ i 1 N ∑ z 1 K p θ o l d ( z ∣ x ( i ) ) ( log ⁡ p θ ( x ( i ) , z ) − log ⁡ p θ o l d ( z ∣ x ( i ) ) ) ∑ i 1 N ∑ z 1 K p θ o l d ( z ∣ x ( i ) ) log ⁡ p θ ( x ( i ) , z ) − C o n s t . (2.10) \begin{array}{l} A\left( {\theta ,{\theta ^{old}}} \right) \sum\limits_{i 1}^N {{\cal L}\left( {\theta ,{\phi ^{old}};{x^{\left( i \right)}}} \right)} \\ \sum\limits_{i 1}^N {\sum\limits_{z 1}^K {{q_{{\phi ^{old}}}}\left( {z|{x^{\left( i \right)}}} \right)\log \frac{{{p_\theta }\left( {{x^{\left( i \right)}},z} \right)}}{{{q_{{\phi ^{old}}}}\left( {z|{x^{\left( i \right)}}} \right)}}} } \\ \sum\limits_{i 1}^N {\sum\limits_{z 1}^K {{p_{{\theta ^{old}}}}\left( {z|{x^{\left( i \right)}}} \right)\left( {\log {p_\theta }\left( {{x^{\left( i \right)}},z} \right) - \log {p_{{\theta ^{old}}}}\left( {z|{x^{\left( i \right)}}} \right)} \right)} } \\ \sum\limits_{i 1}^N {\sum\limits_{z 1}^K {{p_{{\theta ^{old}}}}\left( {z|{x^{\left( i \right)}}} \right)\log {p_\theta }\left( {{x^{\left( i \right)}},z} \right)} } - Const. \end{array}\tag{2.10} A(θ,θold)i1∑N​L(θ,ϕold;x(i))i1∑N​z1∑K​qϕold​(z∣x(i))logqϕold​(z∣x(i))pθ​(x(i),z)​i1∑N​z1∑K​pθold​(z∣x(i))(logpθ​(x(i),z)−logpθold​(z∣x(i)))i1∑N​z1∑K​pθold​(z∣x(i))logpθ​(x(i),z)−Const.​(2.10) 或者等价地使用以下辅助函数 Q ( θ , θ o l d ) ∑ i 1 N ∑ z 1 K p θ o l d ( z ∣ x ( i ) ) log ⁡ p θ ( x ( i ) , z ) . (2.11) Q\left( {\theta ,{\theta ^{old}}} \right) \sum\limits_{i 1}^N {\sum\limits_{z 1}^K {{p_{{\theta ^{old}}}}\left( {z|{x^{\left( i \right)}}} \right)\log {p_\theta }\left( {{x^{\left( i \right)}},z} \right)} } .\tag{2.11} Q(θ,θold)i1∑N​z1∑K​pθold​(z∣x(i))logpθ​(x(i),z).(2.11) 注意尽管式 (2.9) 对于单个样本 x ( i ) ∈ X {x^{\left( i \right)}} \in X x(i)∈X 都成立但因为分布参数 θ \theta θ 是由所有样本共用的所以在优化参数时需要把所有样本都考虑进来否则可能会有较大的偏差。因为 p θ ( x , z ) p θ ( x ∣ z ) p θ ( z ) {p_\theta }\left( {x,z} \right) {p_\theta }\left( {x|z} \right){p_\theta }\left( z \right) pθ​(x,z)pθ​(x∣z)pθ​(z) 是连乘的形式所以 A ( θ , θ o l d ) A\left( {\theta ,{\theta ^{old}}} \right) A(θ,θold) 的导数往往会具有更加简洁的形式使得对 L ( θ ; X ) {\cal L}\left( {\theta ;X} \right) L(θ;X) 的参数估计具有更高的可行性。 我们把以上的参数优化过程称为期望最大化Expectation Maximum, EM算法其可表示为以下步骤 随机选取一组初始参数 θ o l d {\theta ^{old}} θold但为了避免遇到较差的局部极值点一般会选择多组初始参数独立优化。E step根据式 (2.6) 计算后验概率 p θ o l d ( z ∣ x ( i ) ) {p_{{\theta ^{old}}}}\left( {z|{x^{\left( i \right)}}} \right) pθold​(z∣x(i))构造辅助函数 A ( θ , θ o l d ) A\left( {\theta ,{\theta ^{old}}} \right) A(θ,θold)。M step求解辅助函数极大值点 θ n e w arg ⁡ max ⁡ θ A ( θ , θ o l d ) {\theta ^{new}} \arg {\max _\theta }A\left( {\theta ,{\theta ^{old}}} \right) θnewargmaxθ​A(θ,θold)。如参数收敛算法结束否则更新 θ o l d ← θ n e w {\theta ^{old}} \leftarrow {\theta ^{new}} θold←θnew返回第 2 步。 3 带有潜在变量的随机系统 我们应该意识到在第一节开头所描述的采样过程中潜在变量 z z z 来自于有限个随机整数的假设并不是必须的。尽管这种假设对于随机样本的模糊分类问题十分合适但也严重限制了 EM 算法的应用范围。实际上我们可以用一种更加具有普适性的架构来描述带有潜在变量的随机系统如图 1 所示。 图1 带有潜在变量的随机系统 举个例子当遇到一个陌生人时我们可以直接从其身上获取到一些直观的信息包括性别、身高、样貌、衣着、举止等等将这些直观信息排列起来即为我们所能直接观察到的特征向量常用 x {\bf{x}} x 来表示。然而影响一个人外在表现的内在因素有很多包括受教育程度家庭条件乃至遗传基因等等这些因素是我们对于陌生人无法直接得知的。我们同样可以把这些未知因素排列起来即为我们无法直接观察到的特征向量或者称为潜在特征向量常用 z {\bf{z}} z 来表示。如果我们认同 x {\bf{x}} x 与 z {\bf{z}} z 都符合具有某些未知参数的随机分布这些参数的集合用 θ \theta θ 来表示那么对于随机遇到的一个人其外在表现为 x {\bf{x}} x 而内在具有潜在特征 z {\bf{z}} z 的概率可表示为 p θ ( x , z ) p θ ( x ∣ z ) p θ ( z ) . (3.1) {p_\theta }\left( {{\bf{x}},{\bf{z}}} \right) {p_\theta }\left( {{\bf{x}}|{\bf{z}}} \right){p_\theta }\left( {\bf{z}} \right).\tag{3.1} pθ​(x,z)pθ​(x∣z)pθ​(z).(3.1) 以信息编码理论的视角来看我们还可以将潜在特征 z {\bf{z}} z 表述为直接特征 x {\bf{x}} x 经过压缩所获得的编码code。因为 x {\bf{x}} x 的维度通常要远远大于 z {\bf{z}} z例如我们可以在 x {\bf{x}} x 中加入一张照片如果能用少量的编码 z {\bf{z}} z 来比较准确地还原 x {\bf{x}} x无疑会减轻很大的存储压力以 z {\bf{z}} z 代替 x {\bf{x}} x 进行一些如身份识别等任务也可以极大降低模型的复杂度。这种信息压缩的特性与主成分分析PCA等不谋而合只是在这里我们增加了随机性使其对于数据集中未曾出现过的编码 z {\bf{z}} z只要我们知道相关的概率分布就可以通过采样与解码生成很多具有现实意义的 x {\bf{x}} x这是 PCA 等确定性算法所不能做到的。 相比于第一节中的描述此时潜在特征不再为单一标量而是由多个相关或者独立随机变量组成的随机向量当然为了简化一般都会考虑潜在特征向量的各个分量是相互独立的但它们既可能是离散的也有可能是连续的。回顾第二节的 EM 算法关键的一步是求得在现有参数下的后验分布 p θ ( z ∣ x ) {p_\theta }\left( {{\bf{z}}|{\bf{x}}} \right) pθ​(z∣x)而这需要用到 p θ ( x ) {p_\theta }\left( {\bf{x}} \right) pθ​(x) 的全概率公式。对于 z {\bf{z}} z 为连续向量的情况可得 p θ ( x ) ∫ p θ ( x ∣ z ) p θ ( z ) d z . (3.2) {p_\theta }\left( {\bf{x}} \right) \int {{p_\theta }\left( {{\bf{x}}|{\bf{z}}} \right){p_\theta }\left( {\bf{z}} \right)d{\bf{z}}} .\tag{3.2} pθ​(x)∫pθ​(x∣z)pθ​(z)dz.(3.2) 而积分运算是计算机几乎不能完成的事情所以此时 EM 算法的迭代流程就很难展开。除此以外随着 z {\bf{z}} z 维度的增加 p θ ( x ∣ z ) {p_\theta }\left( {{\bf{x}}|{\bf{z}}} \right) pθ​(x∣z) 的分布类型也通常会变得更加复杂对其过于简单的分布假设无疑会对 p θ ( x ) {p_\theta }\left( {\bf{x}} \right) pθ​(x) 的估计产生较大的偏差对于参数估计也是十分不利的。 除此以外当 z {\bf{z}} z 为连续向量时对于辅助函数的构造也同样涉及到积分运算。以单个样本 x ( i ) {{\bf{x}}^{\left( i \right)}} x(i) 为例根据式 (2.11)有 Q ( θ , θ o l d ; x ( i ) ) ∫ p θ o l d ( z ∣ x ( i ) ) log ⁡ p θ ( x ( i ) , z ) d z . (3.3) Q\left( {\theta ,{\theta ^{old}};{{\bf{x}}^{\left( i \right)}}} \right) \int {{p_{{\theta ^{old}}}}\left( {{\bf{z}}|{{\bf{x}}^{\left( i \right)}}} \right)\log {p_\theta }\left( {{{\bf{x}}^{\left( i \right)}},{\bf{z}}} \right)d{\bf{z}}} .\tag{3.3} Q(θ,θold;x(i))∫pθold​(z∣x(i))logpθ​(x(i),z)dz.(3.3) 这里假设 p θ o l d ( z ∣ x ( i ) ) {p_{{\theta ^{old}}}}\left( {{\bf{z}}|{{\bf{x}}^{\left( i \right)}}} \right) pθold​(z∣x(i)) 和 p θ ( x ( i ) , z ) {p_\theta }\left( {{{\bf{x}}^{\left( i \right)}},{\bf{z}}} \right) pθ​(x(i),z) 已知。以上积分运算对于计算机来说也非常难以计算更不要说求解极值点。然而这个问题是有较好的解决办法的那就是蒙特卡洛 EM 算法MCEM。蒙特卡洛是一个著名的赌城赌徒不懂得各种游戏中复杂的概率分析但他知道如果每次游戏结果都是以某种分布独立随机产生的只要把多次游戏的结果进行统计就能对其概率分布做出比较准确的估计。我们把这种基于某种分布采样并统计的估计方法称为蒙特卡洛方法。对于式 (3.3) 而言其可表示为 p θ ( x ( i ) , z ) {p_\theta }\left( {{{\bf{x}}^{\left( i \right)}},{\bf{z}}} \right) pθ​(x(i),z) 在 p θ o l d ( z ∣ x ( i ) ) {p_{{\theta ^{old}}}}\left( {{\bf{z}}|{{\bf{x}}^{\left( i \right)}}} \right) pθold​(z∣x(i)) 分布下的期望值即 Q ( θ , θ o l d ; x ( i ) ) E p θ o l d ( z ∣ x ( i ) ) [ log ⁡ p θ ( x ( i ) , z ) ] . (3.4) Q\left( {\theta ,{\theta ^{old}};{{\mathbf{x}}^{\left( i \right)}}} \right) {\mathbb{E}_{{p_{{\theta ^{old}}}}\left( {{\mathbf{z}}|{{\mathbf{x}}^{\left( i \right)}}} \right)}}\left[ {\log {p_\theta }\left( {{{\mathbf{x}}^{\left( i \right)}},{\mathbf{z}}} \right)} \right].\tag{3.4} Q(θ,θold;x(i))Epθold​(z∣x(i))​[logpθ​(x(i),z)].(3.4) 根据蒙特卡洛方法以 p θ o l d ( z ∣ x ( i ) ) {p_{{\theta ^{old}}}}\left( {{\bf{z}}|{{\bf{x}}^{\left( i \right)}}} \right) pθold​(z∣x(i)) 分布进行 L L L 次独立采样得到 Z { z ( l ) } l 1 L {\bf{Z}} \left\{ {{{\bf{z}}^{\left( l \right)}}} \right\}_{l 1}^L Z{z(l)}l1L​注意这里的 x ( i ) {{\bf{x}}^{\left( i \right)}} x(i) 样本是固定的那么对式 (3.4) 的估计可表示为 Q ( θ , θ o l d ; x ( i ) ) ≃ 1 L ∑ l 1 L log ⁡ p θ ( x ( i ) , z ) . (3.5) Q\left( {\theta ,{\theta ^{old}};{{\bf{x}}^{\left( i \right)}}} \right) \simeq \frac{1}{L}\sum\limits_{l 1}^L {\log {p_\theta }\left( {{{\bf{x}}^{\left( i \right)}},{\bf{z}}} \right)} .\tag{3.5} Q(θ,θold;x(i))≃L1​l1∑L​logpθ​(x(i),z).(3.5) 我们强调 p θ o l d ( z ∣ x ( i ) ) {p_{{\theta ^{old}}}}\left( {{\bf{z}}|{{\bf{x}}^{\left( i \right)}}} \right) pθold​(z∣x(i)) 和 p θ ( x ( i ) , z ) {p_\theta }\left( {{{\bf{x}}^{\left( i \right)}},{\bf{z}}} \right) pθ​(x(i),z) 是已知的至于如何获取则需要考虑更多的问题。一种可以规避显式后验概率 p θ ( z ∣ x ) {p_\theta }\left( {{\bf{z}}|{\bf{x}}} \right) pθ​(z∣x) 的采样方法是哈密顿蒙特卡洛HMC方法其只需要用到后验概率的梯度而 log ⁡ p θ ( z ∣ x ) log ⁡ p θ ( x ∣ z ) log ⁡ p θ ( z ) − log ⁡ p θ ( x ) , ⇒ ∇ z log ⁡ p θ ( z ∣ x ) ∇ z log ⁡ p θ ( x ∣ z ) ∇ z log ⁡ p θ ( z ) . (3.6) \begin{array}{l} \log {p_\theta }\left( {{\bf{z}}|{\bf{x}}} \right) \log {p_\theta }\left( {{\bf{x}}|{\bf{z}}} \right) \log {p_\theta }\left( {\bf{z}} \right) - \log {p_\theta }\left( {\bf{x}} \right),\\ \Rightarrow {\nabla _{\bf{z}}}\log {p_\theta }\left( {{\bf{z}}|{\bf{x}}} \right) {\nabla _{\bf{z}}}\log {p_\theta }\left( {{\bf{x}}|{\bf{z}}} \right) {\nabla _{\bf{z}}}\log {p_\theta }\left( {\bf{z}} \right). \end{array} \tag{3.6} logpθ​(z∣x)logpθ​(x∣z)logpθ​(z)−logpθ​(x),⇒∇z​logpθ​(z∣x)∇z​logpθ​(x∣z)∇z​logpθ​(z).​(3.6) 因为 p θ ( x ∣ z ) {p_\theta }\left( {{\bf{x}}|{\bf{z}}} \right) pθ​(x∣z) 和 p θ ( z ) {p_\theta }\left( {\bf{z}} \right) pθ​(z) 往往作为一种先验假设容易求得所以 HMC 采样方法基本是可行的其具体原理在此略去。注意当我们使用 HMC 采样方法对辅助函数 Q ( θ , θ o l d ; x ( i ) ) Q\left( {\theta ,{\theta ^{old}};{{\bf{x}}^{\left( i \right)}}} \right) Q(θ,θold;x(i)) 进行蒙特卡洛估计时后验概率 p θ ( z ∣ x ) {p_\theta }\left( {{\bf{z}}|{\bf{x}}} \right) pθ​(z∣x) 就没必要求解了式 (3.2) 所述求解边缘分布 p θ ( x ) {p_\theta }\left( {\bf{x}} \right) pθ​(x) 的问题自然也就可以忽略。 综上所述基于蒙特卡洛方法我们巧妙避开了后验概率的计算使得 EM 算法的迭代过程能够持续下去从而能够处理具有更加复杂的潜在变量的随机系统的极大似然估计问题。然而我们也应该看到随着潜在变量 z {\bf{z}} z 维度的增大我们必然需要更多次的采样来保证蒙特卡洛方法的准确性而我们需要对数据集 X {\bf{X}} X 中每一个样本进行蒙特卡洛估计这无疑需要非常大的计算量对于大数据集来说是比较低效的。而且 EM 算法的每一次迭代通常需要把整个数据集的样本纳入计算我们当然更加希望能像神经网络那样使用类似于随机梯度下降的优化方法每次迭代只需要考虑少量的样本且尽可能保证参数的收敛。除此以外EM 算法迭代的收敛性是建立在式 (2.9) 所示限制上的当我们通过蒙特卡洛方法近似时并不清楚会出现什么问题。因此不同于 EM 算法我们需要考虑不同的 q ϕ ( z ∣ x ) {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) qϕ​(z∣x) 对于似然估计的影响而不是仅限制于其等于 p θ ( z ∣ x ) {p_\theta }\left( {{\bf{z}}|{\bf{x}}} \right) pθ​(z∣x) 的假设。以上的问题引出了我们下面所要讨论的变分贝叶斯方法。 4 变分贝叶斯算法 基于第一节的内容我们知道对于一可观测数据集 X { x ( i ) } i 1 N {\bf{X}} \left\{ {{{\bf{x}}^{\left( i \right)}}} \right\}_{i 1}^N X{x(i)}i1N​ 中每一个样本 x ( i ) {{\bf{x}}^{\left( i \right)}} x(i) 出现的边缘概率为 p θ ( x ( i ) ) {p_\theta }\left( {{{\bf{x}}^{\left( i \right)}}} \right) pθ​(x(i)) 可表示为以下两部分 log ⁡ p θ ( x ( i ) ) D K L ( q ϕ ( z ∣ x ( i ) ) ∥ p θ ( z ∣ x ( i ) ) ) L ( θ , ϕ ; x ( i ) ) . (4.1) \log {p_\theta }\left( {{{\bf{x}}^{\left( i \right)}}} \right) {D_{KL}}\left( {{q_\phi }\left( {{\bf{z}}|{{\bf{x}}^{\left( i \right)}}} \right)\parallel {p_\theta }\left( {{\bf{z}}|{{\bf{x}}^{\left( i \right)}}} \right)} \right) {\cal L}\left( {\theta ,\phi ;{{\bf{x}}^{\left( i \right)}}} \right).\tag{4.1} logpθ​(x(i))DKL​(qϕ​(z∣x(i))∥pθ​(z∣x(i)))L(θ,ϕ;x(i)).(4.1) 通过第三节的分析可知后验概率 p θ ( z ∣ x ) {p_\theta }\left( {{\bf{z}}|{\bf{x}}} \right) pθ​(z∣x) 的求解非常困难因此想要令上式中 KL 散度为 0 几乎是不可能的。然而因为 KL 散度具有非负性无论未知分布 q ϕ ( z ∣ x ) {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) qϕ​(z∣x) 如何变化总有 log ⁡ p θ ( x ( i ) ) ⩾ L ( θ , ϕ ; x ( i ) ) ∫ q ϕ ( z ∣ x ( i ) ) log ⁡ p θ ( x ( i ) , z ) q ϕ ( z ∣ x ( i ) ) d z ∫ q ϕ ( z ∣ x ( i ) ) [ − log ⁡ q ϕ ( z ∣ x ( i ) ) log ⁡ p θ ( x ( i ) , z ) ] d z E q ϕ ( z ∣ x ( i ) ) [ − log ⁡ q ϕ ( z ∣ x ( i ) ) log ⁡ p θ ( x ( i ) , z ) ] . (4.2) \begin{aligned} \log {p_\theta }\left( {{{\mathbf{x}}^{\left( i \right)}}} \right) \geqslant \mathcal{L}\left( {\theta ,\phi ;{{\mathbf{x}}^{\left( i \right)}}} \right) \\ \int {{q_\phi }\left( {{\mathbf{z}}|{{\mathbf{x}}^{\left( i \right)}}} \right)\log \frac{{{p_\theta }\left( {{{\mathbf{x}}^{\left( i \right)}},{\mathbf{z}}} \right)}}{{{q_\phi }\left( {{\mathbf{z}}|{{\mathbf{x}}^{\left( i \right)}}} \right)}}d{\mathbf{z}}} \\ \int {{q_\phi }\left( {{\mathbf{z}}|{{\mathbf{x}}^{\left( i \right)}}} \right)\left[ { - \log {q_\phi }\left( {{\mathbf{z}}|{{\mathbf{x}}^{\left( i \right)}}} \right) \log {p_\theta }\left( {{{\mathbf{x}}^{\left( i \right)}},{\mathbf{z}}} \right)} \right]d{\mathbf{z}}} \\ {\mathbb{E}_{{q_\phi }\left( {{\mathbf{z}}|{{\mathbf{x}}^{\left( i \right)}}} \right)}}\left[ { - \log {q_\phi }\left( {{\mathbf{z}}|{{\mathbf{x}}^{\left( i \right)}}} \right) \log {p_\theta }\left( {{{\mathbf{x}}^{\left( i \right)}},{\mathbf{z}}} \right)} \right]. \\ \end{aligned} \tag{4.2} logpθ​(x(i))​⩾L(θ,ϕ;x(i))∫qϕ​(z∣x(i))logqϕ​(z∣x(i))pθ​(x(i),z)​dz∫qϕ​(z∣x(i))[−logqϕ​(z∣x(i))logpθ​(x(i),z)]dzEqϕ​(z∣x(i))​[−logqϕ​(z∣x(i))logpθ​(x(i),z)].​(4.2) 所以我们也将 L ( θ , ϕ ; x ) {\cal L}\left( {\theta ,\phi ;{\bf{x}}} \right) L(θ,ϕ;x) 称为变分下界。注意因为 − log ⁡ q ϕ ( z ∣ x ) log ⁡ p θ ( x , z ) − log ⁡ q ϕ ( z ∣ x ) log ⁡ p θ ( x ∣ z ) log ⁡ p θ ( z ) − log ⁡ q ϕ ( z ∣ x ) p θ ( z ) log ⁡ p θ ( x ∣ z ) , (4.3) \begin{aligned} - \log {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) \log {p_\theta }\left( {{\bf{x}},{\bf{z}}} \right)\\ - \log {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) \log {p_\theta }\left( {{\bf{x}}|{\bf{z}}} \right) \log {p_\theta }\left( {\bf{z}} \right)\\ - \log \frac{{{q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right)}}{{{p_\theta }\left( {\bf{z}} \right)}} \log {p_\theta }\left( {{\bf{x}}|{\bf{z}}} \right), \end{aligned} \tag{4.3} ​−logqϕ​(z∣x)logpθ​(x,z)−logqϕ​(z∣x)logpθ​(x∣z)logpθ​(z)−logpθ​(z)qϕ​(z∣x)​logpθ​(x∣z),​(4.3) 所以变分下界还可表示为 L ( θ , ϕ ; x ( i ) ) E q ϕ ( z ∣ x ( i ) ) [ − log ⁡ q ϕ ( z ∣ x ( i ) ) log ⁡ p θ ( x ( i ) , z ) ] E q ϕ ( z ∣ x ( i ) ) [ − log ⁡ q ϕ ( z ∣ x ( i ) ) p θ ( z ) log ⁡ p θ ( x ( i ) ∣ z ) ] − D K L ( q ϕ ( z ∣ x ( i ) ) ∥ p θ ( z ) ) E q ϕ ( z ∣ x ( i ) ) [ log ⁡ p θ ( x ( i ) ∣ z ) ] . (4.4) \begin{aligned} \mathcal{L}\left( {\theta ,\phi ;{{\mathbf{x}}^{\left( i \right)}}} \right) {\mathbb{E}_{{q_\phi }\left( {{\mathbf{z}}|{{\mathbf{x}}^{\left( i \right)}}} \right)}}\left[ { - \log {q_\phi }\left( {{\mathbf{z}}|{{\mathbf{x}}^{\left( i \right)}}} \right) \log {p_\theta }\left( {{{\mathbf{x}}^{\left( i \right)}},{\mathbf{z}}} \right)} \right] \\ {\mathbb{E}_{{q_\phi }\left( {{\mathbf{z}}|{{\mathbf{x}}^{\left( i \right)}}} \right)}}\left[ { - \log \frac{{{q_\phi }\left( {{\mathbf{z}}|{{\mathbf{x}}^{\left( i \right)}}} \right)}}{{{p_\theta }\left( {\mathbf{z}} \right)}} \log {p_\theta }\left( {{{\mathbf{x}}^{\left( i \right)}}|{\mathbf{z}}} \right)} \right] \\ - {D_{KL}}\left( {{q_\phi }\left( {{\mathbf{z}}|{{\mathbf{x}}^{\left( i \right)}}} \right)\parallel {p_\theta }\left( {\mathbf{z}} \right)} \right) {\mathbb{E}_{{q_\phi }\left( {{\mathbf{z}}|{{\mathbf{x}}^{\left( i \right)}}} \right)}}\left[ {\log {p_\theta }\left( {{{\mathbf{x}}^{\left( i \right)}}|{\mathbf{z}}} \right)} \right]. \\ \end{aligned} \tag{4.4} L(θ,ϕ;x(i))​Eqϕ​(z∣x(i))​[−logqϕ​(z∣x(i))logpθ​(x(i),z)]Eqϕ​(z∣x(i))​[−logpθ​(z)qϕ​(z∣x(i))​logpθ​(x(i)∣z)]−DKL​(qϕ​(z∣x(i))∥pθ​(z))Eqϕ​(z∣x(i))​[logpθ​(x(i)∣z)].​(4.4) 如果能够最大化变分下界则边缘概率 p θ ( x ) {p_\theta }\left( {\bf{x}} \right) pθ​(x) 也更有可能取更大的值。我们把这种最大化变分下界的方法称为变分贝叶斯Variational Bayesian, VB算法。 和 EM 算法一样我们的目的也是要最大化变分下界 L ( θ , ϕ ; x ) {\cal L}\left( {\theta ,\phi ;{\bf{x}}} \right) L(θ,ϕ;x)因此 EM 算法可认为是一种特殊的 VB 算法。但不同的地方在于EM 算法的变分下界中未知分布 q ϕ ( z ∣ x ) {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) qϕ​(z∣x) 是由后验概率 p θ ( z ∣ x ) {p_\theta }\left( {{\bf{z}}|{\bf{x}}} \right) pθ​(z∣x) 唯一决定的因此参数 ϕ \phi ϕ 并不是真正需要优化的对象然而问题在于后验概率在实际中几乎无法计算。对于 VB 算法因为对于固定的参数 θ \theta θ 边缘概率 p θ ( x ) {p_\theta }\left( {\bf{x}} \right) pθ​(x) 是固定的当我们在最大化变分下界的时候等价于在最小化式 (4.1) 中的 KL 散度也就是使得 KL 散度不断往 0 逼近。这时我们就能明白引入 q ϕ ( z ∣ x ) {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) qϕ​(z∣x) 的意义我们希望在优化随机系统参数 θ \theta θ 的同时联合地优化参数 ϕ \phi ϕ 使得 q ϕ ( z ∣ x ) {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) qϕ​(z∣x) 能够不断地逼近真正的后验概率 p θ ( z ∣ x ) {p_\theta }\left( {{\bf{z}}|{\bf{x}}} \right) pθ​(z∣x)从而令 VB 算法能够不断地向 EM 算法靠拢。对于 EM 算法而言通过最大化变分下界可以保证参数 θ \theta θ 能够收敛到边缘概率 p θ ( X ) {p_\theta }\left( {\bf{X}} \right) pθ​(X) 一个极大值点这也保证了 VB 算法的收敛性。由于 θ \theta θ 与 ϕ \phi ϕ 是联合优化的所以 VB 算法能有更大的灵活性对 q ϕ ( z ∣ x ) {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) qϕ​(z∣x) 分布类型的限制也相当宽松迭代时也无需将整个数据集的样本纳入计算而可以基于随机梯度下降法每次只使用少量几个样本这使其能够在线地对不断增加的新样本进行优化同时也可以避免过早地陷入一个局部最优解中。因此现在的问题转化为如何联合地优化参数 θ \theta θ 与 ϕ \phi ϕ 使变分下界最大化。 为了最大化变分下界我们可以采用梯度下降的方法因此首先要计算其梯度。为了公式的简洁我们将变分下界中需要计算数学期望的部分用函数 f ( z ) f\left( {\bf{z}} \right) f(z) 来表示可得关于 ϕ \phi ϕ 的梯度为 ∇ ϕ E q ϕ ( z ∣ x ) [ f ( z ) ] ∇ ϕ ∫ f ( z ) q ϕ ( z ∣ x ) d z ∫ f ( z ) ∇ ϕ q ϕ ( z ∣ x ) d z ∫ f ( z ) q ϕ ( z ∣ x ) ∇ ϕ log ⁡ q ϕ ( z ∣ x ) d z E q ϕ ( z ∣ x ) [ f ( z ) ∇ ϕ log ⁡ q ϕ ( z ∣ x ) ] . (4.5) \begin{aligned} {\nabla _\phi }{\mathbb{E}_{{q_\phi }\left( {{\mathbf{z}}|{\mathbf{x}}} \right)}}\left[ {f\left( {\mathbf{z}} \right)} \right] \\ {\nabla _\phi }\int {f\left( {\mathbf{z}} \right){q_\phi }\left( {{\mathbf{z}}|{\mathbf{x}}} \right)d{\mathbf{z}}} \\ \int {f\left( {\mathbf{z}} \right){\nabla _\phi }{q_\phi }\left( {{\mathbf{z}}|{\mathbf{x}}} \right)d{\mathbf{z}}} \\ \int {f\left( {\mathbf{z}} \right){q_\phi }\left( {{\mathbf{z}}|{\mathbf{x}}} \right){\nabla _\phi }\log {q_\phi }\left( {{\mathbf{z}}|{\mathbf{x}}} \right)d{\mathbf{z}}} \\ {\mathbb{E}_{{q_\phi }\left( {{\mathbf{z}}|{\mathbf{x}}} \right)}}\left[ {f\left( {\mathbf{z}} \right){\nabla _\phi }\log {q_\phi }\left( {{\mathbf{z}}|{\mathbf{x}}} \right)} \right]. \\ \end{aligned} \tag{4.5} ​∇ϕ​Eqϕ​(z∣x)​[f(z)]∇ϕ​∫f(z)qϕ​(z∣x)dz∫f(z)∇ϕ​qϕ​(z∣x)dz∫f(z)qϕ​(z∣x)∇ϕ​logqϕ​(z∣x)dzEqϕ​(z∣x)​[f(z)∇ϕ​logqϕ​(z∣x)].​(4.5) 因为式 (4.5) 属于随机变量的数学期望一种自然而然的想法是使用蒙特卡洛方法进行估计。即对于函数 f ( z ) f\left( {\bf{z}} \right) f(z) 在 q ϕ ( z ∣ x ) {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) qϕ​(z∣x) 分布下的数学期望可对随机变量 z ∼ q ϕ ( z ∣ x ) {\bf{z}} \sim {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) z∼qϕ​(z∣x) 进行 L L L 次独立同分布的采样于是有 E q ϕ ( z ∣ x ) [ f ( z ) ] ∫ q ϕ ( z ∣ x ) f ( z ) d z ≃ 1 L ∑ l 1 L f ( z ( l ) ) . (4.6) {\mathbb{E}_{{q_\phi }\left( {{\mathbf{z}}|{\mathbf{x}}} \right)}}\left[ {f\left( {\mathbf{z}} \right)} \right] \int {{q_\phi }\left( {{\mathbf{z}}|{\mathbf{x}}} \right)f\left( {\mathbf{z}} \right)d{\mathbf{z}}} \simeq \frac{1}{L}\sum\limits_{l 1}^L {f\left( {{{\mathbf{z}}^{\left( l \right)}}} \right)} .\tag{4.6} Eqϕ​(z∣x)​[f(z)]∫qϕ​(z∣x)f(z)dz≃L1​l1∑L​f(z(l)).(4.6) 然而问题在于当完成采样与估计后代价函数就不再与参数 ϕ \phi ϕ 相关了这里先不考虑 f ( z ) f\left( {\bf{z}} \right) f(z) 与 ϕ \phi ϕ 相关。也就是说采样操作关于 ϕ \phi ϕ 是不可导的。从这也能看出 EM 算法与 VB 算法的区别因为 EM 算法中 ϕ \phi ϕ 并不作为可优化的参数所以对 EM 算法使用蒙特卡洛估计不需要考虑不可导问题。而且由于 VB 算法每次迭代通常只使用少数几个样本 q ϕ ( z ∣ x ) {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) qϕ​(z∣x) 的方差在实际中会比较大由式 (4.6) 所估计的结果也往往具有较大的误差这对于参数 ϕ \phi ϕ 的收敛有非常大的影响。为了解决以上问题论文提出了重参数化Reparameterization的方法。 以高斯分布为例对于随机变量 z ∼ p ( z ) N ( μ , σ 2 ) z \sim p\left( z \right) {\cal N}\left( {\mu ,{\sigma ^2}} \right) z∼p(z)N(μ,σ2)其实际可由标准高斯分布 ε ∼ p ( ε ) N ( 0 , 1 ) \varepsilon \sim p\left( \varepsilon \right) {\cal N}\left( {0,1} \right) ε∼p(ε)N(0,1) 通过函数 z f ( ε ) μ σ ε z f\left( \varepsilon \right) \mu \sigma \varepsilon zf(ε)μσε 变换而来。因此当分布属于某些特定类型时如高斯分布、指数分布、拉普拉斯分布等等对于 z ∼ q ϕ ( z ∣ x ) {\bf{z}} \sim {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) z∼qϕ​(z∣x)通常可由某个独立的边缘分布 ε ∼ p ( ε ) \varepsilon \sim p\left( \varepsilon \right) ε∼p(ε)如标准正态分布通过确定性函数 z g ϕ ( ε , x ) {\bf{z}} {g_\phi }\left( {\varepsilon ,{\bf{x}}} \right) zgϕ​(ε,x) 变换而来。因此对于变分下界的蒙特卡洛估计我们可以将其转换为 E q ϕ ( z ∣ x ) [ f ( z ) ] E p ( ε ) [ f ( g ϕ ( ε , x ) ) ] ≃ 1 L ∑ l 1 L f ( g ϕ ( ε ( l ) , x ) ) . (4.7) {\mathbb{E}_{{q_\phi }\left( {{\mathbf{z}}|{\mathbf{x}}} \right)}}\left[ {f\left( {\mathbf{z}} \right)} \right] {\mathbb{E}_{p\left( \varepsilon \right)}}\left[ {f\left( {{g_\phi }\left( {\varepsilon ,{\mathbf{x}}} \right)} \right)} \right] \simeq \frac{1}{L}\sum\limits_{l 1}^L {f\left( {{g_\phi }\left( {{\varepsilon ^{\left( l \right)}},{\mathbf{x}}} \right)} \right)} .\tag{4.7} Eqϕ​(z∣x)​[f(z)]Ep(ε)​[f(gϕ​(ε,x))]≃L1​l1∑L​f(gϕ​(ε(l),x)).(4.7) 此时采样所依据的分布不再与参数 ϕ \phi ϕ 相关但是我们通过确定性函数 z g ϕ ( ε , x ) {\bf{z}} {g_\phi }\left( {\varepsilon ,{\bf{x}}} \right) zgϕ​(ε,x) 保留了 ϕ \phi ϕ 对于 f ( z ) f\left( {\bf{z}} \right) f(z) 数学期望的影响这样我们就实现了采样操作从不可导到可导的转变。同时由于每次采样所依据的分布是固定的这也可以在一定程度上减小蒙特卡洛估计的误差对于参数的收敛也是十分有利的。注意因为变分下界本身也是关于 q ϕ ( z ∣ x ) {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) qϕ​(z∣x) 分布的数学期望形式所以我们没必要直接对式 (4.5) 中的梯度进行蒙特卡洛估计而只需对变分下界本身进行估计即可这样我们可以把相关的梯度计算交给自动微分等技术来实现。 回顾本节开头我们提到了两种形式的变分下界。对于式 (4.2) 定义的第一种形式根据以上的重参数方法与蒙特卡洛估计可得以下近似 L ~ A ( θ , ϕ ; x ( i ) ) 1 L ∑ l 1 L log ⁡ p θ ( x ( i ) , z ( i , l ) ) − log ⁡ q ϕ ( z ( i , l ) ∣ x ( i ) ) , w h e r e z ( i , l ) g ϕ ( ε ( i , l ) , x ( i ) ) , ε ( i , l ) ∼ p ( ε ) . (4.8) \begin{array}{l} {{\tilde {\cal L}}^A}\left( {\theta ,\phi ;{{\bf{x}}^{\left( i \right)}}} \right) \frac{1}{L}\sum\limits_{l 1}^L {\log {p_\theta }\left( {{{\bf{x}}^{\left( i \right)}},{{\bf{z}}^{\left( {i,l} \right)}}} \right) - \log {q_\phi }\left( {{{\bf{z}}^{\left( {i,l} \right)}}|{{\bf{x}}^{\left( i \right)}}} \right)} ,\\ {\rm{where }} {\text{ }} {{\bf{z}}^{\left( {i,l} \right)}} {g_\phi }\left( {{\varepsilon ^{\left( {i,l} \right)}},{{\bf{x}}^{\left( i \right)}}} \right),\;{\varepsilon ^{\left( {i,l} \right)}} \sim p\left( \varepsilon \right). \end{array}\tag{4.8} L~A(θ,ϕ;x(i))L1​l1∑L​logpθ​(x(i),z(i,l))−logqϕ​(z(i,l)∣x(i)),where z(i,l)gϕ​(ε(i,l),x(i)),ε(i,l)∼p(ε).​(4.8) 对于式 (4.4) 定义的第二种形式由于其第一部分为 KL 散度而 KL 散度对于某些分布类型具有解析的表达式例如高斯分布等所以实际中并不需要对其进行蒙特卡洛估计。因此当 KL 散度具有解析表达式时我们更倾向于使用第二种变分下界形式并有以下近似 L ~ B ( θ , ϕ ; x ( i ) ) − D K L ( q ϕ ( z ∣ x ( i ) ) ∥ p θ ( z ) ) 1 L ∑ l 1 L log ⁡ p θ ( x ( i ) ∣ z ( i , l ) ) , w h e r e z ( i , l ) g ϕ ( ε ( i , l ) , x ( i ) ) , ε ( i , l ) ∼ p ( ε ) . (4.9) \begin{array}{l} {{\tilde {\cal L}}^B}\left( {\theta ,\phi ;{{\bf{x}}^{\left( i \right)}}} \right) - {D_{KL}}\left( {{q_\phi }\left( {{\bf{z}}|{{\bf{x}}^{\left( i \right)}}} \right)\parallel {p_\theta }\left( {\bf{z}} \right)} \right) \frac{1}{L}\sum\limits_{l 1}^L {\log {p_\theta }\left( {{{\bf{x}}^{\left( i \right)}}|{{\bf{z}}^{\left( {i,l} \right)}}} \right)} ,\\ {\rm{where }} {\text{ }} {{\bf{z}}^{\left( {i,l} \right)}} {g_\phi }\left( {{\varepsilon ^{\left( {i,l} \right)}},{{\bf{x}}^{\left( i \right)}}} \right),\;{\varepsilon ^{\left( {i,l} \right)}} \sim p\left( \varepsilon \right). \end{array}\tag{4.9} L~B(θ,ϕ;x(i))−DKL​(qϕ​(z∣x(i))∥pθ​(z))L1​l1∑L​logpθ​(x(i)∣z(i,l)),where z(i,l)gϕ​(ε(i,l),x(i)),ε(i,l)∼p(ε).​(4.9) 这时 KL 散度就相当于对 ϕ \phi ϕ 的规整化使得所估计的后验概率 q ϕ ( z ∣ x ) {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) qϕ​(z∣x) 尽量与先验 p θ ( z ) {p_\theta }\left( {\bf{z}} \right) pθ​(z) 相近。当给定数据集 X { x i } i 1 N {\bf{X}} \left\{ {{{\bf{x}}^i}} \right\}_{i 1}^N X{xi}i1N​ 时在一次迭代中使用所有样本往往是比较低效的。类似于神经网络的训练方法每次我们可随机抽取 M M M 个样本组成一个 minibatch即为 X M { x i } i 1 M {{\bf{X}}^M} \left\{ {{{\bf{x}}^i}} \right\}_{i 1}^M XM{xi}i1M​那么对完整数据集 X {\bf{X}} X 变分下界的估计可表示为 L ( θ , ϕ ; X ) ≃ N M L ~ ( θ , ϕ ; X M ) N M ∑ i 1 M L ~ ( θ , ϕ ; x ( i ) ) . (4.10) {\cal L}\left( {\theta ,\phi ;{\bf{X}}} \right) \simeq \frac{N}{M}\tilde {\cal L}\left( {\theta ,\phi ;{{\bf{X}}^M}} \right) \frac{N}{M}\sum\limits_{i 1}^M {\tilde {\cal L}\left( {\theta ,\phi ;{{\bf{x}}^{\left( i \right)}}} \right)} .\tag{4.10} L(θ,ϕ;X)≃MN​L~(θ,ϕ;XM)MN​i1∑M​L~(θ,ϕ;x(i)).(4.10) 论文表示当 M M M 足够大如 M 100 M 100 M100 时关于变分下界的蒙特卡洛估计所需采样次数 L L L 可以低至 1 而保证参数的收敛速度与准确性。对于 L ~ ( θ , ϕ ; X M ) \tilde {\cal L}\left( {\theta ,\phi ;{{\bf{X}}^M}} \right) L~(θ,ϕ;XM) 我们不要求直接求得其极值点只需要求得其梯度 ∇ θ , ϕ L ~ ( θ , ϕ ; X M ) {\nabla _{\theta ,\phi }}\tilde {\cal L}\left( {\theta ,\phi ;{{\bf{X}}^M}} \right) ∇θ,ϕ​L~(θ,ϕ;XM)然后根据如随机梯度下降等方法对当前最优解进行调整即可这与神经网络的训练方法是一样的。根据式 (4.9) 所定义的代价函数我们也能很容易地将变分贝叶斯与自编码神经网络联系起来从而获得了我们下面所要介绍的变分自编码器。 5 变分自编码器 通过前面的内容我们介绍了带有潜在变量的随机系统并且知道一个可能具有较高维度的可观测数据 x {\bf{x}} x能够通过具有较低维度的不可观测的潜在随机向量 z {\bf{z}} z 采样并估计而来这个过程可以称为对 z {\bf{z}} z 的解码。同样地我们也可以基于可观测数据 x {\bf{x}} x 估计潜在向量 z {\bf{z}} z 的具体分布参数这个过程也可以称为对 x {\bf{x}} x 的编码。这种“编码-解码”的模式也正是自编码神经网络的核心。本节内容将介绍如何将自编码器与变分贝叶斯结合从而赋予自编码器以随机性以及对于任意潜在向量的生成能力。 图2 自编码器架构 自编码器是一种确定性模型其架构如图 2 所示。自编码器分为编码与解码两部分它们通常可以通过包括多层感知机MLP以及卷积神经网络CNN或者其他能够对信息进行压缩与解压缩的架构来实现。对于编码和解码我们可以分别使用某种具有复杂形式的函数来表示如 z f e n c ( x ) , x ′ g d e c ( z ) . (5.1) {\bf{z}} {f_{enc}}\left( {\bf{x}} \right),\quad {\bf{x}} {g_{dec}}\left( {\bf{z}} \right).\tag{5.1} zfenc​(x),x′gdec​(z).(5.1) 这个过程中我们要最小化解码重构误差即有代价函数 L 1 2 ∑ x ∥ x − x ′ ∥ 2 2 1 2 ∑ x ∥ x − g d e c ( f e n c ( x ) ) ∥ 2 2 . (5.2) {\cal L} \frac{1}{2}\sum\limits_{\bf{x}} {\left\| {{\bf{x}} - {\bf{x}}} \right\|_2^2} \frac{1}{2}\sum\limits_{\bf{x}} {\left\| {{\bf{x}} - {g_{dec}}\left( {{f_{enc}}\left( {\bf{x}} \right)} \right)} \right\|_2^2} .\tag{5.2} L21​x∑​∥x−x′∥22​21​x∑​∥x−gdec​(fenc​(x))∥22​.(5.2) 由于 z {\bf{z}} z 的维度通常远远小于 x {\bf{x}} x 的维度所以自编码器并不是简单地把输入复制到输出而是需要具备信息压缩的能力并且能够通过更少的维度准确地还原更高维的内容。 回顾变分贝叶斯的内容对于变分下界第二种形式我们可得变分贝叶斯算法的代价函数 L ( θ , ϕ ; x ( i ) ) ≃ − D K L ( q ϕ ( z ∣ x ( i ) ) ∥ p θ ( z ) ) 1 L ∑ l 1 L log ⁡ p θ ( x ( i ) ∣ z ( i , l ) ) , w h e r e z ( i , l ) g ϕ ( ε ( i , l ) , x ( i ) ) , ε ( i , l ) ∼ p ( ε ) . (5.3) \begin{array}{l} {\cal L}\left( {\theta ,\phi ;{{\bf{x}}^{\left( i \right)}}} \right) \simeq - {D_{KL}}\left( {{q_\phi }\left( {{\bf{z}}|{{\bf{x}}^{\left( i \right)}}} \right)\parallel {p_\theta }\left( {\bf{z}} \right)} \right) \frac{1}{L}\sum\limits_{l 1}^L {\log {p_\theta }\left( {{{\bf{x}}^{\left( i \right)}}|{{\bf{z}}^{\left( {i,l} \right)}}} \right)} ,\\ {\rm{where }} {\text{ }} {{\bf{z}}^{\left( {i,l} \right)}} {g_\phi }\left( {{\varepsilon ^{\left( {i,l} \right)}},{{\bf{x}}^{\left( i \right)}}} \right),\;{\varepsilon ^{\left( {i,l} \right)}} \sim p\left( \varepsilon \right). \end{array}\tag{5.3} L(θ,ϕ;x(i))≃−DKL​(qϕ​(z∣x(i))∥pθ​(z))L1​l1∑L​logpθ​(x(i)∣z(i,l)),where z(i,l)gϕ​(ε(i,l),x(i)),ε(i,l)∼p(ε).​(5.3) 出于可实现性的考量我们这时需要对上式中各种分布分别做出合理的假设。由于 KL 散度对于如高斯分布具有简单的解析形式即有具体推导见链接 https://blog.csdn.net/qq_33552519/article/details/130561606 D K L ( N ( μ 1 , σ 1 2 ) ∥ N ( μ 2 , σ 2 2 ) ) ( μ 1 − μ 2 ) 2 ( σ 1 2 − σ 2 2 ) 2 σ 2 2 log ⁡ σ 2 σ 1 . (5.4) {D_{KL}}\left( {{\cal N}\left( {{\mu _1},\sigma _1^2} \right)\parallel {\cal N}\left( {{\mu _2},\sigma _2^2} \right)} \right) \frac{{{{\left( {{\mu _1} - {\mu _2}} \right)}^2} \left( {\sigma _1^2 - \sigma _2^2} \right)}}{{2\sigma _2^2}} \log \frac{{{\sigma _2}}}{{{\sigma _1}}}.\tag{5.4} DKL​(N(μ1​,σ12​)∥N(μ2​,σ22​))2σ22​(μ1​−μ2​)2(σ12​−σ22​)​logσ1​σ2​​.(5.4) 同时考虑到中心极限定理中高斯分布的普适性我们不妨假设 q ϕ ( z ∣ x ) {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) qϕ​(z∣x) p θ ( z ) {p_\theta }\left( {\bf{z}} \right) pθ​(z) 都为高斯分布一般考虑连续的随机变量 z {\bf{z}} z并且为了简化代价函数的计算假设它们具有对角阵形式的协方差矩阵即各个分量都是独立的。一般来说我们会假设先验 p θ ( z ) {p_\theta }\left( {\bf{z}} \right) pθ​(z) 服从标准正态分布即 p θ ( z ) N ( 0 , I ) {p_\theta }\left( {\bf{z}} \right) {\cal N}\left( {{\bf{0}},{\bf{I}}} \right) pθ​(z)N(0,I)这是因为该先验理论上不与任何可观测数据 x {\bf{x}} x 相关。对于 q ϕ ( z ∣ x ) {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) qϕ​(z∣x)这是一个由观测数据 x {\bf{x}} x 决定的分布并且有 log ⁡ q ϕ ( z ∣ x ( i ) ) log ⁡ N ( z ; μ ( i ) , σ 2 ( i ) I ) . (5.5) \log {q_\phi }\left( {{\bf{z}}|{{\bf{x}}^{\left( i \right)}}} \right) \log {\cal N}\left( {{\bf{z}};{\mu ^{\left( i \right)}},{\sigma ^{2\left( i \right)}}{\bf{I}}} \right).\tag{5.5} logqϕ​(z∣x(i))logN(z;μ(i),σ2(i)I).(5.5) 注意在这里 q ϕ ( z ∣ x ( i ) ) {q_\phi }\left( {{\bf{z}}|{{\bf{x}}^{\left( i \right)}}} \right) qϕ​(z∣x(i)) 的参数 ϕ \phi ϕ 并不直接等同于高斯分布的两个参数 μ ( i ) {\mu ^{\left( i \right)}} μ(i) 和 σ ( i ) {\sigma ^{\left( i \right)}} σ(i)它们是由关于参数 ϕ \phi ϕ 的复杂函数如神经网络对于输入的 x ( i ) {{\bf{x}}^{\left( i \right)}} x(i) 映射而得到的。所有的样本 x ( i ) {{\bf{x}}^{\left( i \right)}} x(i) 共享神经网络的权重与偏置 ϕ \phi ϕ但不同的样本 x ( i ) {{\bf{x}}^{\left( i \right)}} x(i) 通过神经网络映射可得不同的高斯分布参数 μ ( i ) {\mu ^{\left( i \right)}} μ(i) 和 σ ( i ) {\sigma ^{\left( i \right)}} σ(i)。这实际对应了自编码器中的编码部分。尽管变分贝叶斯没有直接从 x ( i ) {{\bf{x}}^{\left( i \right)}} x(i) 编码出 z ( i ) {{\bf{z}}^{\left( i \right)}} z(i)但我们得到了高斯分布的参数这也可以看作另一种形式的编码。以分布 q ϕ ( z ∣ x ( i ) ) {q_\phi }\left( {{\bf{z}}|{{\bf{x}}^{\left( i \right)}}} \right) qϕ​(z∣x(i)) 进行采样我们就获得了 z ( i ) {{\bf{z}}^{\left( i \right)}} z(i)。而这个过程是随机的这是确定性自编码器所不具备的特点。基于式 (5.4)容易可得变分下界中的 KL 散度为 − D K L ( q ϕ ( z ∣ x ( i ) ) ∥ p θ ( z ) ) 1 2 ∑ j 1 J ( 1 log ⁡ ( ( σ j ( i ) ) 2 ) − ( μ j ( i ) ) 2 − ( σ j ( i ) ) 2 ) . (5.6) \begin{array}{l} {-} {D_{KL}}\left( {{q_\phi }\left( {{\bf{z}}|{{\bf{x}}^{\left( i \right)}}} \right)\parallel {p_\theta }\left( {\bf{z}} \right)} \right)\\ \frac{1}{2}\sum\limits_{j 1}^J {\left( {1 \log \left( {{{\left( {\sigma _j^{\left( i \right)}} \right)}^2}} \right) - {{\left( {\mu _j^{\left( i \right)}} \right)}^2} - {{\left( {\sigma _j^{\left( i \right)}} \right)}^2}} \right)} . \end{array}\tag{5.6} −DKL​(qϕ​(z∣x(i))∥pθ​(z))21​j1∑J​(1log((σj(i)​)2)−(μj(i)​)2−(σj(i)​)2).​(5.6) 其中 J J J 为 z {\bf{z}} z 的维度。实际上 q ϕ ( z ∣ x ) {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) qϕ​(z∣x) 为高斯分布对于蒙特卡洛估计中的重参数方法也是有利的这时可令采样分布服从标准正态分布 ε ∼ p ( ε ) N ( 0 , I ) \varepsilon \sim p\left( \varepsilon \right) {\cal N}\left( {{\bf{0}},{\bf{I}}} \right) ε∼p(ε)N(0,I)且有变换函数 z ( i , j ) g ϕ ( ε ( i , l ) , x ( i ) ) μ ( i ) σ ( i ) ⊙ ε ( i , l ) . (5.7) {{\mathbf{z}}^{\left( {i,j} \right)}} {g_\phi }\left( {{\varepsilon ^{\left( {i,l} \right)}},{{\mathbf{x}}^{\left( i \right)}}} \right) {\mu ^{\left( i \right)}} {\sigma ^{\left( i \right)}} \odot {\varepsilon ^{\left( {i,l} \right)}}.\tag{5.7} z(i,j)gϕ​(ε(i,l),x(i))μ(i)σ(i)⊙ε(i,l).(5.7) 其中 ⊙ \odot ⊙ 代表 element-wise 的相乘。 对于代价函数的第二部分 log ⁡ p θ ( x ( i ) ∣ z ( i , l ) ) \log {p_\theta }\left( {{{\bf{x}}^{\left( i \right)}}|{{\bf{z}}^{\left( {i,l} \right)}}} \right) logpθ​(x(i)∣z(i,l))由于 x {\bf{x}} x 既可能是离散的例如二元也可能是连续的所以我们可以根据数据的类型选择合适的分布类型假设。例如对于二元数据我们可以选择伯努利分布而对于连续数据一般选择高斯分布会比较合适。这里我们以连续类型数据为例类似于编码部分我们并不要求解码部分可以直接输出重构的数据来逼近 x ( i ) {{\bf{x}}^{\left( i \right)}} x(i)解码器只需要估计 p θ ( x ( i ) ∣ z ( i , l ) ) {p_\theta }\left( {{{\bf{x}}^{\left( i \right)}}|{{\bf{z}}^{\left( {i,l} \right)}}} \right) pθ​(x(i)∣z(i,l)) 的参数例如对于高斯分布的均值和方差。因为高斯分布在均值处具有最大的概率密度所以如果解码器输出的均值与输入的 x ( i ) {{\bf{x}}^{\left( i \right)}} x(i) 越接近我们就能获得更大的代价函数值。因此让解码器直接输出重构结果来逼近输入 x ( i ) {{\bf{x}}^{\left( i \right)}} x(i)与让解码器输出 p θ ( x ( i ) ∣ z ( i , l ) ) {p_\theta }\left( {{{\bf{x}}^{\left( i \right)}}|{{\bf{z}}^{\left( {i,l} \right)}}} \right) pθ​(x(i)∣z(i,l)) 的分布参数是等价的。而后者还赋予了我们生成更多具有现实意义的 x {\bf{x}} x 的能力而不是仅仅把已知的两个数据 x ( i ) {{\bf{x}}^{\left( i \right)}} x(i)和 x ( j ) {{\bf{x}}^{\left( j \right)}} x(j) 加权叠加的结果。这也是确定性自编码器所不能做到的。 图3 变分自编码器架构 综上所述我们可以搭建一个变分自编码器如图 3 所示。相比于普通自编码器变分自编码器的主要特征是包含了一个随机采样操作且编码器与解码器的输出并不是确定性的潜在特征与重构数据而是两者的分布参数。根据前面的内容可得变分自编码器的代价函数为 L ( θ , ϕ ; x ( i ) ) ≃ 1 2 ∑ j 1 J ( 1 log ⁡ ( ( σ j ( i ) ) 2 ) − ( μ j ( i ) ) 2 − ( σ j ( i ) ) 2 ) 1 L ∑ l 1 L log ⁡ p θ ( x ( i ) ∣ z ( i , l ) ) , w h e r e z ( i , l ) g ϕ ( ε ( i , l ) , x ( i ) ) , ε ( i , l ) ∼ p ( ε ) . (5.8) \begin{aligned} {\cal L}\left( {\theta ,\phi ;{{\bf{x}}^{\left( i \right)}}} \right) \simeq \frac{1}{2}\sum\limits_{j 1}^J {\left( {1 \log \left( {{{\left( {\sigma _j^{\left( i \right)}} \right)}^2}} \right) - {{\left( {\mu _j^{\left( i \right)}} \right)}^2} - {{\left( {\sigma _j^{\left( i \right)}} \right)}^2}} \right)} \\ {} \frac{1}{L}\sum\limits_{l 1}^L {\log {p_\theta }\left( {{{\bf{x}}^{\left( i \right)}}|{{\bf{z}}^{\left( {i,l} \right)}}} \right)} ,\\ {\rm{where }}{{\bf{z}}^{\left( {i,l} \right)}} {g_\phi }\left( {{\varepsilon ^{\left( {i,l} \right)}},{{\bf{x}}^{\left( i \right)}}} \right),\;{\varepsilon ^{\left( {i,l} \right)}} \sim p\left( \varepsilon \right). \end{aligned}\tag{5.8} L(θ,ϕ;x(i))wherez(i,l)​≃21​j1∑J​(1log((σj(i)​)2)−(μj(i)​)2−(σj(i)​)2)L1​l1∑L​logpθ​(x(i)∣z(i,l)),gϕ​(ε(i,l),x(i)),ε(i,l)∼p(ε).​(5.8) 其中 J J J 为潜在特征 z {\bf{z}} z 的维度 L L L 为对 log ⁡ p θ ( x ∣ z ) \log {p_\theta }\left( {{\bf{x}}|{\bf{z}}} \right) logpθ​(x∣z) 的蒙特卡洛估计的采样次数。正如前面所提到当网络训练时所使用的 minibatch 样本数量 M M M 足够大时 L L L 可以取 1 而不影响参数的收敛所以图 3 中只展示了一次采样操作。由于我们假设 p θ ( z ) {p_\theta }\left( {\bf{z}} \right) pθ​(z) 服从标准正态分布所以编码器部分实际上只与参数 ϕ \phi ϕ 相关我们可以把编码器中的神经元连接权重与偏置看作是参数 ϕ \phi ϕ 的集合。同理我们可以把解码器中的神经元连接权重与偏置看作是参数 θ \theta θ 的集合。但是由于某些网络架构中编码器与解码器可能存在一定的交互我们也没必要对 θ \theta θ 与 ϕ \phi ϕ 作过多的细分。由于变分自编码器对于自编码器的改动并不多所以变分自编码器可以很容易地嵌入到现有的各种的网络架构中而无需对参数的优化做太多的修改。 值得注意的是由于通过变分自编码器求得了 q ϕ ( z ∣ x ) {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) qϕ​(z∣x) p θ ( z ) {p_\theta }\left( {\bf{z}} \right) pθ​(z) 以及 p θ ( x ∣ z ) {p_\theta }\left( {{\bf{x}}|{\bf{z}}} \right) pθ​(x∣z) 的具体分布参数当潜在特征 z {\bf{z}} z 维度较低时我们还能够通过蒙特卡洛方法对 x {\bf{x}} x 的边缘分布 p θ ( x ) {p_\theta }\left( {\bf{x}} \right) pθ​(x) 进行相对准确的估计即 1 p θ ( x ( i ) ) ∫ q ( z ) d z p θ ( x ( i ) ) ∫ p θ ( x ( i ) , z ) p θ ( x ( i ) ) q ( z ) p θ ( x ( i ) , z ) d z ∫ p θ ( z ∣ x ( i ) ) q ( z ) p θ ( x ( i ) , z ) d z ≃ 1 L ∑ l 1 L q ( z ( l ) ) p θ ( z ( l ) ) p θ ( x ( i ) ∣ z ( l ) ) , w h e r e z ( l ) ∼ p θ ( z ∣ x ( i ) ) . (5.9) \begin{aligned} \frac{1}{{{p_\theta }\left( {{{\bf{x}}^{\left( i \right)}}} \right)}} \frac{{\int {q\left( {\bf{z}} \right)d{\bf{z}}} }}{{{p_\theta }\left( {{{\bf{x}}^{\left( i \right)}}} \right)}} \int {\frac{{{p_\theta }\left( {{{\bf{x}}^{\left( i \right)}},{\bf{z}}} \right)}}{{{p_\theta }\left( {{{\bf{x}}^{\left( i \right)}}} \right)}}\frac{{q\left( {\bf{z}} \right)}}{{{p_\theta }\left( {{{\bf{x}}^{\left( i \right)}},{\bf{z}}} \right)}}d{\bf{z}}} \\ \int {{p_\theta }\left( {{\bf{z}}|{{\bf{x}}^{\left( i \right)}}} \right)\frac{{q\left( {\bf{z}} \right)}}{{{p_\theta }\left( {{{\bf{x}}^{\left( i \right)}},{\bf{z}}} \right)}}d{\bf{z}}} \\ \simeq \frac{1}{L}\sum\limits_{l 1}^L {\frac{{q\left( {{{\bf{z}}^{\left( l \right)}}} \right)}}{{{p_\theta }\left( {{{\bf{z}}^{\left( l \right)}}} \right){p_\theta }\left( {{{\bf{x}}^{\left( i \right)}}|{{\bf{z}}^{\left( l \right)}}} \right)}}} ,\\ {\rm{where }} {\text{ }} {{\bf{z}}^{\left( l \right)}} \sim {p_\theta }\left( {{\bf{z}}|{{\bf{x}}^{\left( i \right)}}} \right). \end{aligned} \tag{5.9} pθ​(x(i))1​where z(l)​pθ​(x(i))∫q(z)dz​∫pθ​(x(i))pθ​(x(i),z)​pθ​(x(i),z)q(z)​dz∫pθ​(z∣x(i))pθ​(x(i),z)q(z)​dz≃L1​l1∑L​pθ​(z(l))pθ​(x(i)∣z(l))q(z(l))​,∼pθ​(z∣x(i)).​(5.9) 这里 q ( z ) q\left( {\bf{z}} \right) q(z) 是任意的我们也可以直接选择 q ϕ ( z ∣ x ) {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) qϕ​(z∣x)。当然后验分布 p θ ( z ∣ x ) {p_\theta }\left( {{\bf{z}}|{\bf{x}}} \right) pθ​(z∣x) 我们是不知道的但正如第三节中所提到根据后验概率的梯度其中 log ⁡ p θ ( z ∣ x ) log ⁡ p θ ( x ∣ z ) log ⁡ p θ ( z ) − log ⁡ p θ ( x ) , ⇒ ∇ z log ⁡ p θ ( z ∣ x ) ∇ z log ⁡ p θ ( x ∣ z ) ∇ z log ⁡ p θ ( z ) . (5.10) \begin{array}{l} \log {p_\theta }\left( {{\bf{z}}|{\bf{x}}} \right) \log {p_\theta }\left( {{\bf{x}}|{\bf{z}}} \right) \log {p_\theta }\left( {\bf{z}} \right) - \log {p_\theta }\left( {\bf{x}} \right),\\ \Rightarrow {\nabla _{\bf{z}}}\log {p_\theta }\left( {{\bf{z}}|{\bf{x}}} \right) {\nabla _{\bf{z}}}\log {p_\theta }\left( {{\bf{x}}|{\bf{z}}} \right) {\nabla _{\bf{z}}}\log {p_\theta }\left( {\bf{z}} \right). \end{array} \tag{5.10} logpθ​(z∣x)logpθ​(x∣z)logpθ​(z)−logpθ​(x),⇒∇z​logpθ​(z∣x)∇z​logpθ​(x∣z)∇z​logpθ​(z).​(5.10) 我们可以使用哈密顿蒙特卡洛HMC采样方法直接采样到符合后验分布的样本 z ( l ) {{\bf{z}}^{\left( l \right)}} z(l)而无需显式地知道后验分布的参数。应该意识到我们自始至终并没有假设边缘分布 p θ ( x ) {p_\theta }\left( {\bf{x}} \right) pθ​(x) 与后验分布 p θ ( z ∣ x ) {p_\theta }\left( {{\bf{z}}|{\bf{x}}} \right) pθ​(z∣x) 为高斯分布因为这种假设过于苛刻了。但是对于条件分布 p θ ( x ∣ z ) {p_\theta }\left( {{\bf{x}}|{\bf{z}}} \right) pθ​(x∣z) 为高斯分布的假设还是比较合理的因为潜在特征 z {\bf{z}} z 相当于为我们限制了一个可观测数据的中心点与变化范围。另外对于 q ϕ ( z ∣ x ) {q_\phi }\left( {{\bf{z}}|{\bf{x}}} \right) qϕ​(z∣x)尽管其分布应该与后验分布 p θ ( z ∣ x ) {p_\theta }\left( {{\bf{z}}|{\bf{x}}} \right) pθ​(z∣x) 保持一致但毕竟其是可以任意选取的我们出于参数优化的可行性考虑需要对其进行一些简化而这方面的影响也可以通过最大化变分下界来进行弥补。
http://www.hkea.cn/news/14465658/

相关文章:

  • 旅游网站设计与实现论文wordpress cms 插件
  • 企业购网站建设做个简单的公司网站要多少钱
  • 微信微博网站建设意见书怎么选择移动网站建设
  • 深圳网站设计廊坊公司购物系统数据库设计
  • 设计素材网站合集产品开发流程是经营流程
  • 哈尔滨网站制作前景转转钓鱼链接怎么制作
  • 云南省建设工程网站自助建站系统源码
  • 找人做网站!!! 网站定制开发公司建设网站时的注意事项
  • 网站开发项目个人总结网站建设公司何去何从
  • 西安网站seowordpress远程访问
  • 大学科技园东区 做网站特定ip段访问网站代码
  • 做游戏模型素材 网站做网站存在的问题
  • 新手自己建设一个网站erp系统有哪些
  • 网站侧栏软件排行榜怎么做的哈尔滨网站开发建设公司电话
  • 江西网站开发公司电话网站建设实训个人总结1000字
  • 泰州模板建站源码网络营销推广系统排名推荐系统
  • 做期货在哪个网站看消息盐城网站优化推广服务
  • 麦片网站建设wordpress页面如何设置新窗口
  • 自己做儿童衣服教程的网站wordpress 摘要 支持html
  • asp网站版权网站备案周期
  • 深圳建外贸网站公司网站模板设计
  • 枣庄网站开发招聘flash怎么做网站
  • 录音录像手表网站网站访客记录
  • 现代农业建设 乡网站跨境电商网站设计
  • 河北城乡建设厅网站显示不全wordpress 查看原图
  • 怎么用织梦来做网站后台福州做网站公司
  • 备案后可以修改网站吗响应式企业网站 下载
  • 可发外链的高权重网站wordpress 去谷歌
  • 深圳企业网站建设服务好wordpress中加音乐
  • 建个微网站多少钱wordpress 加载