VAE的学习及先验知识

笔记

    • 1、先验、后验、似然、证据
    • 2、极大似然估计
    • 3、最大后验估计
    • 4、贝叶斯均值估计
    • 5、KL散度
    • 6、VAE

1、先验、后验、似然、证据

对于给定的数据,我们假设其是服从某个数据分布的。 θ θ θ决定了数据的分布,而数据是从这个分布中采样得到的。但是在统计学习中,我们通常不知道真实的参数 θ θ θ,因此转向通过数据来推断它,也就是后面要说的参数估计。在此之前先讲些基础的术语。
先验P( θ θ θ)
先验就是在看到数据之前,对于 θ θ θ已有的认知。
似然P( X ∣ θ X|θ Xθ):
它是在给定参数值后,数据X出现的概率值大小。
证据P(X)
他表示在所有的参数值下,数据X发生的概率。
后验P( θ ∣ X θ|X θX)
代表知道了数据X之后,对于 θ θ θ的新认知。

2、极大似然估计

极大似然估计,就是在给定的数据下,找出这样一个 θ θ θ能够最大化似然函数。这个的背后思想是:如果 θ θ θ控制着数据的分布,那么最合理的参数应该能够以最大的概率采样出现有的数据。此外,根据大数定理,数据量足够大的时候,样本会收敛于真实均值,预测的参数也能逼近真实参数。

3、最大后验估计

极大似然估计是为了使现有数据出现的可能性最大,这是没有考虑先验分布的情况,如果已知参数符合某种先验分布,此时则需要使用最大后验估计,能够结合先验只是实现更好的参数估计。
arg ⁡ max ⁡ θ P ( θ ∣ X ) = arg ⁡ max ⁡ θ P ( X ∣ θ ) P ( θ ) P ( X ) \arg\max_{\theta} P(\theta | X) = \arg\max_{\theta} \frac{P(X | \theta) P(\theta)}{P(X)} argθmaxP(θX)=argθmaxP(X)P(Xθ)P(θ)

4、贝叶斯均值估计

贝叶斯估计的重点就是并没有将 θ θ θ视为一个固定的值,而是视其为随机变量,服从先验分布。贝叶斯均值估计对于计算得到的后验分布计算它的期望值,取均值而不是最大值,能够全面反映参数的不确定性。在有些时候我们只是想得到分布的形状,而不是计算一个具体的参数值。

5、KL散度

为了衡量两个概率分布的相似程度,引入了KL散度的概念。他代表了使用q去匹配p。当两个分布越相似,KL散度值越小。对于给出的一些数据,假设它是某个数据分布采样生成的数据,而我们现在要求的就是这个后验分布,但是其太过复杂无法计算出来,因此可以考虑寻找一个近似分布,使KL散度最小。
D K L ( p ∥ q ) = ∑ i = 1 N p ( x i ) log ⁡ ( p ( x i ) q ( x i ) ) D_{K L}(p \| q)=\sum_{i=1}^{N} p\left(x_{i}\right) \log \left(\frac{p\left(x_{i}\right)}{q\left(x_{i}\right)}\right) DKL(pq)=i=1Np(xi)log(q(xi)p(xi))

6、VAE

VAE的学习及先验知识_第1张图片

