美文网首页
Variational Inference 变分推断

Variational Inference 变分推断

作者: DukeDJ | 来源:发表于2018-09-21 16:21 被阅读0次

    自从接触深度学习后,每每遇到相关数学公式都头疼。其中变分推断出现的频率之多,让我一见它到便跳过直接看与其相关的结果。所以,经常处于模模糊糊半懂不懂的状态,让我十分痛苦。于是,这几天我便想结束这种痛苦,故仔细的看了相关资料,并作如下小结。

    变分推断简单来说便是需要根据已有数据推断需要的分布P;当P不容易表达,不能直接求解时,可以尝试用变分推断的方法。即,寻找容易表达和求解的分布Q,当QP的差距很小的时候,Q就可以作为P的近似分布代替P

    数学推导


    学过概率论的人一般都会知道贝叶斯公式:P(z|x)=\frac{P(x,z)}{P(x)} \tag{1.1}同理,P(x,z)=P(x|z)P(z) \tag{1.2}其中P(z|x)被称作后验概率,P(x|z)被称为似然度,P(z)则是先验概率。经过简单的交换可得:P(x)=\frac{P(x,z)}{P(z|x)} \tag{1.3}

    对(1.3)式左右两侧取底为e的对数,并且右式同除Q(z)(Q(z)作用下面将解释)
    \begin{align*}\ln P(x)&=\ln P(x,z)-\ln P(z|x) \tag{1.4}\\ &=\ln{\frac{P(x,z)}{Q(z)}}-\ln{\frac{P(z|x)}{Q(z)}}\\ &=\ln{P(x,z)}-\ln{Q(z)}-\ln{\frac{P(z|x)}{Q(z)}}\\ \end{align*}
    对于式(1.4)两边取期望:
    \begin{align*} \int_{z}\ln{P(x)}Q(z)dz&=\ln{P(x)}\tag{1.5}\\ &=\underbrace{\int_z{\ln{P(x,z)}Q(z)dz-\int_z\ln{Q(z)}Q(z)dz}}_{L(Q)-Evidence Lower Bound(ELOB)}\underbrace{-\int_z{\ln{\frac{P(z|x)}{Q(z)}Q(z)dz}}}_{KL(Q||P)}\\ \end{align*}
    计算到此,我们要思考一个问题:何时ELOB达到最大值?这个问题其实很简单,由于KL散度本身大于等于0,所以\ln{P(x)}便是ELOB的上界
    我们不是讨论变分推断吗,为什么讨论起ELOB了呢?其实上面我们提到了用Q去逼近P,所以式(1.4)从而引进了Q(z)。而衡量两个分布的相似程度的一种标准便是KL散度,KL的值越小表示两种分布越相似。什么时候最小呢?只要KL=0便是最小,这个条件看似说明了一切,但是我们只知道Q不知道P的分布啊,没法确定两者是否为0,所以KL=0便成了一个鸡肋的条件,食之无味,弃之可惜啊。这时候救世主ELOB出现了,她的光辉照耀世界~(中二ing,笑)。

    式(1.5)分为两部分,既然我们没法确定KL散度,我们只好利用ELOB(ELOB可以看做是Q(z)的函数——即函数的函数(泛函,本学渣只听说过没有正式学习过))。既然KL散度要得到最小,那么就要设法使ELOB到达最大。

    是时候展示真正的技术了——EZ

    下面证明ELOB的上界:
    \begin{align*} \ln{P(x)}=&\ln{\int_z{P(x,z)dz}}\\ &=\ln{\int_z{\frac{P(x,z)}{Q(z)}Q(z)dz}}\\ &=\ln{\Bbb{E_{Q(Z)}}[\frac{P(x,z)}{Q(z)}]}\\ (由詹森不等式可得)&\geq{\Bbb{E_{Q(Z)}}[\frac{\ln{P(x,z)}}{Q(z)}]}\\ &=\underbrace{\Bbb{E_{Q(Z)}}[\ln{P(x,z)}]-\Bbb{E_{Q(Z)}}[\ln{Q(z)}]}_{ELOB}\\ \end{align*}
    以上我们知道了通过使得ELOB最大化的这种间接的方式从而使得KL散度尽可能的小,那么接下来便是介绍如何使得ELOB尽可能的趋近其上界。

    假设Z={z_1,\cdots,z_n},现实生活中大多数P(z)\neq{P(z_1)P(z_2)\cdots P(z_n)},但是我们选择Q(z)时可以选我们知道到的,简单的,独立同分布的概率分布(选非独立同分布的我也不拦着)Q(z)=Q(z_1)Q(z_2) \cdots Q(z_n)。选好了Q(z),好戏也要开场了。
    \begin{align*} \because L(Q) &= \int{Q(z) \ln{P(x,z)}dz}-\int{Q(z)\ln{Q(Z)}dz}\\ &= \underbrace{\int{\prod_{i=1}^{n}{Q_i(z_i)}\ln{P(x,z)dz}}}_{Part1}- \underbrace{\int{\prod_{i=1}^{n}{Q_i(z_i)} \sum_{i=1}^{n}\ln{Q_i(z_i)dz}}}_{Part2} \tag{1.6}\\ Part1&= \int_{z_1} \cdots \int_{z_n} \prod_{i=1}^n Q_i(z_i)\ln{P(x,z)}dz_1 \dots dz_n\\ 当i=j时: Part1 &= \int Q_j(z_j)(\int \cdots \int_{z_{i \neq j}} \prod_{i \neq j}^n Q_i(z_i) \ln P(x,z)\prod_{i\neq j}^ndz_i)dz_j\\ &=\int_{z_j}Q_j(z_j)(\int\cdots \int_{z_{i\neq j}}\ln{P(x,z)}\prod_{i\neq j}^nQ_j(z_j)dz_j)\\ &=\int_{z_j}Q_j(z_j)(\Bbb{E}_{i\neq j}[\ln{P(x,z)}])dz_j\\ 同理,可推出Part2:\\ Part2&=\sum_{i=1}^n(\int_{z_i}Q_i(z_i)\ln Q_i(z_i)dz_i)\\ \end{align*}
    下面证明Part2变量为两个时,可得:
    \int_{x_1}\int_{x_2}[f(x_1)+f(x_2)]P(x_1)P(x_2)dx_1dx_2=\int_{x_1}f(x_1)P(x_1)dx_1+\int_{x_2}f(x_2)P(x_2)dx_2
    推至N个时,Part2得证。当i=j,即只对某个z_j感兴趣时,Part2可简写为:
    \begin{align*} Part2=\int_{z_j}Q_j(z_j)\ln Q_j(z_j)dz_j+const\\ \end{align*}
    再令:\ln{\overline{P}_j(x,z_j)}=\Bbb{E}_{i\neq j}[\ln{P(x,z)}]可得:
    L(Q_j)=Part1-Part2=\int_{z_j}Q_j(z_j)\ln{[\frac{\overline{P}_j(x,z_j)}{Q_j(z_j)}]}dz_j+const \to-KL(\Bbb{E}_{i\neq j}[\ln{P(x,z)}]||Q_j(z_j))
    推导到这,豁然开朗。原来ELOB最后也要化为一个-KL散度,故最大值为0当且仅当\ln{Q_i(z_j)=\Bbb{E}_{i\neq j}[\ln{P(x,z)}]}。最后,简单说明如何获得稳定\ln{Q}的迭代过程:
    \begin{align*} \ln Q_1^*(z_1)&=\int_{Q_2}\cdots \int_{Q_n}\ln{P(x,z)}Q_2(z_2)\cdots Q_n(z_n)dz_2\cdots dz_n\\ \ln Q_2^*(z_2)&=\int_{Q_1}\cdots \int_{Q_n}\ln{P(x,z)}Q_1^*(z_1)\cdots Q_n(z_n)dz_1\cdots dz_n\\ \vdots\\ \ln Q_n^*(z_n)&=\int_{Q_1}\cdots \int_{Q_{n-1}}\ln{P(x,z)}Q_1^*(z_1)\cdots Q_{n-1}^*(z_{n-1})dz_1\cdots dz_{n-1}\\ \end{align*}
    经过多次算法迭代,\ln{Q}收敛于固定值,从而得到最大ELOB,进而确定所需KL散度与Q分布。

    综述


    变分推断是利用已知分布通过调整使其符合我们需要却难以用公式表达的分布。由ELOBKL散度的关系,通过得到ELOB的上界间接获得KL(Q(z)||P(z|x))散度。对于ELOB的上界,又可以通过转化为相关的KL(\Bbb{E}_{i\neq j}[\ln{P(x,z)}]||Q_j(z_j))散度求解。

    \begin{align*} KL(\Bbb{E}_{i\neq j}[\ln{P(x,z)}]||Q_j(z_j))\to ELOB\to KL(Q(z)||P(z|x)) \to 调整后的Q(z) \end{align*}
    用一张图来表示Q分布的变化。

    vi.png

    文中配图来源于《徐亦达机器学习》

    相关文章

      网友评论

          本文标题:Variational Inference 变分推断

          本文链接:https://www.haomeiwen.com/subject/qktznftx.html