变分自编码器(Variational auto-encoder,VAE)
参考:
https://www.cnblogs.com/huangshiyu13/p/6209016.html
https://zhuanlan.zhihu.com/p/25401928
https://blog.csdn.net/ustbfym/article/details/78870990
https://blog.csdn.net/StreamRock/article/details/81258543
https://blog.csdn.net/weixin_40955254/article/details/82315224
https://blog.csdn.net/weixin_40955254/article/details/82315909
Kingma, Diederik P., and Max Welling. "Auto-encoding variational bayes." arXiv preprint arXiv:1312.6114 (2013)
简介:
变分自编码器(Variational auto-encoder,VAE)是一类重要的生成模型(generative model),它于2013年由Diederik P.Kingma和Max Welling提出。
这里有一些使用VAE好处,就是我们可以通过编码解码的步骤,直接比较重建图片和原始图片的差异,但是GAN做不到。
假设,给定一系列猫的照片,我希望你能够对应我随机输入的一个n维向量,生成一张新的猫的照片,你需要怎么去做?对于GAN就是典型的深度学习时代的逻辑,你不是不清楚这个n维向量与猫的图片之间的关系嘛,没关系,我直接拟合出来猫的图片对于n维向量的分布,通过对抗学习的方式获得较好的模型效果,这个方法虽然很暴力,但是却是有效的。
VAE则不同,他通过说我希望生成一张新的猫脸,那么这个n维向量代表的就是n个决定最终猫脸模样的隐形因素。对于每个因素,都对应产生一种分布,从这些分布关系中进行采样,那么我就可以通过一个深度网络恢复出最终的猫脸。VAE相比较于GAN它的效果往往会略微模糊一点,但是也不失为一种良好的解决方案。
问题背景:
首先我们有一批数据样本 {x1,…,xn},其整体用 X 来描述,我们本想根据 {x1,…,xn} 得到 X 的分布 p(X),如果能得到的话,那我直接根据 p(X) 来采样,就可以得到所有可能的 X 了(包括 {x1,…,xn} 以外的),这是一个终极理想的生成模型了。但是,这个过程往往是很困难的。
于是,我们退而求其次,就想到了上文中提到的隐形变量Z,这个Z就是决定最终x形态的因素向量。给定一个图片Xk,我们假定p(Z|Xk)是专属于Xk的后验概率分布,这个概率分布服从正态分布。得到了这个概率,我们可以从分布中采样,并且通过最终的解码器将图片再恢复出来。
由于上述所说,我们所假设的这些分布都是正态分布,那么我们就需要求得相应的方差和均值,所以在编码实现的过程中,不难看到encoder部分真实做的事情就是,对相应的输入数据,通过两个网络产生了均值和方差。
是一个包含了N个连续或者离散样本x的数据集。
假设数据是通过涉及到一个未观察到的连续随机变量z的过程产生的,这个过程包含了两步。
(1)通过某个先验分布 产生一个
;
(2)根据某个条件分布 产生样本
。
假设 和
产生自分布
。
如何得到 和
是一个未知的难题。
文章中用 作为编码器/识别模型(encoder or recognition model),基于数据x产生一个关于数据x的编码值z的分布。
作为解码器/生成模型(decoder or generative decoder),基于编码值z产生一个对应数据x的分布。
其中φ和θ的值通过两者的联合学习得到。
模型推导:
等价于
最大似然估计(maximum likelihood estimation, MLE):一种重要而普遍的求估计量的方法。MLE的目标是找出一组参数,使得模型产生出观测数据的概率最大。
KL散度:相对熵(relative entropy),又被称为Kullback-Leibler散度(Kullback-Leibler divergence)或信息散度(information divergence),是两个概率分布(probability distribution)间差异的非对称性度量。在在信息理论中,相对熵等价于两个概率分布的信息熵(Shannon entropy)的差值。
蒙特卡罗估计(Monte Carlo estimate):
证明:
MLP(多层感知器):
VAE的encoder和decoder都只用了一层隐含层。
近似计算的证明:
表示元素乘法;按照高斯分布求解KL散度即可得到结果。
训练好了以后,生成样本采用下面的网络结构:
变分自编码器(Variational auto-encoder,VAE)的更多相关文章
- (转) 变分自编码器(Variational Autoencoder, VAE)通俗教程
变分自编码器(Variational Autoencoder, VAE)通俗教程 转载自: http://www.dengfanxin.cn/?p=334&sukey=72885186ae5c ...
- 变分自编码器(Variational Autoencoder, VAE)通俗教程
原文地址:http://www.dengfanxin.cn/?p=334 1. 神秘变量与数据集 现在有一个数据集DX(dataset, 也可以叫datapoints),每个数据也称为数据点.我们假定 ...
- 4.keras实现-->生成式深度学习之用变分自编码器VAE生成图像(mnist数据集和名人头像数据集)
变分自编码器(VAE,variatinal autoencoder) VS 生成式对抗网络(GAN,generative adversarial network) 两者不仅适用于图像,还可以 ...
- 基于变分自编码器(VAE)利用重建概率的异常检测
本文为博主翻译自:Jinwon的Variational Autoencoder based Anomaly Detection using Reconstruction Probability,如侵立 ...
- 变分推断到变分自编码器(VAE)
EM算法 EM算法是含隐变量图模型的常用参数估计方法,通过迭代的方法来最大化边际似然. 带隐变量的贝叶斯网络 给定N 个训练样本D={x(n)},其对数似然函数为: 通过最大化整个训练集的对数边际似然 ...
- 基于图嵌入的高斯混合变分自编码器的深度聚类(Deep Clustering by Gaussian Mixture Variational Autoencoders with Graph Embedding, DGG)
基于图嵌入的高斯混合变分自编码器的深度聚类 Deep Clustering by Gaussian Mixture Variational Autoencoders with Graph Embedd ...
- VAE变分自编码器实现
变分自编码器(VAE)组合了神经网络和贝叶斯推理这两种最好的方法,是最酷的神经网络,已经成为无监督学习的流行方法之一. 变分自编码器是一个扭曲的自编码器.同自编码器的传统编码器和解码器网络一起,具有附 ...
- VAE变分自编码器
我在学习VAE的时候遇到了很多问题,很多博客写的不太好理解,因此将很多内容重新进行了整合. 我自己的学习路线是先学EM算法再看的变分推断,最后学VAE,自我感觉这个线路比较好理解. 一.首先我们来宏观 ...
- Auto Encoder用于异常检测
对基于深度神经网络的Auto Encoder用于异常检测的一些思考 from:https://my.oschina.net/u/1778239/blog/1861724 一.前言 现实中,大部分数据都 ...
随机推荐
- 一个典型的后台软件系统的设计复盘——(三)打通任督二脉-context
武侠小说练功讲究打通任督二脉.程序设计练到一定程度也讲究打通任督二脉.好奇心强的同学可以搜搜“打通任督二脉有什么感觉”. spring的任督二脉ApplicationContext 最经典的任督二脉莫 ...
- js数组 标签: javascript 2016-08-03 14:15 131人阅读 评论(0) 收藏
数组排序 reverse()方法 reverse()方法会反转数组的顺序. sort()方法 默认情况下sort()方法按升序排列数组项.为实现排序sort()方法调用每项的toString(),然后 ...
- pc端配置详细 2017级机械设计新生 史浩然
品牌名称:SAMSUNG/三星 证书状态:有效 申请人名称:苏州三星电子电脑有限公司 型号:940X3K-K01 操作系统:window8.1 产品名 ...
- windows server 2003安装Oracle webtier 32位因环境变量原因报错
在服务中启动Oracle processer manager时报错:错误1053:服务没有及时响应启动或控制请求 原因是本系统还安装过BI和Oracle数据库等产品 解决方法:删除和本次安装无关的环境 ...
- webpack学习(三)html-webpack-plugin插件
一.html-webpack-plugin插件 简单创建 HTML 文件,用于服务器访问 例如:我们要为输出文件添加哈希值标记,避免老的不变的文件重新加载,避免新修改的文件受缓存影响. 在前后两次在终 ...
- SDR窃听-监听空中的无线电
A GSM HACK的另一种方法:RTL-SDR 0x00 背景 文中所有内容仅供学习研究,请勿用于非法用途.在绝大多数国家里非法窃听都是严重非法行为. 本文内容只讨论GSM数据的截获,不讨论破解. ...
- 可用的rtmp卫视直播地址
http://blog.csdn.net/chinabinlang/article/details/45092297[ 可用的rtmp卫视直播地址] http://blog.csdn.net/chin ...
- Unix I/O--输入/输出(I/O) : 是指主存和外部设备(如磁盘,终端,网络)之间拷贝数据过程
输入/输出(I/O) : 是指主存和外部设备(如磁盘,终端,网络)之间拷贝数据过程 https://www.bbsmax.com/A/o75N88ZxzW/ 10.1 Unix I/O 一个Unix ...
- JAVA二叉树递归构造、二叉树普通遍历及递归遍历
二叉树类: package com.antis.tree; public class BinaryTree { int data; //根节点数据 BinaryTree left; //左子树 Bin ...
- nrf52840蓝牙BLE5.0空中数据解析
一.基础知识: 我没找到蓝牙5.0的ATT数据格式图片,在蓝牙4.0的基础上做修改吧,如下图所示: 二.测试与分析: 参数设置: data length = 251字节,MTU = 247字节, ...