变分推断(Variational Inference)

从变分推断(Variational Inference)说起

   在贝叶斯体系中,推断(inference) 指的是 利用已知变量x的观测值推测未知变量z的后验分布,即我们在已经输入变量x后,如何获得未知变量z的分布p(z|x)[3].通俗一点讲一个完整的故事就是,如果没有任何信息,我们可能大概了解一个(latent)变量z的分布,这个分布可能方差比较大。变量x是可观察的,并含有z的一些信息。那么在观察到x后,关于z的分布(此时是后验分布p(z|x))会发生变化,比如方差变得更小了,如下图所示。
变分推断(Variational Inference)_第1张图片
  利用贝叶斯公式:[4]
变分推断(Variational Inference)_第2张图片
p ( x ∣ z ) p(x|z) p(xz) p ( z ) p(z) p(z)可以做出必要的假设符合某个分布。 p ( x ) p(x) p(x)是已经观察到的,所以称为证据(evidence)。
变分推断的一般步骤:
变分推断(Variational Inference)_第3张图片
  精确推断方法准确地计算 p ( z ∣ x ) p(z|x) p(zx),该过程往往需要很大的计算开销,现实应用中近似推断更为常用。近似推断的方法往往分为两大类:

  • 第一类是采样,常见的是MCMC方法,
  • 第二类是使用另一个分布近似 p ( z ∣ x ) p(z|x) p(zx),典型代表就是变分推断。变分推断可以是推断后验分布的期望或者方差。

近似变分推断,就是要找到一个分布 q ∗ ( z ) q^*(z) q(z)去近似后验分布 p ( z ∣ x ) p(z|x) p(zx)

  • 指定一个关于z的分布族Q
  • 找到一个 q ∗ ( z ) ∈ Q q^*(z) \in Q q(z)Q去近似 p ( z ∣ x ) p(z|x) p(zx)
    在这里插入图片描述
    其中L是一种度量,可以度量两个分布分近似程度。Variational Bayes(变分贝叶斯,VB) 的这个度量采用KL距离:
    在这里插入图片描述
      KL距离,是Kullback-Leibler差异(Kullback-Leibler Divergence)的简称,也叫做相对熵(RelativeEntropy)。它衡量的是相同事件空间里的两个概率分布的差异情况。其物理意义是:在相同事件空间里,概率分布P(x)的事件空间,若用概率分布 Q ( x ) Q(x) Q(x)编码时,平均每个基本事件(符号)编码长度增加了多少比特。[5]
    变分推断(Variational Inference)_第4张图片
    这里对KL的意义再重点讨论一下:
      KL的意义其实也很好理解。现在假如有两个概率分布P(x)和Q(x),现在要看看分布Q(x)与分布P(x)的接近程度。怎么做呢?其实很容易能够想到,就是根据分布P(x)中采样N个数: x 1 , x 2 , . . . , x N x_1,x_2,...,x_N x1,x2,...,xN,看 P ( x 1 ) P ( x 2 ) . . . P ( x N ) Q ( x 1 ) Q ( x 2 ) . . . Q ( x N ) \frac{P(x_1)P(x_2)...P(x_N)}{Q(x_1)Q(x_2)...Q(x_N)} Q(x1)Q(x2)...Q(xN)P(x1)P(x2)...P(xN)与1
    的接近程度,如果取对数就是 l o g ( P ( x 1 ) Q ( x 1 ) ) + l o g ( P ( x 2 ) Q ( x 2 ) ) + . . . + l o g ( P ( x N ) Q ( x N ) ) log(\frac{P(x_1)}{Q(x_1)})+log(\frac{P(x_2)}{Q(x_2)})+...+log(\frac{P(x_N)}{Q(x_N)}) log(Q(x1)P(x1))+log(Q(x2)P(x2))+...+log(Q(xN)P(xN))与0的接近程度,取平均数: 1 N ( l o g ( P ( x 1 ) Q ( x 1 ) ) + l o g ( P ( x 2 ) Q ( x 2 ) ) + . . . + l o g ( P ( x N ) Q ( x N ) ) ) \frac{1}{N}(log(\frac{P(x_1)}{Q(x_1)})+log(\frac{P(x_2)}{Q(x_2)})+...+log(\frac{P(x_N)}{Q(x_N)})) N1(log(Q(x1)P(x1))+log(Q(x2)P(x2))+...+log(Q(xN)P(xN))),这个就是对 ∑ x ∈ X P ( x ) l o g ( P ( x ) Q ( x ) ) \sum_{x \in X}P(x)log(\frac{P(x)}{Q(x)}) xXP(x)log(Q(x)P(x))的估计。因为是看分布Q(x)与分布P(x)的接近程度,所以是从P(x)取样,如果是看分布P(x)与分布Q(x)的接近程度,那就是从Q(x)取样,那么就是 ∑ x ∈ X Q ( x ) l o g ( Q ( x ) P ( x ) ) \sum_{x \in X}Q(x)log(\frac{Q(x)}{P(x)}) xXQ(x)log(P(x)Q(x)),二者肯定是不一样的,所以KL距离不是对称的。

   这样做下面的一步推导,其中 p ( z ∣ x ) p(z|x) p(zx)是未知的(本质上, p ( x ) p(x) p(x)是未知的)。
变分推断(Variational Inference)_第5张图片
这样做进一步的变化,把 p ( z ∣ x ) p(z|x) p(zx)拆开。
变分推断(Variational Inference)_第6张图片
关于ELBO(evidence lower bound,evidence下界):

  • ELBO是evidence的对数的下界
  • K L ( q ( z ) ∣ ∣ p ( z ∣ x ) ) KL(q(z)||p(z|x)) KL(q(z)∣∣p(zx))的最小化等价于对ELBO的最大化(做这样的转化是必要的,因为ELBO中是没有未知量的)
  • ELBO中的 p ( x , z ) = p ( x ∣ z ) p ( z ) p(x,z)=p(x|z)p(z) p(x,z)=p(xz)p(z) p ( x ∣ z ) p(x|z) p(xz) p ( z ) p(z) p(z)都做了假设,是知道的,所以 p ( x , z ) p(x,z) p(x,z)是知道的。

变分推断(Variational Inference)_第7张图片

参考链接:

[3]:变分推断(Variational Inference)初探 - 知乎 (zhihu.com)

[4]: 变分推断-1贝叶斯统计 详细推导 Variational Inference「机器学习」_哔哩哔哩_bilibili
[5]: 计算 KL距离 (相对熵)

https://zhuanlan.zhihu.com/p/507776434

https://zhuanlan.zhihu.com/p/340226815

https://zhuanlan.zhihu.com/p/57574493

https://blog.csdn.net/m0_58547949/article/details/127963524

https://kexue.fm/archives/5253

你可能感兴趣的:(深度学习相关算法学习,算法,机器学习,人工智能,stable,diffusion,Imagen)