VAE,变分

2023-11-06

1. Latent Variable Model

生成模型一般会生成多个种类的数据,比如说在手写数字生成中,我们总共有10个类别的数字要生成,这个时候latent variable model就是一个很好的选择。

为什么呢?举例来说,我们很容易能注意到相同类别的数据在不同维度之间是有依赖存在的,比如生成数字5的时候,如果左边已经生成了数字5的左半部分,那么右半部分就几乎可以确定是5的另一半了。

因此一个好的想法是,生成模型在生成数字的时候有两个步骤,即(1)决定要生成什么数字,这个数字用一个被称为latent variable的向量z来表示,(2)然后再根据z来直接生成相应的数字。用数学表达式来表示就是:

这就是所谓的latent variable model。

我们要介绍的VAE就是latent variable model的一种,我们将会看到,VAE可以利用BP算法来快速训练,且不需要对latent code的prior有任何知识,所有你需要的只是一个简单的encoder-decoder模型。也正是因为吸收了深度学习时代的众多技术优势,才使VAE变成了一个广受欢迎的生成模型。

2. VAE

2.1 latent variable

要解式(1),就必须决定P(z),然而latent variable z的prior是很难决定的,尤其是在深度学习背景下的生成模型,其生成的数据动辄上百维度,因此数据中就会存在大量依赖。

VAE是怎么解决这个问题的呢?它没有对z做出任何假设,而是说任何z的sample都可以从一个最简单的高斯分布来得到,即均值为0,协方差为单位矩阵的高斯分布。

你可能会觉得很奇怪,这是为什么呢?其实这里最关键的是注意到任何d维分布都可以从一个d维高斯分布+一个足够复杂的函数映射得到,比如我们可以把一个2维高斯分布映射成环型:

因此,只要有足够强力的函数估计器,我们就可以获得任何分布的latent variable z。很容易就可以想到用神经网络来构建这个函数估计器。

接下来的问题是,如何最大化(1)式?

2.2 The objective

有了z的prior,我们很容易想到利用多次采样的方式来最大化likelihood:

然而这种方法非常低效,特别是当z在高维空间的时候。

那么VAE是怎么解决这个问题的呢?

首先我们需要注意到,几乎所有的P(X|z)都是接近于0的,因为既然X是只有有限个类数据,那么z就应该有特定的值,因此我们要做的就是只用那些最有可能生成X的z来训练。这个时候我们就需要一个新的函数用来生成X对应的latent variable distribution:

这个Q让我们可以计算

而不是z是高斯分布时候的期望,这就减少了计算量。然而,虽然这样很好,但是上式和P(X)又有什么关系呢?别忘了我们最终的目的是最大化P(X),因此这里我们就需要把这两个式子联系起来。

这里KL散度是一个比较好的选择,因为它刻画了两个分布之间的距离:

我们用贝叶斯公式来分解右边的P(z|X):

移项,两边乘-1就得到:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VAE,变分 的相关文章

