【科研基础】VAE: Auto-encoding Variational Bayes

[1]Kingma, Diederik P., and Max Welling. “Auto-encoding variational bayes.” arXiv preprint arXiv:1312.6114 (2013).

[2] [论文简析]VAE: Auto-encoding Variational Bayes[1312.6114]

[3] The Reparameterization Trick

[4] 变分法的基本原理是什么?

文章目录

    • 1-什么是VAE
      • 1.1-目标
      • 1.2-Intractability:
      • 1.3-Approximation use NN:
      • 1.4-最大化 L ( θ , ϕ ; x ) L(\theta,\phi;x) L(θ,ϕ;x):
      • 1.5-优化 E q ϕ ( z ∣ x ) [ log ⁡ ( p θ ( x ∣ z ) ) ] E_{q_\phi(z|x)}[\log(p_\theta(x|z))] Eqϕ(zx)[log(pθ(xz))] D K L ( q ϕ ( z ∣ x ) ∣ ∣ p θ ( z ) ) D_{KL}(q_\phi(z|x)||p_\theta(z)) DKL(qϕ(zx)∣∣pθ(z))
      • 1.6-重参数化技巧
      • 1.7-SGVB
      • 1.8-另外一种SGVB
      • 1.9.总结
      • 1.10-变分的含义

1-什么是VAE

1.1-目标

x \mathbf{x} x:为 z \mathbf{z} z的采样,生成自条件分布 p θ ∗ ( x ∣ z ) p_{\theta^*}(\mathbf{x}|\mathbf{z}) pθ(xz) θ ∗ \theta^* θ表示ground truth而 θ \theta θ表示解码器参数),;
z \mathbf{z} z x \mathbf{x} x更本质的描述(不可直接观测),来自先验分布 p θ ∗ ( z ) p_{\boldsymbol{\theta}^*}(\mathbf{z}) pθ(z)
在这里插入图片描述
目标是是根据 x \mathbf{x} x能够得到 z \mathbf{z} z:

1.2-Intractability:

  • p θ ( x ) = ∫ p θ ( z ) p θ ( x ∣ z ) d z \begin{array}{rcl}p_{\boldsymbol{\theta}}(\mathbf{x})&=&\int p_{\boldsymbol{\theta}}(\mathbf{z})p_{\boldsymbol{\theta}}(\mathbf{x}|\mathbf{z})d\mathbf{z}\end{array} pθ(x)=pθ(z)pθ(xz)dz,因为在实际情况下,潜在变量 z \mathbf{z} z的维度可能很高,或者先验分布 p θ ∗ ( z ) p_{\boldsymbol{\theta}^*}(\mathbf{z}) pθ(z)和条件分布 p θ ∗ ( x ∣ z ) p_{\theta^*}(\mathbf{x}|\mathbf{z}) pθ(xz)可能是复杂的非线性函数。因此,直接计算这个积分是不可行的。

VAE采用了一种变分推断的方法来近似计算这个积分。具体来说,VAE使用了变分下界(ELBO),通过优化ELBO来近似计算这个积分。这种方法将原本的推断问题转化为一个优化问题,并且通过优化方法(如随机梯度下降)来求解。尽管使用ELBO进行近似推断使得VAE的训练变得可行,但这仍然是一个近似方法,其精度取决于所选的变分分布族和优化算法的选择。

  • p θ ( z ∣ x ) = p θ ( x ∣ z ) p θ ( z ) / p θ ( x ) p_{\boldsymbol{\theta}}(\mathbf{z}|\mathbf{x})=p_{\boldsymbol{\theta}}(\mathbf{x}|\mathbf{z})p_{\boldsymbol{\theta}}(\mathbf{z})/p_{\boldsymbol{\theta}}(\mathbf{x}) pθ(zx)=pθ(xz)pθ(z)/pθ(x)中的 p θ ( x ) p_{\boldsymbol{\theta}}(\mathbf{x}) pθ(x)未知 (贝叶斯公式,在观察到数据后,对事件发生概率进行推断的过程,通过计算后验概率,根据观察到的数据进行推断,并更新对事件发生概率的认识)。

1.3-Approximation use NN:

