【论文笔记】Auto-Encoding Variational Bayes

导读

VAE嘛,之前觉得水平不够,不敢读。现在觉得,试试吧。

Abstract

如何在连续隐变量,难以估计后验概率以及大量数据集的情况下,良好的推断与学习呢?

本文提出随机变量推断。

  1. 对于随机变量的下界估计使用重参数化可以直接通过随机梯度进行优化
  2. 在独立同分布数据集上的连续隐变量,后验估计可以很好的被估计出来。

Introduction

Auto-Encoding VB 算法,使用SGVB,使用简单的采样就可以估计出后验推断,并优化识别模型。

在这里插入图片描述

  • pθ(z)pθ(xz)p_{\theta}(\mathbf{z})p_{\theta}(\mathbf{x}|\mathbf{z}) :生成模型,其中pθ(z)p_{\theta}(\mathbf{z})是先验,pθ(xz)p_{\theta}(\mathbf{x}|\mathbf{z})是似然函数。则观测变量x\mathbf{x}与目标变量z\mathbf{z}的联合概率就是生成模型。(因为pθ(x,z)p_{\theta}(\mathbf{x}, \mathbf{z}))将二者都设定为随机变量,并且可以生成对应的概率分布。判别模型中是pθ(zx=x)p_{\theta}(\mathbf{z}|\mathbf{x}=x),只将z\mathbf{z}当作随机变量,x\mathbf{x}是可观测且不会变化的。一个是联合分布,一个是条件概率分布。

  • qϕ(zx)q_{\phi}(\mathbf{z}|\mathbf{x}):估计出来的后验分布

  • pθ(zx)p_\theta(\mathbf{z}|\mathbf{x}):真实但难以计算的后验分布

那么显然其中的ϕ\phi就是我们要学习variational 参数,并且会和生成模型的概率共同学习。

方法可以被用于online, non-stationary settings,很显然,因为先前学习的参数和后验会变成下一次优化的参数和先验,自然可以进行online的学习。

2.1 Problem scenario

假设 X={x(i)}i=1N\mathbf{X}=\left\{\mathbf{x}^{(i)}\right\}_{i=1}^{N}包含NN个连续或者离散的独立同分布变量。数据是由有一个不可观测的连续随机变量z\mathbf{z}的随机过程产生的

这个过程包含两步骤:

  1. z(i)\mathbf{z}^{(i)}是由先验分布pθ(z)p_{\mathbf{\theta}^*}(\mathbf{z})产生的
  2. x(i)\mathbf{x}^{(i)}是由条件概率分布pθ(xz)p_{\mathbf{\theta}^*}(\mathbf{x}|\mathbf{z}), 已知z\mathbf{z}分布,采样出x(i)\mathbf{x}^{(i)}

假设先验pθ(z)p_{\theta^*}(\mathbf{z})和似然概率pθ(xz)p_{\mathbf{\theta}^*}(\mathbf{x}|\mathbf{z})来自参数空间pθ(z)p_{\theta}(\mathbf{z})pθ(xz)p_{\mathbf{\theta}}(\mathbf{x}|\mathbf{z}),那么θ\thetaz\mathbf{z}都是可微分的。

这部分有两点难以读懂:

  • x\mathbf{x} 怎么是从给定z\mathbf{z}的条件概率中采样的?
    • 这是assumption,观测到的X\mathbf{X}中的值均可以在给定z\mathbf{z}的情况下进行采样。
  • 为什么都是可微分的?
    • 因为可以通过x\mathbf{x}来进行微分?

此处不使用关于pθ(x)p_{\theta}(\mathbf{x})或者后验概率的一般简化假设。相反地,会使得普适性算法能够处理以下的特殊情况:

    1. Intractability:

      • pθ(x)=pθ(z)pθ(xz)dzp_\theta(x)=\int p_{\boldsymbol{\theta}}(\mathbf{z}) p_{\boldsymbol{\theta}}(\mathbf{x} \mid \mathbf{z}) d \mathbf{z} 是无法评估或者微分的。
      • pθ(zx)=pθ(xz)pθ(z)/pθ(x)p_{\boldsymbol{\theta}}(\mathbf{z} \mid \mathbf{x})=p_{\boldsymbol{\theta}}(\mathbf{x} \mid \mathbf{z}) p_{\boldsymbol{\theta}}(\mathbf{z}) / p_{\boldsymbol{\theta}}(\mathbf{x}) 难解,无法使用EM算法
      • 任何合理的均值场VB算法所需的积分也是难解的

      这些难解的情况很常见,像中等程度复杂的似然概率函数pθ(xz)p_{\boldsymbol{\theta}}(\mathbf{x} \mid \mathbf{z}) ,例如有一层非线性隐藏层的神经网络。

    2. A large dataset: 数据量很大,batch 优化消耗太大了,希望能够使用小数据甚至单个数据就可以对参数进行更新。基于采样的方案,例如蒙特卡洛EM算法,通常来说太慢了,因为每个数据点的采样过程中的loop太慢了。