随机推荐

  • Git 代码分支管理

    作者 京东科技 周新智 一 引言 近日 IoT 研发团队加入了不少新同学 对 git 分支的命名和管理方式有些许的模糊 分支的命名规范以及管理方式对项目的版本发布至关重要 为了解决实际开发过程中版本发布时代码管理混乱 冲突等比较头疼的问题
  • 小程序之100推荐:901~1000

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 901 Oyes视频 Oyes视频小程序简介 一个妈妈专属的视频精选 请至极乐小程序商店搜索 Oyes视频 微信扫码即可体验 902 银如意资讯 银如意资讯小程序简介 银如
  • Mysql Server原理简介

    Mysql客户端包括JDBC Navicat sqlyog 只是为了和mysql server建立连接 向mysql server提交sql语句 mysql server组件 第一部分叫连接器 主要承担的功能叫管理连接和验证权限 每次在进行
  • 缓存穿透、缓存击穿、缓存雪崩的问题与解决方案

    缓存概念 在计算器中 高速缓冲存储器是一个硬件或软件组件 其存储数据 以便该数据可以在将来的请求送达更快 存储在缓存中的数据可能是早期计算的结果 也可能是存储在其他位置的数据的副本 一个缓存命中时 所请求的数据在高速缓存中找到 而出现高速缓
  • 还不知道off-heap堆外内存?安排~

    目录 on heap堆内内存是什么 JVM堆内存是如何划分的 JVM堆内存满了后会怎么样 基于堆外内存解决系统GC卡顿问题 今天给大家聊一个很有意思的知识 就是off heap堆外内存 平时出去面试 或者研究一些技术的时候 经常可能会遇到o
  • 一个简单的实习生管理系统

    写了一个简单的实习生管理系统 用于自己复习java后端 由于是复习java为目的 故而这个系统没有用框架 control层基本手写servlet完成 基本的增删改查 级联删除功能均有实现 适合java刚入门的同学阅读 大神们请别见笑 如有错
  • 教你用OpenCV 和 Python实现圆物检测

    点击上方 码农的后花园 选择 星标 公众号 精选文章 第一时间送达 基于python使用OpenCV实现在一张图片中检测出圆形 并且根据圆检测结果信息 绘制 标记出圆的边界和圆心 1 HoughCircles 霍夫圆检测函数 在Opencv
  • 告诉你个秘密(ISCCCTF)(Crypto--bugku)

    观察一下 有A E B 没有其他字母 猜测是十六进制转字符 还是字符串 有大写 小写 数字 猜测还有加密 然后各种解密都尝试一下 emem 是base64 四个一组 三个一组 哈哈 键盘密码 对的 就是键盘加密 被包围的字母就是flag 提
  • 最常用激活函数公式(更新中)

    最常用激活函数公式 如需转载 请务必标明出处及作者信息 洋石灰儿 https blog csdn net Yshihui article details 80540070 1 what and why 直观的作用就是进行非线性操作 将输入信
  • Linux服务器clang-13安装(环境变量配置)

    1 从llvm的github网址选择合适的release合适的运行平台进行下载 下载官方预编译的二进制压缩包 2 将下载好的压缩包进行本地上传 使用scp命令进行上传 scp r P 端口号 本地文件路径 服务器ID等 服务器上目标地址 3
  • 九大内置对象

    1 request对象 request 对象是 javax servlet httpServletRequest类型的对象 该对象代表了客户端的请求信息 主要用于接受通过HTTP协议传送到服务器的数据 包括头信息 系统信息 请求方式以及请求
  • Fastadmin,配置SMTP邮件,踩坑笔记

    phpmailer php做发送邮件 有个叫phpmailer的插件 而fastadmin正是用的这一插件 首先是准备工作 你要把你的qq邮箱设置一下开启SMTP邮件 qq邮箱的设置位置在 账户 账户 这一选项下 这里如果你手机绑定了qq安
  • web服务器性能 测试,主流web服务器性能测试

    前言 因为boss要一个并发能上W得平台 而且还是要PHP得 恩 好吧 我是不喜欢php的 但是没办法 谁叫PHP是世界上最好得语言呢 于是心血来潮 来了一组 web服务器性能测试 测试有 php7 fpm docker nginx jav
  • 【华为OD机试真题 Java】小组卡片最大数字(100%通过+全网最详细注释)

    前言 本专栏将持续更新华为OD机试题目 并进行详细的分析与解答 包含完整的代码实现 希望可以帮助到正在努力的你 关于OD机试流程 面经 面试指导等 如有任何疑问 欢迎联系我 wechat steven moda email nansun09
  • win10开始菜单打不开,使用startmenu.diagcab进行修复

    win10开始菜单打不开 使用startmenu diagcab进行修复 下载后打开运行startmenu diagcab 打开后 点击高级选项 勾选自动修复应用措施 接着点击下一步 运行修复后点击查看详细信息 查看打不开的原因 进行下一步
  • hk pic.net forum.php,HC-SR04 problem with pic18f24k22.

    2021 03 26 00 11 57 proestpa Hello I have a problem with HCSR04 ultrasonic distance sensor I wrote a code that works per
  • 记一次蓝屏的解决,错误代码IRQL_NOT_LESS_OR_EQUAL

    这两天不知为何 电脑总是正在运行时自动重启 今天忍无可忍 百度了一下解决方法 有方法说 我的电脑右键 属性 高级 启动和故障恢复 中的设置 系统失败 中取消勾选 自动重新启动 能解决问题 所以就先照做了 如下图 不设置还好 没想到一设置 重
  • 2021蒙城高考成绩查询,2021亳州高考成绩查询入口

    今年的高考已经和大家告一段落 想必考生和家长们现在比较关注的就是高考成绩查询了 下面出国留学网小编给大家分享 2021亳州高考成绩查询入口 仅供参考 希望帮助各位考生便捷查询高考成绩 祝大家考个好成绩 2021安徽高考成绩查询时间 2021
  • cmd命令安装python第三方库_Python如何安装第三方库

    Python如何安装第三方库 版权申明 非商业目的注明出处可自由转载 博文地址 https blog csdn net cdpxc article details 108808780 出自 cdpxc 注 笔者是在D盘直接安装了Anacon
  • VAE,变分

    1 Latent Variable Model 生成模型一般会生成多个种类的数据 比如说在手写数字生成中 我们总共有10个类别的数字要生成 这个时候latent variable model就是一个很好的选择 为什么呢 举例来说 我们很容易