p θ ( z ∣ x ) ≅ q ϕ ( z ∣ x ) p_\theta(\mathbf{z}|\mathbf{x})\cong q_\phi(\mathbf{z}|\mathbf{x}) pθ(zx)qϕ(zx),用KL散度评估两个分布的相似程度:
D K L ( q ϕ ( z ∣ x ) ∣ ∣ p θ ( z ∣ x ) ) = − ∑ z q ϕ ( z ∣ x ) log ⁡ ( p θ ( z ∣ x ) q ϕ ( z ∣ x ) ) = − ∑ z q ϕ ( z ∣ x ) log ⁡ ( p θ ( x , z ) p θ ( x ) q ϕ ( z ∣ x ) ) = − ∑ z q ϕ ( z ∣ x ) [ log ⁡ ( p θ ( x , z ) q ϕ ( z ∣ x ) ) − log ⁡ ( p θ ( x ) ) ] \begin{aligned} D_{KL}(q_{\phi}(\mathbf{z|x})||p_{\theta}(\mathbf{z|x}))&=-\sum_{\mathbf{z}}q_{\phi}(\mathbf{z|x})\log\left(\frac{p_{\theta}(\mathbf{z|x})}{q_{\phi}(\mathbf{z|x})}\right)\\ &=-\sum_{\mathbf{z}}q_{\phi}(\mathbf{z|x})\log\left(\frac{\frac{p_{\theta}(\mathbf{x,z})}{p_{\theta}(\mathbf{x})}}{q_{\phi}(\mathbf{z|x})}\right) \\ &=-\sum_zq_\phi(\mathbf{z|x})\left[\log\left(\frac{p_\theta(\mathbf{x,z})}{q_\phi(\mathbf{z|x})}\right)-\log(p_\theta(\mathbf{x}))\right] \end{aligned} DKL(qϕ(z∣x)∣∣pθ(z∣x))=zqϕ(z∣x)log(qϕ(z∣x)pθ(z∣x))=zqϕ(z∣x)log qϕ(z∣x)pθ(x)pθ(x,z) =zqϕ(z∣x)[log(qϕ(z∣x)pθ(x,z))log(pθ(x))]
log ⁡ ( p θ ( x ) ) \log(p_\theta(\mathbf{x})) log(pθ(x)) z \mathbf{z} z无关是常数,所以和 q ϕ ( z ∣ x ) q_\phi(\mathbf{z|x}) qϕ(z∣x)相乘可以提到求和符号外面,而 q ϕ ( z ∣ x ) q_\phi(\mathbf{z|x}) qϕ(z∣x) z \mathbf{z} z求和结果为1,等号左右换项:
log ⁡ ( p θ ( x ) ) = K L ( q ϕ ( z ∣ x ) ∣ ∣ p θ ( z ∣ x ) ) + ∑ z q ϕ ( z ∣ x ) log ⁡ ( p θ ( x , z ) q ϕ ( z ∣ x ) ) = D K L ( q ϕ ( z ∣ x ) ∣ ∣ p θ ( z ∣ x ) ) + L ( θ , ϕ ; x ) \begin{aligned}\begin{aligned}\log(p_\theta(x))&=KL(q_\phi(z|x)||p_\theta(z|x))+\sum_zq_\phi(z|x)\log\left(\frac{p_\theta(x,z)}{q_\phi(z|x)}\right)\\&=D_{KL}(q_\phi(z|x)||p_\theta(z|x))+L(\theta,\phi;x)\end{aligned}\end{aligned} log(pθ(x))=KL(qϕ(zx)∣∣pθ(zx))+zqϕ(zx)log(qϕ(zx)pθ(x,z))=DKL(qϕ(zx)∣∣pθ(zx))+L(θ,ϕ;x)
左边是常数,KL散度非负,所以最大化 L ( θ , ϕ ; x ) L(\theta,\phi;x) L(θ,ϕ;x)(称之为Variational lower bound)就可以实现 D K L ( q ϕ ( z ∣ x ) ∣ ∣ p θ ( z ∣ x ) ) D_{KL}(q_\phi(z|x)||p_\theta(z|x)) DKL(qϕ(zx)∣∣pθ(zx))最小化;\

1.4-最大化 L ( θ , ϕ ; x ) L(\theta,\phi;x) L(θ,ϕ;x):

