信息熵

  • 信息是对不确定性的消除。一个事件的不确定性越大,其所含的信息量就越多
    • 比方说有两个事件,其一是冬天下大雪,其二是夏天下大雪。显然冬天下雪的概率更大,那么它所包含的信息量就更多。
  • 引入函数Auto-Encoding Variational Bayes - 图1来衡量信息量的多少,它具有如下性质:
    • 概率越大的事件,信息量越少
    • 概率为1的事件信息量为0
    • 概率为0的事件信息量为1
    • 对于两个互相独立的事件,它们同时出现的信息量等于两者信息量的算术和
  • 为满足以上定义,Auto-Encoding Variational Bayes - 图2
  • 信息熵用于衡量一个随机系统的总体信息量,那么就可以对系统中每一个事件的信息量求统计平均(期望)
    • Auto-Encoding Variational Bayes - 图3
    • 假如用一个离散随机变量Auto-Encoding Variational Bayes - 图4进行建模,则Auto-Encoding Variational Bayes - 图5
  • 信息熵具有如下性质,这也决定了以上定义是唯一的
    • 连续性
    • 等概率时单调性:随机系统等概率分布时,随着集合中元素增加,信息熵单调增加
    • 可加性:随机系统的信息熵等于系统中一部分的信息熵加上另一部分的信息熵
  • 另外几条有趣的性质

    • 条件减少熵Auto-Encoding Variational Bayes - 图6
    • 最大离散熵定理,当所有事件等概率分布时熵最大

      交叉熵

  • 设观察分布为Auto-Encoding Variational Bayes - 图7,预测分布为Auto-Encoding Variational Bayes - 图8,则Auto-Encoding Variational Bayes - 图9

    • Auto-Encoding Variational Bayes - 图10,使用近似分布Auto-Encoding Variational Bayes - 图11来观测分布Auto-Encoding Variational Bayes - 图12消耗的信息量一定大于Auto-Encoding Variational Bayes - 图13的总体信息量

      KL-Divergence (KL散度)

  • KL散度实际上就是交叉熵减去信息熵。Auto-Encoding Variational Bayes - 图14

    • 因此可以衡量两个分布之间的差异

      问题描述

  • 生成模型的目的是为了求解数据与隐变量间的联合密度。Auto-Encoding Variational Bayes - 图15,此时生成过程变为先验分布Auto-Encoding Variational Bayes - 图16生成Auto-Encoding Variational Bayes - 图17,先验分布Auto-Encoding Variational Bayes - 图18再生成Auto-Encoding Variational Bayes - 图19

  • 问题是我们不知道Auto-Encoding Variational Bayes - 图20的值,其中也有很多过程对我们不可见
  • 两个主要难点:
    • 边际似然函数积分Auto-Encoding Variational Bayes - 图21难以计算。没有办法估计边际似然分布,因为其中后验分布Auto-Encoding Variational Bayes - 图22不可知,否则直接使用EM算法来做就可以了
    • 数据集很大,直接用蒙特卡洛做会有较大的方差

image.png

  • 三个待解决问题
    • 高效逼近ML或MAP
    • 高效逼近隐变量z的后验推断
    • 高效逼近x的先验推断

论文引入一个生成模型Auto-Encoding Variational Bayes - 图24来逼近真正的后验分布Auto-Encoding Variational Bayes - 图25,其中Auto-Encoding Variational Bayes - 图26就是编码器,Auto-Encoding Variational Bayes - 图27就是解码器

变分下限

再次引入EM算法中的似然函数Auto-Encoding Variational Bayes - 图28

提取变分下限(EM算法推演也可以这样来做,比Jensen不等式更直观):
Auto-Encoding Variational Bayes - 图29
Auto-Encoding Variational Bayes - 图30
Auto-Encoding Variational Bayes - 图31
由于KL散度始终大于0,因此:
Auto-Encoding Variational Bayes - 图32
这项Auto-Encoding Variational Bayes - 图33也被称作为ELBO(evidence lower bound)
回顾一下之前的EM算法,它的本质是什么呢?它直接让这项KL-Divergence取0,接着优化ELBO,这样的话就可以保证似然函数估计一定会上升

