在IWAE中仅仅考虑了两层的隐藏层,但是随着层数多了,高层很多都训练不好,因此提出了LVAE。首先比较下模型与IWAE的区别。各层

建模如下pθ(z)=pθ(zL)∏i=1L−1pθ(zi∣zi+1)pθ(zi∣zi+1)=N(z∣μp,i(zi+1),σp,i2(zi+1)),pθ(zL)=N(zL∣0,I)pθ(x∣z1)=N(x∣μp,0(z1),σp,02(z1))or Pθ(x∣z1)=B(x∣μp,0(z1))\begin{aligned} p_{\theta}(\mathbf{z}) &=p_{\theta}\left(\mathbf{z}_{L}\right) \prod_{i=1}^{L-1} p_{\theta}\left(\mathbf{z}_{i} | \mathbf{z}_{i+1}\right) \\ p_{\theta}\left(\mathbf{z}_{i} | \mathbf{z}_{i+1}\right) &=\mathcal{N}\left(\mathbf{z} | \mu_{p, i}\left(\mathbf{z}_{i+1}\right), \sigma_{p, i}^{2}\left(\mathbf{z}_{i+1}\right)\right), \quad p_{\theta}\left(\mathbf{z}_{L}\right)=\mathcal{N}\left(\mathbf{z}_{L} | \mathbf{0}, \mathbf{I}\right) \\ p_{\theta}\left(\mathbf{x} | \mathbf{z}_{1}\right) &=\mathcal{N}\left(\mathbf{x} | \mu_{p, 0}\left(\mathbf{z}_{1}\right), \sigma_{p, 0}^{2}\left(\mathbf{z}_{1}\right)\right) \text { or } P_{\theta}\left(\mathbf{x} | \mathbf{z}_{1}\right)=\mathcal{B}\left(\mathbf{x} | \mu_{p, 0}\left(\mathbf{z}_{1}\right)\right) \end{aligned} pθ​(z)pθ​(zi​∣zi+1​)pθ​(x∣z1​)​=pθ​(zL​)i=1∏L−1​pθ​(zi​∣zi+1​)=N(z∣μp,i​(zi+1​),σp,i2​(zi+1​)),pθ​(zL​)=N(zL​∣0,I)=N(x∣μp,0​(z1​),σp,02​(z1​)) or Pθ​(x∣z1​)=B(x∣μp,0​(z1​))​一般的VAE的inference部分建模如下qϕ(z∣x)=qϕ(z1∣x)∏i=2Lqϕ(zi∣zi−1)qϕ(z1∣x)=N(z1∣μq,1(x),σq,12(x))qϕ(zi∣zi−1)=N(zi∣μq,i(zi−1),σq,i2(zi−1)),i=2…L\begin{aligned} q_{\phi}(\mathbf{z} | \mathbf{x}) &=q_{\phi}\left(\mathbf{z}_{1} | \mathbf{x}\right) \prod_{i=2}^{L} q_{\phi}\left(\mathbf{z}_{i} | \mathbf{z}_{i-1}\right) \\ q_{\phi}\left(\mathbf{z}_{1} | \mathbf{x}\right) &=\mathcal{N}\left(\mathbf{z}_{1} | \mu_{q, 1}(\mathbf{x}), \sigma_{q, 1}^{2}(\mathbf{x})\right) \\ q_{\phi}\left(\mathbf{z}_{i} | \mathbf{z}_{i-1}\right) &=\mathcal{N}\left(\mathbf{z}_{i} | \mu_{q, i}\left(\mathbf{z}_{i-1}\right), \sigma_{q, i}^{2}\left(\mathbf{z}_{i-1}\right)\right), i=2 \ldots L \end{aligned} qϕ​(z∣x)qϕ​(z1​∣x)qϕ​(zi​∣zi−1​)​=qϕ​(z1​∣x)i=2∏L​qϕ​(zi​∣zi−1​)=N(z1​∣μq,1​(x),σq,12​(x))=N(zi​∣μq,i​(zi−1​),σq,i2​(zi−1​)),i=2…L​但是这样训练会出现问题,难以优化,因此本文提出一个新的inference模型。首先用正常的神经网络得到dn=MLP⁡(dn−1)μ^q,i=Linear⁡(di),i=1…Lσ^q,i2=Softplus⁡(Linear⁡(di)),i=1…L\begin{aligned} \mathbf{d}_{n} &=\operatorname{MLP}\left(\mathbf{d}_{n-1}\right) \\ \hat{\mu}_{q, i} &=\operatorname{Linear}\left(\mathbf{d}_{i}\right), i=1 \ldots L \\ \hat{\sigma}_{q, i}^{2} &=\operatorname{Softplus}\left(\operatorname{Linear}\left(\mathbf{d}_{i}\right)\right), i=1 \ldots L \end{aligned} dn​μ^​q,i​σ^q,i2​​=MLP(dn−1​)=Linear(di​),i=1…L=Softplus(Linear(di​)),i=1…L​其中d0=x\mathbf{d}_{0}=\mathbf{x}d0​=x。然后qϕ(z∣x)=qϕ(zL∣x)∏i=1L−1qϕ(zi∣zi+1,x)σq,i=1σ^q,i−2+σp,i−2μq,i=μ^q,iσ^q,i−2+μp,iσp,i−2σ^q,i−2+σp,i−2qϕ(zi∣⋅)=N(zi∣μq,i,σq,i2)\begin{array}{c}{q_{\phi}(\mathbf{z} | \mathbf{x})=q_{\phi}\left(\mathbf{z}_{L} | \mathbf{x}\right) \prod_{i=1}^{L-1} q_{\phi}\left(\mathbf{z}_{i} | \mathbf{z}_{i+1}, \mathbf{x}\right)} \\ {\sigma_{q, i}=\frac{1}{\hat{\sigma}_{q, i}^{-2}+\sigma_{p, i}^{-2}}} \\ {\mu_{q, i}=\frac{\hat{\mu}_{q, i} \hat{\sigma}_{q, i}^{-2}+\mu_{p, i} \sigma_{p, i}^{-2}}{\hat{\sigma}_{q, i}^{-2}+\sigma_{p, i}^{-2}}} \\ {q_{\phi}\left(\mathbf{z}_{i} | \cdot\right)=\mathcal{N}\left(\mathbf{z}_{i} | \mu_{q, i}, \sigma_{q, i}^{2}\right)}\end{array} qϕ​(z∣x)=qϕ​(zL​∣x)∏i=1L−1​qϕ​(zi​∣zi+1​,x)σq,i​=σ^q,i−2​+σp,i−2​1​μq,i​=σ^q,i−2​+σp,i−2​μ^​q,i​σ^q,i−2​+μp,i​σp,i−2​​qϕ​(zi​∣⋅)=N(zi​∣μq,i​,σq,i2​)​其中μq,L=μ^q,L\mu_{q, L}=\hat{\mu}_{q, L}μq,L​=μ^​q,L​,σq,L2=σ^q,L2\sigma_{q, L}^{2}=\hat{\sigma}_{q, L}^{2}σq,L2​=σ^q,L2​。可以看出σq,i,μq,i\sigma_{q, i},\mu_{q, i}σq,i​,μq,i​由生成模型(“先验”)的σp,i,μp,i\sigma_{p,i},\mu_{p,i}σp,i​,μp,i​和(“似然”)σ^q,i,μ^q,i\hat{\sigma}_{q,i},\hat{\mu}_{q, i}σ^q,i​,μ^​q,i​组成“后验”。
随着网络的加深,有些隐变量会变得uninformative,这种uninformative是从一开始就变成这样,一旦uninformative就会一直uninformative,随着训练的进行不会再激活它们。本文中先以standard deterministic auto-encoder进行参数初始化,然后L(θ,ϕ;x)WU=−βKL(qϕ(z∣x)∥pθ(z))+Eqϕ(z∣x)[log⁡pθ(x∣z)]\mathcal{L}(\theta, \phi ; \mathbf{x})_{W U}=-\beta K L\left(q_{\phi}(z | x) \| p_{\theta}(\mathbf{z})\right)+E_{q_{\phi}(z | x)}\left[\log p_{\theta}(\mathbf{x} | \mathbf{z})\right] L(θ,ϕ;x)WU​=−βKL(qϕ​(z∣x)∥pθ​(z))+Eqϕ​(z∣x)​[logpθ​(x∣z)]其中β\betaβ为前NtN_tNt​线性从0增加到1,这种方式称为warm-up(WU)。