L ( θ , ϕ ; x ) = ∑ z q ϕ ( z ∣ x ) log ⁡ ( p θ ( x , z ) q ϕ ( z ∣ x ) ) = ∑ z q ϕ ( z ∣ x ) log ⁡ ( p θ ( x ∣ z ) p θ ( z ) q ϕ ( z ∣ x ) ) = ∑ z q ϕ ( z ∣ x ) [ log ⁡ ( p θ ( x ∣ z ) ) + log ⁡ ( p θ ( z ) q ϕ ( z ∣ x ) ) ] = E q ϕ ( z ∣ x ) [ log ⁡ ( p θ ( x ∣

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/573914.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SMMU学习这一篇就够了

快速链接: 【精选】ARMv8/ARMv9架构入门到精通-[目录] 👈👈👈 引流关键词: SMMU,mmu500,mmu600,mmu700,system mmu,Non-cacheable,Cacheable, non-shareable,inner-shareable,outer-shareable, optee、ATF、TF-A、Trustzone、opte…

基于单片机HX711电子秤称重控制设计

**单片机设计介绍,基于单片机HX711电子秤称重控制设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机HX711的电子秤称重控制设计是一个融合了单片机技术、称重传感器技术和显示技术的综合性项目。其设计目…

Docker 夺命连环 15 问

目录 什么是Docker? Docker的应用场景有哪些? Docker的优点有哪些? Docker与虚拟机的区别是什么? Docker的三大核心是什么? 如何快速安装Docker? 如何修改Docker的存储位置? Docker镜像常…

HTML5+CSS3+JS小实例:原生JS实现全屏滚动

实例:原生JS实现全屏滚动 技术栈:HTML+CSS+JS 效果: 源码: 【HTML】 <!DOCTYPE html> <html lang="zh-CN"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial…

网络socket编程(一)——socket接口函数、面向数据报的UDP编程及测试、select函数应用

目录 一、socket简介 二、socket编程接口函数介绍 2.1 socket()函数&#xff08;创建socket&#xff09; 2.2 bind()函数&#xff08;绑定地址和端口&#xff09; 2.3 listen()函数&#xff08;设置socket为监听模式&#xff09; 2.4 accept()函数&#xff08;接受连接…

原子增强类(18罗汉)

LongAdder对象要比AtomicLong性能更好&#xff08;减少乐观锁次数&#xff09; LongAdder常用API LongAdder 只能用来计算加法且只能从0开始 LongAccumulator 提供了自定义函数操作 点赞高并发案例 调用&#xff1a; 测试结果&#xff1a; 原理分析&#xff0c;为什么能更快…

使用OpenHarmony实现一个简易的音乐播放器应用

介绍 本篇Codelab使用ArkTS语言实现了一个简易的音乐播放器应用&#xff0c;主要包含以下功能&#xff1a; 播放应用中的音频资源文件&#xff0c;并可进行上一曲、下一曲、播放、暂停、切换播放模式&#xff08;顺序播放、单曲循环、随机播放&#xff09;等操作。结合后台任…

大数据Hadoop生态圈体系视频课程

课程介绍 熟悉大数据概念&#xff0c;明确大数据职位都有哪些&#xff1b;熟悉Hadoop生态系统都有哪些组件&#xff1b;学习Hadoop生态环境架构&#xff0c;了解分布式集群优势&#xff1b;动手操作Hbase的例子&#xff0c;成功部署伪分布式集群&#xff1b;动手Hadoop安装和配…

欧拉系统部署ftp服务器

1.先检查是否已经安装ftp vsftpd -v 2.安装vsftpd yum install vsftpd 3.修改ftp配置文件 vim /etc/vsftpd/vsftpd.conf 4.启动ftp systemctl start vsftpd 5.查看是否启动 systemctl status vsftpd 6.设置为开机自启 systemctl enable vsftpd 7.查看端口是否开启 net…

9.windows ubuntu 子系统,centrifuge:微生物物种分类。

上次我们用了karken2和bracken进行了物种分类&#xff0c;这次我们使用centrifuge. Centrifuge 是一种用于快速和准确进行微生物分类和物种鉴定的软件。其主要功能包括&#xff1a; 快速分类和物种鉴定: Centrifuge 可以对高通量测序数据&#xff08;如 metagenomic 或 RNA-Se…

【差分约束+并查集】第十三届蓝桥杯省赛C++ A组 Java A组/研究生组《推导部分和》(C++)

【题目描述】 【输入格式】 【输出格式】 【数据范围】 【输入样例】 5 3 3 1 5 15 4 5 9 2 3 5 1 5 1 3 1 2 【输出样例】 15 6 UNKNOWN 【思路】 题解来源&#xff1a;AcWing 4651. $\Huge\color{gold}{推导部分和}$ - AcWing 【代码】 #include<bits/stdc.h> #define…

【Nuxt3】modules目录和nuxt3模块的简单介绍

简言 记录下nuxt3项目中module的用法 modules目录 使用 modules/ 目录在应用程序中自动注册本地模块。 这是一个很好的地方&#xff0c;可以放置您在构建应用程序时开发的任何本地nuxt模块。 nuxt模块相当于npm包&#xff0c;可以发布到npm社区中 在modules/ 目录下的本地模…