但是,EM算法要计算KL-Divergence取0的前提条件,需要Auto-Encoding Variational Bayes - 图34,然而它在该场景中是不可观测的,我们需要使用别的方法来使似然函数likelihood上升。
所以找到下限后,需要做的是同时优化Auto-Encoding Variational Bayes - 图35,找到一个Auto-Encoding Variational Bayes - 图36来使似然函数取得最大值。

为什么要优化Auto-Encoding Variational Bayes - 图37呢?
首先,Auto-Encoding Variational Bayes - 图38,这是永远不会变的。现在我们力图最大化Auto-Encoding Variational Bayes - 图39
假如只优化Auto-Encoding Variational Bayes - 图40,那么Auto-Encoding Variational Bayes - 图41是不会变的,因为q和p一点关系都没有。所以,通过优化Auto-Encoding Variational Bayes - 图42提高ELBO等同于减小KL-Divergence。到最后Auto-Encoding Variational Bayes - 图43Auto-Encoding Variational Bayes - 图44的分布会完全一致。
假如只优化Auto-Encoding Variational Bayes - 图45,那么会出现一个问题,我们让Auto-Encoding Variational Bayes - 图46上升的时候,并不一定会让Auto-Encoding Variational Bayes - 图47也跟着上升(因为此时没有Auto-Encoding Variational Bayes - 图48的约束)
所以,同时优化Auto-Encoding Variational Bayes - 图49可以使KL-Divergence尽量小的同时最大化Auto-Encoding Variational Bayes - 图50,最后达到最大化Auto-Encoding Variational Bayes - 图51的目的。
image.png

Auto-Encoding Variational Bayes - 图53
Auto-Encoding Variational Bayes - 图54

至此就得到了终极目标:
优化Auto-Encoding Variational Bayes - 图55,从而使Auto-Encoding Variational Bayes - 图56最大化

Reprameterization Trick

image.png
在优化的时候会有一个问题,那就是我们需要从Auto-Encoding Variational Bayes - 图58进行采样。Auto-Encoding Variational Bayes - 图59都是概率,进行采样是一个随机的过程,该操作不可导。所以需要引入一个trick,那就是引入神经网络来模拟采样的过程。
设现有x,想要得到的是隐变量z,其中z从Auto-Encoding Variational Bayes - 图60中采样得到。

接着引入变量Auto-Encoding Variational Bayes - 图61Auto-Encoding Variational Bayes - 图62,此时z可由x与Auto-Encoding Variational Bayes - 图63推得(如图右侧所示)。这样把随机过程交给Auto-Encoding Variational Bayes - 图64后,z就不是一个random node,可以进行反向传播。

如何引入神经网络来进行这一过程呢?设Auto-Encoding Variational Bayes - 图65服从正态分布,我们可以让它生成正态分布参数均值及标准差Auto-Encoding Variational Bayes - 图66。进而Auto-Encoding Variational Bayes - 图67。由此我们就模拟了从正态分布中采样的过程。

SGVB&AEVB

了解了重参数化的动机后,具体来看如何优化
设有函数Auto-Encoding Variational Bayes - 图68Auto-Encoding Variational Bayes - 图69Auto-Encoding Variational Bayes - 图70,在进行重参数化后,可得Auto-Encoding Variational Bayes - 图71

假设现有函数Auto-Encoding Variational Bayes - 图72,我们想要计算它的期望,则可做如下近似估计:
Auto-Encoding Variational Bayes - 图73

之前我们把Auto-Encoding Variational Bayes - 图74拆成了Auto-Encoding Variational Bayes - 图75,我们来关注第一项。仔细想一下,该项实际上就等同于在Auto-Encoding Variational Bayes - 图76概率分布上求Auto-Encoding Variational Bayes - 图77的期望。
Auto-Encoding Variational Bayes - 图78
因此:
Auto-Encoding Variational Bayes - 图79
其中Auto-Encoding Variational Bayes - 图80Auto-Encoding Variational Bayes - 图81
随后就可以使用SGD进行优化了。

最后是详细算法:
image.png

Variational Auto Encoder

encoder与decoder其实就是Auto-Encoding Variational Bayes - 图83,然后就很容易理解了
image.png
Auto-Encoding Variational Bayes - 图85这一项化简后,可以推出一个正则化项,具体步骤见原文。以此来作为优化时损失函数的约束。