从上面的效果可以看出,本文的方法能够得到更多有意义的神经元。不仅如此,可视化效果可以看出,LVAE能够学习到结构性的高层特征

Ladder VAE相关推荐

  1. VAE变分自编码器实现

    变分自编码器(VAE)组合了神经网络和贝叶斯推理这两种最好的方法,是最酷的神经网络,已经成为无监督学习的流行方法之一. 变分自编码器是一个扭曲的自编码器.同自编码器的传统编码器和解码器网络一起,具有附 ...

  2. 变分自编码器VAE代码

    VAE更倾向于数据生成.当我们训练好了decoder,就可以从标准正态分布生成数据作为解码器的输入,来生成类似但不同于训练数据的新样本,作用类似GAN,用来降维.生成数据. 1.训练代码 import ...

  3. Pytorch入门之VAE

    这里谈谈对于变分自编码器(Variational auto-encoder)即VAE的实现. 1. 稀疏编码 首先介绍一下"稀疏编码"这一概念. 早期学者在黑白风景照片中可以提取到 ...

  4. 三大深度学习生成模型:VAE、GAN及其变种

    本章将为读者介绍基于深度学习的生成模型.前面几章主要介绍了机器学习中的判别式模型,这种模型的形式主要是根据原始图像推测图像具备的一些性质,例如根据数字图像推测数字的名称,根据自然场景图像推测物体的边界 ...

  5. 如何使用TensorFlow和VAE模型生成手写数字

    全部 VAE 代码:https://github.com/FelixMohr/Deep-learning-with-Python/blob/master/VAE.ipynb 自编码器是一种能够用来学习 ...

  6. VAE(Variational Autoencoder)的原理

    Kingma, Diederik P., and Max Welling. "Auto-encoding variational bayes." arXiv preprint ar ...

  7. 只知道GAN你就OUT了——VAE背后的哲学思想及数学原理

    短短三年时间,变分编码器VAE(Variational Auto-encoder)同GAN一样,成为无监督复杂概率分布学习的最流行的方法.VAE之所以流行,是因为它建立在标准函数逼近单元,即神经网络, ...

  8. 原创 | 变分自动编码器(VAE)

    1. VAE 概述 变分自动编码器(Variational autoEncoder,VAE)是生成模型的一种.这些方法的主要目标是从对象的学习分布中生成新的采样数据.2014 年,Kingma et ...

  9. 在TensorFlow中对比两大生成模型:VAE与GAN(附测试代码)

    来源:机器之心 本文长度为3071字,建议阅读6分钟 本文在 MNIST 上对VAE和GAN这两类生成模型的性能进行了对比测试. 项目链接:https://github.com/kvmanohar22 ...