更希望去处理以下三种情况:

  • 高效的估计参数,参数本身会很有趣,因为可以反应neural的过程中存在的问题。
  • 高效的后验推断估计, 在给定参数θ\boldsymbol{\theta}x\mathbf{x}观测的情况下情况下,pθ(zx)p_{\boldsymbol{\theta}}(\mathbf{z} \mid \mathbf{x})
  • 高效的边缘概率估计, i.e. pθ(x)p_\boldsymbol{\theta}(\mathbf{x})

为了解决上述问题,引入识别模型qϕ(zx)q_{\phi}(\mathbf{z}|\mathbf{x}),对真实难解的后验概率pθ(zx)p_\theta(\mathbf{z}|\mathbf{x})的估计。

此处不需要重整计算参数,因为作者会将模型的参数ϕ\boldsymbol{\phi} 与生成模型参数θ\boldsymbol{\theta}进行共同学习。

从编码论角度,不可观测变量z\mathbf{z}作为隐表征或者编码。因此本文中会:

  • 将识别模型qϕ(zx)q_{\phi}(\mathbf{z}|\mathbf{x})作为概率编码器encoder,因为给定一个数据点xx,encoder会生成一个概率分布,并在其上产生一个可能的code z\mathbf{z},在code上可以产生原始数据点xx
  • pθ(xz)p_{\boldsymbol{\theta}}(\mathbf{x} \mid \mathbf{z})作为概率解码器decoder,因为给定一个codez\mathbf{z},他可以产生原始xx的对应值。

2.2 The variational bound

边缘似然是由独立点的边缘似然总和logpθ(x(1),,x(N))=i=1Nlogpθ(x(i))\log p_{\boldsymbol{\theta}}\left(\mathbf{x}^{(1)}, \cdots, \mathbf{x}^{(N)}\right)=\sum_{i=1}^{N} \log p_{\boldsymbol{\theta}}\left(\mathbf{x}^{(i)}\right), 其中每一个点均可以被协作为:
logpθ(x(i))=DKL(qϕ(zx(i))pθ(zx(i)))+L(θ,ϕ;x(i)) \log p_{\boldsymbol{\theta}}\left(\mathbf{x}^{(i)}\right)=D_{K L}\left(q_{\boldsymbol{\phi}}\left(\mathbf{z} \mid \mathbf{x}^{(i)}\right) \| p_{\boldsymbol{\theta}}\left(\mathbf{z} \mid \mathbf{x}^{(i)}\right)\right)+\mathcal{L}\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right)
第一项是识别模型的估计后验以及真实后验的KL散度误差。因为KL散度是非负的,第二项L(θ,ϕ;x(i))\mathcal{L}\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right)是数据点ii的边缘似然的变分下界。也是我们想要优化的目标。

KL散度是很自然可以理解的度量两个分布的相对熵

可以被写作
logpθ(x(i))L(θ,ϕ;x(i))=Eqϕ(zx)[logqϕ(zx)+logpθ(x,z)] \log p_{\boldsymbol{\theta}}\left(\mathbf{x}^{(i)}\right) \geq \mathcal{L}\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right)=\mathbb{E}_{q_{\boldsymbol{\phi}}(\mathbf{z} \mid \mathbf{x})}\left[-\log q_{\boldsymbol{\phi}}(\mathbf{z} \mid \mathbf{x})+\log p_{\boldsymbol{\theta}}(\mathbf{x}, \mathbf{z})\right]
也可以被写做:
L(θ,ϕ;x(i))=DKL(qϕ(zx(i))pθ(z))+Eqϕ(zx(i))[logpθ(x(i)z)] \mathcal{L}\left(\boldsymbol{\theta}, \boldsymbol{\phi} ; \mathbf{x}^{(i)}\right)=-D_{K L}\left(q_{\boldsymbol{\phi}}\left(\mathbf{z} \mid \mathbf{x}^{(i)}\right) \| p_{\boldsymbol{\theta}}(\mathbf{z})\right)+\mathbb{E}_{q_{\boldsymbol{\phi}}\left(\mathbf{z} \mid \mathbf{x}^{(i)}\right)}\left[\log p_{\boldsymbol{\theta}}\left(\mathbf{x}^{(i)} \mid \mathbf{z}\right)\right]

看到这里感觉已经比较让我理解VAE了。有需要再in-depth

Understanding 2020-6-28

相较于之前仅仅只是映射到隐空间中,今天的阅读让我更区分了一些AE和VAE的区别。
AE将x-> z-> x’
VAE是将x映射成一个分布,并在分布上采样出可能的x。

展开阅读全文
©️2020 CSDN 皮肤主题: 代码科技 设计师: Amelia_0503 返回首页
实付0元
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值