首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Auto-Encoding Variational Bayes

Paper Info

Full name:Auto-Encoding Variational BayesAuthors:Diederik P Kingma,Max WellingLink:https://arxiv.org/abs/1312.6114

Abstract

针对“当存在不确定后验分布的连续的潜在变量(continuous latent variables)和大数据集时,如何在定向概率模型上进行有效的推导和学习?”这一问题,作者提出了一种随机变分推导和学习算法,在一些温和的不同条件下,可以扩展到大数据集,甚至可以在棘手的情况下工作。本文的贡献有:(1)证明了变分下界的再参数化得到了一个较低的边界估计量,可以直接用标准随机梯度法进行优化;(2)证明了对于拥有连续潜在变量的独立同分布(i.i.d)数据集,后验推断(posterior inference)可以通过将一个近似推断模型与被提出的下界估计器进行匹配,从而使其更有效。

Introduction

变分贝叶斯(VB)方法涉及到对难以处理的后验的近似的优化。不幸的是,一般的均值-场(mean-field)法需要的是关于后验的期望的解析解,通常这是难以处理的。本文展示了变分下界的再参数化如何产生一个简单的可微分的无偏估计下界,这种随机梯度变分贝叶斯(Stochastic Gradient Variational Bayes,SGVB)估计量可以用于几乎任何具有连续潜在变量和参数的模型的有效近似后验推断,并且可以直接使用标准的随机梯度上升技术进行优化。对于独立同分布数据集和连续潜在变量样本的情况,本文提出了Auto Encoding VB(AEVB)算法,通过AEVB算法我们进行推断和学习,尤其是有效利用SGVB估计优化识别模型(recognition model),该模型允许我们通过简单的祖先采样(ancestral modeling)进行非常有效的近似推断,从而使我们在不需要昂贵的迭代推理方式(如MCMC)就可以有效的学习模型参数。学到的近似后验推断模型可以用于许多任务,例如识别(recognition)、去燥(denoising)、表达(representation)和可视化(visualization)。当神经网络采用这种模型时,就产生了VAE(Variational auto-encoder)。

Method

问题场景假设有N个独立同分布的连续或者离散的数据集样本X={x(i)}Ni=1,假设数据由某些随机过程产生并且包含一个未观测到的连续潜在变量。这个过程包含两个步骤:(1)z(i)由先验分布pθ∗(z)产生;(2)x(i)由条件分布pθ∗(xz)。假设先验pθ∗(z)和极大似然pθ∗(xz)来自分布pθ(z)和pθ(xz)的参数簇,但是这个过程我们是无法观测的,真实参数θ∗和隐变量z(i)都是未知的。这里不对边缘或者后验概率分布做一般化假设,而是提出一种针对如下两个问题通用的算法:无法计算有非常棘手的真实后验密度pθ(zx) =pθ(xz)pθ(z)/pθ(x)的边缘分布的极大似然估计积分;

对于一个大数据集,批量优化代价很大,minibatch或者单个数据点采样又非常慢。

解决方案文章针对上述场景提出了变分下界、SGVB估计器、AEVB算法和再参数化trick,然后作为example提出了Variational Auto-Encoder(VAE),具体的推导与证明详见文章,由于比较繁琐与复杂,在此不做描述。下面我们来具体看看VAE:Encoder:引入隐变量z,利用编码网络拟合参数化的后验qφ(zx),输出为z的条件分布:

此处假设z的先验分布是N(0,1)。

Decoder:已知隐变量z,计算样本x的条件似然概率pθ(zx),θ是参数。

整个网络最终的优化目标是确保Encoder中的后验概率密度函数逼近Decoder中的后验概率密度函数,目标函数为:

网络结构图:

针对VAE的推导与实现,推荐一篇博客:https://wiseodd.github.io/techblog/2016/12/10/variational-autoencoder/

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20171212G0CF8O00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券