变分推断之傻瓜式推导ELBO

您所在的位置:网站首页 中图法b大类 变分推断之傻瓜式推导ELBO

变分推断之傻瓜式推导ELBO

2023-03-09 22:49| 来源: 网络整理| 查看: 265

变分推断(Variational Inference, VI)是贝叶斯近似推断方法中的一大类方法,将后验推断问题巧妙地转化为优化问题进行求解。

*b站上有一个up主关于这个问题讲得很清晰(视频地址),本文是该视频的文字总结。

Problem Definition给定observation variable x (比如RGB图片)和latent variable z (比如是RGB图片经过encoder得到的latent feature), 假设我们想知道(学习)后验概率 p(z|x) ,但发现 p(z|x) 在实际中不好或者没法求解,那么我们该怎么求解这个后验概率呢?High-level Introduction of VI Solution

先看这个蓝色笔记部分。最外圈的大圆代表的是整个概率分布空间,我们要求的后验概率 p(z|x) 是此空间里的一个点,大圆内部还有个小圆Q,Q是这个空间里的一个概率分布family,VI要做的就是找到Q中的一个最优的替代概率分布 q^{*}(z) (此分布比后验分布好求解),其是整个Q中离 p(z|x)最近的分布。假设L是此空间上的距离函数,则我们要找的这个概率分布就可以表示为

如果我们能找到这样的分布 q^{*}(z),那么我们就可以用 q^{*}(z) 去估计原来不好计算的 p(z|x)。

3. ELBO

当我们取L为KL divergence(经常用于度量两个概率分布之间的距离)的时候,此问题变成Variational Bayes (VB) 问题。(划重点,我们的目标变成了最小化以下KL散度。)

展开KL项,

(题外话,KL散度数值上是always大于等于0的,那么在没有其他约束的条件下,q^{*}(z)=p(z|x)。)

问题来了。。。因为 p(z|x) 不好算,我们想通过 q^{*}(z) 去估计 p(z|x) ,但计算 q^{*}(z) 又需要用到 p(z|x),这不就套娃了吗。。。

不着急,我们先试着单独看一下KL项。

这里关于 q(z) 对z积分,其实就是关于 q(z) 的期望,即 \int_{z}^{}q(z)f(z,\cdot)dz =\mathbb{E}_q[f(z,\cdot)] ,那么上式能表示成期望形式:

第二项可以用条件概率公式继续展开:

此时,变成了三项,观察各项,发现第三项里面 \log{p(x)} 与期望的对象 q(z) 是无关的,所以期望符号可以直接去掉,于是得到:

此时,我们把前两项称之为 -ELBO (Evidence Lower Bound)。(注意这里是负的ELBO)

那么,关于 q(z) 的 ELBO(q) 为:

实际计算中,ELBO可以表示成以下形式进行计算:

\begin{align*} ELBO(q) &= \mathbb{E}_q[\log{p(x,z)}]-\mathbb{E}_q[\log{q(z)}]\\ &= \mathbb{E}_q[\log{p(x|z)p(z)}]-\mathbb{E}_q[\log{q(z)}]\\ &= \mathbb{E}_q[\log{p(x|z)}]+\mathbb{E}_q[\log{p(z)}]-\mathbb{E}_q[\log{q(z)}]\\ &= \mathbb{E}_q[\log{p(x|z)}]+\mathbb{E}_q[\frac{\log{p(z)}}{\log{q(z)}}]\\ &= \mathbb{E}_q[\log{p(x|z)}]+\int_{z}^{}q(z)\frac{\log{p(z)}}{\log{q(z)}}dz\\ &= \mathbb{E}_q[\log{p(x|z)}]-KL(q(z)||p(z)) \end{align*}

我们再观察 \log{p(x)} (其为常数,因为是关于数据集本身的统计信息,我们称之为Evidence):

因为等式左边是常数,我们的目标又是最小化KL项,那么我们要做的其实就是最大化 ELBO(q),既

到此,我们可以总结说:想要找到 q^{*}(z) 只要最大化 q(z) 的ELBO就可以了。

BTW,为啥叫Evidence Lower Bound,因为KL散度always大于等于0,所以有以下不等式:

ELBO其实就是数据Evidence \log{p(x)} 的下界。

[DONE]



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3