对于传统的自编码器,它就是将输入通过网络压缩到一个潜在表示,再通过这个潜在表示尽可能地重构原输入。这两个环节一个就是编码器,另一个就是解码器。
而VAE相比于自编码器来说,它的一个调整,就是它并没有将潜在表示视为一个固定值,而是将其视为一个概率分布。(可以这么考虑,潜在表示保存了原图像的关键信息,可以通过它重构原图像,这就是一个因果关系,但是能够重构原图像的因不止有一个,因此潜在表示应该是一个不确定变量,是一个概率分布。)此时中间量不叫潜在表示,而是一个潜在分布或者潜在空间,并用Z来表示。
为了得到这个潜在空间,我们实际上就是要计算P(z|x),但是这个后验分布很难计算,因此我们需要找一个近似后验分布q(z|x)。
寻找近似后验分布
为了寻找近似后延分布,我们需要计算它与真实分布的KL散度。
D K L ( q ( z ∣ x ) ∥ P ( z ∣ x ) ) = E q ( z ∣ x ) [ log ⁡ q ( z ∣ x ) P ( z ∣ x ) ] D_{K L}(q(z \mid x) \| P(z \mid x))=\mathbb{E}_{q(z \mid x)}\left[\log \frac{q(z \mid x)}{P(z \mid x)}\right] DKL(q(zx)P(zx))=Eq(zx)[logP(zx)q(zx)]
在这里将贝叶斯公式代入进去
D K L ( q ( z ∣ x ) ∥ P ( z ∣ x ) ) = E q ( z ∣ x ) [ log ⁡ q ( z ∣ x ) P ( x ∣ z ) P ( z ) / P ( x ) ] = E q ( z ∣ x ) [ log ⁡ q ( z ∣ x ) − log ⁡ P ( x ∣ z ) − log ⁡ P ( z ) + log ⁡ P ( x ) ] = E q ( z ∣ x ) [ log ⁡ q ( z ∣ x ) − log ⁡ P ( x ∣ z ) − log ⁡ P ( z ) ] + log ⁡ P ( x ) \begin{array}{l} D_{K L}(q(z \mid x) \| P(z \mid x))=\mathbb{E}_{q(z \mid x)}\left[\log \frac{q(z \mid x)}{P(x \mid z) P(z) / P(x)}\right] \\ =\mathbb{E}_{q(z \mid x)}[\log q(z \mid x)-\log P(x \mid z)-\log P(z)+\log P(x)] \\ =\mathbb{E}_{q(z \mid x)}[\log q(z \mid x)-\log P(x \mid z)-\log P(z)]+\log P(x) \end{array} DKL(q(zx)P(zx))=Eq(zx)[logP(xz)P(z)/P(x)q(zx)]=Eq(zx)[logq(zx)logP(xz)logP(z)+logP(x)]=Eq(zx)[logq(zx)logP(xz)logP(z)]+logP(x)
其中第二项是一个常数不需要考虑,而第一项可以写成下面式子
− E q ( z ∣ x ) [ log ⁡ P ( x ∣ z ) ] + D K L ( q ( z ∣ x ) ∥ P ( z ) ) -\mathbb{E}_{q(z \mid x)}[\log P(x \mid z)]+D_{K L}(q(z \mid x) \| P(z)) Eq(zx)[logP(xz)]+DKL(q(zx)P(z))
而为了使KL散度最小,就是使上式最小,也就是它的相反数最大,下方这个又称为证据下界(变分下界,ELBO),要使其最大化。
E q ( z ∣ x ) [ log ⁡ P ( x ∣ z ) ] − D K L ( q ( z ∣ x ) ∥ P ( z ) ) \mathbb{E}_{q(z \mid x)}[\log P(x \mid z)]-D_{K L}(q(z \mid x) \| P(z)) Eq(zx)[logP(xz)]DKL(q(zx)P(z))
所以现在的问题从计算它的真实后验分布转为找近似后验分布,再转到实现ELBO的最大。现在让我们分析ELBO,它的第一项代表在q(z∣x) 下的期望值,即编码器采样z的概率,然后用解码器计算x的对数似然函数,因此它实际上代表的就是重构误差。
而第二项则是确保得到的近似后验不会太过偏离先验分布,可以理解为避免过拟合。
模型搭建
对于潜在空间z的先验分布,一般假设其符合标准正态分布,对于近似后验分布,我们假设其符合正态分布,为了学习它的均值与方差,使用了神经网络进行学习,这两个值通过两个不同的神经网络进行学习。
其中对于第二项的损失计算,就是
D K L ( q ( z ∣ x ) ∥ p ( z ) ) = 1 2 ∑ i = 1 d ( 1 + log ⁡ ( σ i 2 ) − μ i 2 − σ i 2 ) D_{K L}(q(z \mid x) \| p(z))=\frac{1}{2} \sum_{i=1}^{d}\left(1+\log \left(\sigma_{i}^{2}\right)-\mu_{i}^{2}-\sigma_{i}^{2}\right) DKL(q(zx)p(z))=21i=1d(1+log(σi2)μi2σi2)
而对于第一项,则是使用均方差进行计算即可。
新图像生成
对于最大化ELBO,就是要尽可能地重建图像,同时努力让近似后验与真实先验相似。此时由于KL散度约束,我们从先验分布中采样的z也能落地到训练数据对应的潜在空间中,解释器也能产生合理的新图像。

你可能感兴趣的:(图像生成,机器学习,人工智能)