最新文章

  1. VS2012+EF6+Mysq
  2. SHELL基础学习必杀技之十三问
  3. Converting slapd.conf to a Directory Based Configu
  4. 神仙打架:PG 和 MySQL 到底哪个更好用?
  5. sql参数化还是被注入了_面试官问你 SQL 注入攻击了吗?
  6. c语言的变量,常量及作用域等
  7. bean定义的继承 - Spring Framework reference 2.0.5 参考手册中文版
  8. 使用Spring JDBC进行数据访问 (JdbcTemplate/NamedParameterJdbcTemplate/SimpleJdbcTemplate/SimpleJdbcCall/Stor)
  9. 你有可能错过的东西:IIS7 ULR-Rewrite已经成为正式版本
  10. 视频:如何把应用通过vmc部署到cloud foundry上
  11. python计算累计收益率的函数,在Python中计算累积密度函数的导数
  12. $_FILES[file]['error']
  13. 华为承诺的鸿蒙系统兑现没有,华为鸿蒙系统遭截胡,安卓12系统率先出手
  14. SimpleLPR车牌自动识别,一张图片就可识别
  15. 史上最全的Go语言模块(Module)管理详解(基于Go1.19)
  16. 重装系统怎样设置从U盘启动的详细教程
  17. 数字人民币的基础:共识与信任
  18. TCP的乱序和丢包判断(附Reordering更新算法)-实例case
  19. utorrent不能下载的解决方法
  20. 为Onda v820w CH (v1) DualOS平板刷写Remix单系统

热门文章

  1. §7.3 n维欧氏空间中的紧致子集
  2. java currentTimeMillis nanoTime 毫秒 纳秒
  3. java最好用的开发软件,掌握这些知识点再也不怕面试通不过!
  4. python温湿度传感器源代码_在树莓派上读取DHT11温湿度传感器python代码实现及常见问题(全面简单易懂)...
  5. 使用ASP.NET MVC开发企业招聘系统
  6. 网页版bilibili用adblockPlus拦截三连等弹窗
  7. j2objc简单调用
  8. SurfaceFlinger模块
  9. FAE,嵌入式最苦涩的职位
  10. 【工作笔记】PathFileExists 返回 FALSE