变分自编码器(VAE)介绍

一、前言

变分自编码器(Variational Auto-Encoder,VAE)是以自编码器结构为基础的深度生成模型。

自编码器( Auto-Encoder,AE)在降维和特征提取等领域应用广泛, 基本结构是通过编码 (Encoder) 过程将样本映射到低维空间的隐变量, 然后通过解码 (Decoder) 过程将隐变量还原为重构样本。

在这里插入图片描述

其中,对于编码层:

图中的输入数据 x x x与对应的连接权重 W W W相乘,再加上偏置 b b b,经过激活函数 f ( ⋅ ) f(\cdot) f()变换后,得到 y y y。具体公式如下:

y = f ( W x + b ) y=f(Wx+b) y=f(Wx+b)

对于解码层:

中间层和重构层之间的连接权重及偏置分为记作 W ~ \tilde{W} W~ b ~ \tilde{b} b~,激活函数为 f ~ ( ⋅ ) \tilde{f}(\cdot) f~(),重构结果记作 x ~ \tilde{x} x~

x ~ = f ~ ( W ~ y + b ~ ) \tilde{x}=\tilde{f}\left(\tilde{W}y+\tilde{b}\right) x~=f~(W~y+b~)

因此,自编码器总的过程可以表示为:

x ~ = f ~ ( W ~ f ( W x + b ) + b ~ ) \tilde{x}=\tilde{f}(\tilde{W}f(Wx+b)+\tilde{b}) x~=f~(W~f(Wx+b)+b~)

损失函数(Loss函数) L L L可以使用最小二乘法差函数或者交叉熵代价函数。

L = ∑ n = 1 N ∥ x n − x n ~ ∥ 2 L = − ∑ n = 1 N ( x i l o g x ~ i + ( 1 − x i ) l o g ( 1 − x ~ i ) ) L=\sum_{n=1}^N\|x_n-\tilde{x_n}\|^2\\ L=-\sum_{n=1}^N(x_ilog\tilde{x}_i+(1-x_i)log(1-\tilde{x}_i)) L=n=1Nxnxn~2L=n=1N(xilogx~i+(1xi)log(1x~i))

二、变分自编码器

1、VAE的目标

VAE的目标是先假设一个隐变量 Z Z Z的分布,构建一个从 Z Z Z到目标数据 X X X的模型,即构建 X = g ( Z ) X=g(Z) X=g(Z),使得学出来的目标数据与真实数据的概率分布相近。与GAN基本一致,GAN学的也是概率分布。

在这里插入图片描述
图1 VAE示意图

2、理论推导

首先我们有一批数据样本 { X 1 , … , X n } \{X_1,…,X_n\} {X1,,Xn},其整体用 X X X来描述,我们本想根据 { X 1 , … , X n } \{X_1,…,X_n\} {X1,,Xn}得到 X X X的分布 P ( x ) P(x) P(x),如果能得到的话,那我直接根据 P ( x ) P(x) P(x)来采样,就可以得到所有可能的 X X X了(包括 { X 1 , … , X n } \{X_1,…,X_n\} {X1,,Xn}+ { X 1 , … , X n } \{X_1,…,X_n\} {X1,,Xn}以外的),这是一个终极理想的生成模型了。当然,这个理想很难实现,于是我们将分布改一改,就变成了

原始的样本数据 x x x的概率分布:

P ( x ) = ∫ z P ( z ) P ( x ∣ z ) d z P(x)=\int_zP(z)P(x|z)dz P(x)=zP(z)P(xz)dz

假设 z z z服从标准高斯分布,则 P ( x ) P(x) P(x)就是在积分域上所有高斯分布的累加。

在这里插入图片描述
图2 P ( x ) P(x) P(x)分布累加

由于 P ( z ) P(z) P(z)是已知的, P ( x ∣ z ) P(x|z) P(xz)未知。我们最开始的目标是求解 P ( x ) P(x) P(x),且我们希望 P ( x ) P(x) P(x)越大越好,这等价于求解关于 x x x最大对数似然:

L = ∑ x l o g P ( x ) L=\sum_xlogP(x) L=xlogP(x)

l o g P ( x ) logP(x) logP(x)可变换为:

l o g P ( x ) = ∫ z Q ( z ∣ x ) l o g P ( x ) d z = ∫ z Q ( z ∣ x ) l o g P ( z , x ) P ( z ∣ x ) d z = ∫ z Q ( z ∣ x ) l o g ( P ( z , x ) Q ( z ∣ x ) Q ( z ∣ x ) P ( z ∣ x ) ) d z = ∫ z Q ( z ∣ x ) l o g ( P ( z , x ) Q ( z ∣ x ) ) d z + ∫ z Q ( z ∣ x ) l o g ( Q ( z ∣ x ) P ( z ∣ x ) ) d z = ∫ z Q ( z ∣ x ) l o g ( P ( x ∣ z ) P ( z ) Q ( z ∣ x ) ) d z + ∫ z Q ( z ∣ x ) l o g ( Q ( z ∣ x ) P ( z ∣ x ) ) d z = ∫ z Q ( z ∣ x ) l o g ( P ( x ∣ z ) P ( z ) Q ( z ∣ x ) ) d z + K L ( Q ( z ∣ x ) ∣ ∣ P ( z ∣ x ) ) \begin{aligned} logP(x)& =\int_zQ(z|x)logP(x)dz \\ &=\int_zQ(z|x)log\frac{P(z,x)}{P(z|x)}dz \\ &=\int_zQ(z|x)log(\frac{P(z,x)}{Q(z|x)}\frac{Q(z|x)}{P(z|x)})dz \\ &=\int_zQ(z|x)log(\frac{P(z,x)}{Q(z|x)})dz+\int_zQ(z|x)log(\frac{Q(z|x)}{P(z|x)})dz \\ &=\int_zQ(z|x)log(\frac{P(x|z)P(z)}{Q(z|x)})dz+\int_zQ(z|x)log(\frac{Q(z|x)}{P(z|x)})dz \\ &=\int_zQ(z|x)log(\frac{P(x|z)P(z)}{Q(z|x)})dz+KL(Q(z|x)||P(z|x)) \end{aligned} logP(x)=zQ(zx)logP(x)dz=zQ(zx)logP(zx)P(z,x)dz=zQ(zx)log(Q(zx)P(z,x)P(zx)Q(zx))dz=zQ(zx)log(Q(zx)P(z,x))dz+zQ(zx)log(P(zx)Q(zx))dz=zQ(zx)log(Q(zx)P(xz)P(z))dz+zQ(zx)log(P(zx)Q(zx))dz=zQ(zx)log(Q(zx)P(xz)P(z))dz+KL(Q(zx)∣∣P(zx))

注:
∫ z Q ( z ∣ x ) l o g ( Q ( z ∣ x ) P ( z ∣ x ) ) d z = K L ( Q ( z ∣ x ) ∣ ∣ P ( z ∣ x ) \int_zQ(z|x)log(\frac{Q(z|x)}{P(z|x)})dz=KL(Q(z|x)||P(z|x) zQ(zx)log(P(zx)Q(zx))dz=KL(Q(zx)∣∣P(zx)

因为KL散度是大于等于0的,可以进一步得到:

l o g P ( x ) ⩾ ∫ z Q ( z ∣ x ) l o g ( P ( x ∣ z ) P ( z ) Q ( z ∣ x ) ) d z logP(x)\geqslant\int_zQ(z|x)log(\frac{P(x|z)P(z)}{Q(z|x)})dz logP(x)zQ(zx)log(Q(zx)P(xz)P(z))dz

这样我们就找到了一个下界(lower bound),也就是式子的右项,即

L b = ∫ z Q ( z ∣ x ) l o g ( P ( x ∣ z ) P ( z ) q ( z ∣ x ) ) d z L_b=\int_zQ(z|x)log(\frac{P(x|z)P(z)}{q(z|x)})dz Lb=zQ(zx)log(q(zx)P(xz)P(z))dz

原式也可表示成:

l o g P ( x ) = L b + K L ( Q ( z ∣ x ) ∣ ∣ P ( z ∣ x ) ) logP\left(x\right)=L_b+KL(Q(z|x)||P(z|x)) logP(x)=Lb+KL(Q(zx)∣∣P(zx))

实际上,因为后验分布 P ( z ∣ x ) P(z|x) P(zx)很难求,所以才用 Q ( z ∣ x ) Q(z|x) Q(zx)来逼近这个后验分布。在优化的过程中我们发现,首先 Q ( z ∣ x ) Q(z|x) Q(zx) l o g P ( x ) logP\left(x\right) logP(x)是完全没有关系的, l o g P ( x ) logP\left(x\right) logP(x)只跟 P ( z ∣ x ) P(z|x) P(zx)有关,调节 Q ( z ∣ x ) Q(z|x) Q(zx)是不会影响似然,也就是 l o g P ( x ) logP\left(x\right) logP(x)的。所以,当我们固定住 P ( z ∣ x ) P(z|x) P(zx)时,调节 Q ( z ∣ x ) Q(z|x) Q(zx),从而最大化下界 L b L_b Lb,KL则越小。当 Q ( z ∣ x ) Q(z|x) Q(zx)与不断逼近后验分布 P ( z ∣ x ) P(z|x) P(zx)时,KL散度趋于为0, l o g P ( x ) logP\left(x\right) logP(x)就和 L b L_b Lb等价,所以最大化 l o g P ( x ) logP\left(x\right) logP(x)就等价于最大化 L b L_b Lb

因为由前边的推导可以知道

L b = ∫ z Q ( z ∣ x ) l o g ( P ( x ∣ z ) P ( z ) Q ( z ∣ x ) ) d z = ∫ z Q ( z ∣ x ) l o g ( P ( z ) Q ( z ∣ x ) ) d z + ∫ z Q ( z ∣ x ) l o g ( P ( x ∣ z ) ) d z = − K L ( Q ( z ∣ x ) ∣ ∣ P ( z ) ) + ∫ z Q ( z ∣ x ) l o g ( P ( x ∣ z ) ) d z = − K L ( Q ( z ∣ x ) ∣ ∣ P ( z ) ) + E q ( x ∣ z ) [ l o g ( P ( x ∣ z ) ) ] \begin{aligned} L_{b}& =\int_{z}Q(z|x)log(\frac{P(x|z)P(z)}{Q(z|x)})dz \\ &=\int_zQ(z|x)log(\frac{P(z)}{Q(z|x)})dz+\int_zQ(z|x)log(P(x|z))dz \\ &=-KL(Q(z|x)||P(z))+\int_zQ(z|x)log(P(x|z))dz \\ &=-KL(Q(z|x)||P(z))+E_{q(x|z)}[log(P(x|z))] \end{aligned} Lb=zQ(zx)log(Q(zx)P(xz)P(z))dz=zQ(zx)log(Q(zx)P(z))dz+zQ(zx)log(P(xz))dz=KL(Q(zx)∣∣P(z))+zQ(zx)log(P(xz))dz=KL(Q(zx)∣∣P(z))+Eq(xz)[log(P(xz))]

显然,最大化 L b L_b Lb等价于最小化 − K L ( Q ( z ∣ x ) ∣ ∣ P ( z ) ) -KL(Q(z|x)||P(z)) KL(Q(zx)∣∣P(z))和最大化 E q ( x ∣ z ) [ l o g ( P ( x ∣ z ) ) ] E_{q(x|z)}[log(P(x|z))] Eq(xz)[log(P(xz))]

假设 P ( z ) P(z) P(z)服从标准正态分布,且 Q ( z ∣ x ) Q(z|x) Q(zx)服从高斯分布 N ( μ , σ 2 ) N(\mu, \sigma^2) N(μ,σ2),于是代入计算可得:

K L ( Q ( z ∣ x ) ∣ ∣ P ( z ) ) = K L ( N ( μ , σ 2 ) ∣ ∣ N ( 0 , I ) ) = ∫ 1 2 π σ 2 e − ( x − μ ) 2 2 σ 2 ( l o g e − ( x − μ ) 2 2 σ 2 / 2 π σ 2 e − x 2 2 / 2 π ) d x = 1 2 1 2 π σ 2 ∫ e − ( x − μ ) 2 2 σ 2 ( − l o g σ 2 + x 2 − ( x − μ ) 2 σ 2 ) d x = 1 2 ∫ 1 2 π σ 2 e − ( x − μ ) 2 2 σ 2 ( − l o g σ 2 + x 2 − ( x − μ ) 2 σ 2 ) d x \begin{aligned} KL(Q(z|x)||P(z))& =KL(N(\mu,\sigma^{2})||N(0,I)) \\ &=\int\frac{1}{\sqrt{2\pi\sigma^{2}}}e^{\frac{-(x-\mu)^{2}}{2\sigma^{2}}}\left(log\frac{e^{\frac{-(x-\mu)^{2}}{2\sigma^{2}}}/\sqrt{2\pi\sigma^{2}}}{e^{\frac{-x^{2}}{2}}/\sqrt{2\pi}}\right)dx \\ &=\frac{1}{2}\frac{1}{\sqrt{2\pi\sigma^{2}}}\int e^{\frac{-(x-\mu)^{2}}{2\sigma^{2}}}\bigg(-log\sigma^{2}+x^{2}-\frac{(x-\mu)^{2}}{\sigma^{2}}\bigg)dx \\ &=\frac{1}{2}\int\frac{1}{\sqrt{2\pi\sigma^{2}}}e^{\frac{-(x-\mu)^{2}}{2\sigma^{2}}}\bigg(-log\sigma^{2}+x^{2}-\frac{(x-\mu)^{2}}{\sigma^{2}}\bigg)dx \end{aligned} KL(Q(zx)∣∣P(z))=KL(N(μ,σ2)∣∣N(0,I))=2πσ2 1e2σ2(xμ)2 loge2x2/2π e2σ2(xμ)2/2πσ2 dx=212πσ2 1e2σ2(xμ)2(logσ2+x2σ2(xμ)2)dx=212πσ2 1e2σ2(xμ)2(logσ2+x2σ2(xμ)2)dx

对上式中的积分进一步求解:

(1) 1 2 π σ 2 e − ( x − μ ) 2 2 σ 2 \frac{1}{\sqrt{2\pi\sigma^{2}}}e^{\frac{-(x-\mu)^{2}}{2\sigma^{2}}} 2πσ2 1e2σ2(xμ)2实际就是概率密度 f ( x ) f(x) f(x),而概率密度的积分为 1 1 1,所以积分第一项等于 − l o g σ 2 -log\sigma^{2} logσ2

(2)而又因为高斯分布的二阶矩就是 E ( x 2 ) = ∫ x 2 f ( x ) d x = μ 2 + σ 2 E(x^{2})=\int x^{2}f(x)dx=\mu^{2}+\sigma^{2} E(x2)=x2f(x)dx=μ2+σ2,正好是对应积分第二项。

(3)根据方差的定义可知 σ 2 = ∫ ( x − μ ) 2 d x \sigma^2=\int(x-\mu)^2dx σ2=(xμ)2dx,所以积分第三项为 − 1 -1 1

最终结果为:

K L ( Q ( z ∣ x ) ∣ ∣ P ( z ) ) = K L ( N ( μ , σ 2 ) ∣ ∣ N ( 0 , 1 ) ) = 1 2 ( − l o g σ 2 + μ 2 + σ 2 − 1 ) \begin{aligned} KL(Q(z|x)||P(z))& =KL(N(\mu,\sigma^{2})||N(0,1)) \\ &=\frac12(-log\sigma^2+\mu^2+\sigma^2-1) \end{aligned} KL(Q(zx)∣∣P(z))=KL(N(μ,σ2)∣∣N(0,1))=21(logσ2+μ2+σ21)

也就是表明在给定 Q ( z ∣ x ) Q(z|x) Q(zx)(编码器输出)的情况下 P ( x ∣ z ) P(x|z) P(xz)(解码器)输出的值尽可能高。具体来讲:

(1)利用encoder的神经网络计算出均值与方差,从中采样得到 z z z,这一过程就对应式子中的 Q ( z ∣ x ) Q(z|x) Q(zx)

(2)利用decoder的NN计算 z z z的均值方差,让均值(或也考虑方差)越接近 z z z,则产生 x x x的几率 l o g ( P ( x ∣ z ) ) log(P(x|z)) log(P(xz))越大,对应于式子中的最大化 l o g ( P ( x ∣ z ) ) log(P(x|z)) log(P(xz))这一部分。

3、补充

其实,在整个VAE模型中,我们并没有去使用 P ( Z ) P(Z) P(Z)(隐变量空间的分布)是正态分布的假设,我们用的是假设 Q ( Z ∣ X ) Q(Z|X) Q(ZX)(后验分布)是正态分布。

具体来说,给定一个真实样本 X k X_k Xk,我们假设存在一个专属于 X k X_k Xk的分布 Q ( Z ∣ X k ) Q(Z|X_k) Q(ZXk)(学名叫后验分布),并进一步假设这个分布是(独立的、多元的)正态分布。

为什么要强调“专属”呢?

因为我们后面要训练一个生成器 X = g ( Z ) X=g(Z) X=g(Z),希望能够把从分布 Q ( Z ∣ X k ) Q(Z|X_k) Q(ZXk)采样出来的一个 Z k Z_k Zk还原为 X k X_k Xk。如果假设 P ( Z ) P(Z) P(Z)是正态分布,然后从 P ( Z ) P(Z) P(Z)中采样一个 Z Z Z,那么我们怎么知道这个 Z Z Z对应于哪个真实的 X X X呢?现在 p ( Z ∣ X k ) p(Z|X_k) p(ZXk)专属于 X k X_k Xk,我们有理由说从这个分布采样出来的 Z Z Z应该要还原到 X k X_k Xk中去。

这时候每一个 X k X_k Xk都配上了一个专属的正态分布,才方便后面的生成器做还原。但这样有多少个 X X X就有多少个正态分布了。我们知道正态分布有两组参数:均值 μ μ μ和方差 σ 2 σ^2 σ2(多元的话,它们都是向量),那我怎么找出专属于 X k X_k Xk的正态分布 Q ( Z ∣ X k ) Q(Z|X_k) Q(ZXk)的均值和方差呢?

用神经网络来拟合

于是我们构建两个神经网络 μ k = f 1 ( X k ) μ_k=f_1(X_k) μk=f1(Xk) l o g σ k 2 = f 2 ( X k ) logσ^2_k=f_2(X_k) logσk2=f2(Xk)来算它们了。

我们选择拟合 l o g σ k 2 logσ^2_k logσk2而不是直接拟合 σ k 2 σ^2_k σk2,是因为 σ k 2 σ^2_k σk2总是非负的,需要加激活函数处理,而拟合 l o g σ k 2 logσ^2_k logσk2不需要加激活函数,因为它可正可负。

到这里,就能知道专属于 X k X_k Xk的均值和方差了,也就知道它的正态分布长什么样了,然后从这个专属分布中采样一个 Z k Z_k Zk出来,然后经过一个生成器得到 X k = g ( Z k ) X_k=g(Z_k) Xk=g(Zk),现在我们可以放心地最小化 D ( X ^ k , X k ) 2 D(\hat{X}_k,X_k)^2 D(X^k,Xk)2,因为 Z k Z_k Zk是从专属 X k X_k Xk的分布中采样出来的,这个生成器应该要把开始的 X k X_k Xk还原回来。示意图如图1所示。

根据上边图1描述的过程,首先,我们希望重构 X X X,也就是最小化 D ( X ^ k , X k ) 2 D(\hat{X}_k,X_k)^2 D(X^k,Xk)2,但是这个重构过程受到噪声的影响,因为 Z k Z_k Zk是通过重新采样过的,不是直接由encoder算出来的。显然噪声会增加重构的难度,不过好在这个噪声强度(也就是方差)通过一个神经网络算出来的,所以最终模型为了重构得更好,肯定会想尽办法让方差为0。而方差为0的话,也就没有随机性了,所以不管怎么采样其实都只是得到确定的结果(也就是均值),只拟合一个当然比拟合多个要容易,而均值是通过另外一个神经网络算出来的。

这样的话,模型会慢慢退化成普通的AutoEncoder,噪声不再起作用。

其实VAE还让所有的 Q ( Z ∣ X ) Q(Z|X) Q(ZX)都向标准正态分布看齐,这样就防止了噪声为零,同时保证了模型具有生成能力。怎么理解“保证了生成能力”呢?如果所有的 Q ( Z ∣ X ) Q(Z|X) Q(ZX)都很接近标准正态分布 N ( 0 , I ) N(0,I) N(0,I),那么根据定义

P ( Z ) = ∑ X Q ( Z ∣ X ) P ( X ) = ∑ X N ( 0 , I ) P ( X ) = N ( 0 , I ) ∑ X P ( X ) = N ( 0 , I ) \begin{aligned} P(Z)&= \sum_XQ(Z|X)P(X) \\ &=\sum_X\mathcal{N}(0,I)P(X) \\ &=\mathcal{N}(0,I)\sum_XP(X) \\ &=\mathcal{N}(0,I) \end{aligned} P(Z)=XQ(ZX)P(X)=XN(0,I)P(X)=N(0,I)XP(X)=N(0,I)

这样我们就能达到我们的先验假设: P ( Z ) P(Z) P(Z)是标准正态分布。此时,原始的示意图1变为了下边的形式。

在这里插入图片描述
图3 分布标准化后的VAE示意图

那怎么让所有的 Q ( Z ∣ X ) Q(Z|X) Q(ZX)都向 N ( 0 , I ) N(0,I) N(0,I)看齐呢?如果没有外部知识的话,其实最直接的方法应该是在重构误差的基础上中加入额外的 l o s s loss loss

L μ = ∥ f 1 ( X k ) ∥ 2 L σ 2 = ∥ f 2 ( X k ) ∥ 2 \begin{aligned} \mathcal{L}_\mu&=\|f_1(X_k)\|^2 \\ \quad\mathcal{L}_{\sigma^2}&=\|f_2(X_k)\|^2 \end{aligned} LμLσ2=f1(Xk)2=f2(Xk)2

因为它们分别代表了均值 μ k μ_k μk和方差的对数 l o g σ k 2 logσ^2_k logσk2,达到 N ( 0 , I ) N(0,I) N(0,I)就是希望二者尽量接近于 0 0 0了。不过,这又会面临着这两个损失的比例要怎么选取的问题,选取得不好,生成的图像会比较模糊。所以,原论文直接算了一般(各分量独立的)正态分布与标准正态分布的KL散度 K L ( N ( μ , σ 2 ) ∥∥ N ( 0 , I ) ) KL(N(μ,σ^2)∥∥N(0,I)) KL(N(μ,σ2)∥∥N(0,I))作为这个额外的 l o s s loss loss,计算结果为

K L ( N ( μ , σ 2 ) ∥ N ( 0 , 1 ) ) = 1 2 ( − log ⁡ σ 2 + μ 2 + σ 2 − 1 ) KL\Big(N(\mu,\sigma^2)\Big\Vert N(0,1)\Big)=\frac12\Big(-\log\sigma^2+\mu^2+\sigma^2-1\Big) KL(N(μ,σ2) N(0,1))=21(logσ2+μ2+σ21)

与之前的结果一致。

4、重参数技巧

要从 Q ( Z ∣ X k ) Q(Z|X_k) Q(ZXk)中采样一个 Z k Z_k Zk出来,尽管我们知道了 Q ( Z ∣ X k ) Q(Z|X_k) Q(ZXk)是正态分布,但是均值方差都是靠模型算出来的,我们要靠这个过程反过来优化均值方差的模型,但是“采样”这个操作是不可导的,而采样的结果是可导的。我们利用

1 2 π σ 2 exp ⁡ ( − ( z − μ ) 2 2 σ 2 ) d z = 1 2 π exp ⁡ [ − 1 2 ( z − μ σ ) 2 ] d ( z − μ σ ) \begin{aligned} &\frac1{\sqrt{2\pi\sigma^2}}\exp\biggl(-\frac{(z-\mu)^2}{2\sigma^2}\biggr)dz \\ =&\frac1{\sqrt{2\pi}}\exp\left[-\frac12\left(\frac{z-\mu}\sigma\right)^2\right]d\left(\frac{z-\mu}\sigma\right) \end{aligned} =2πσ2 1exp(2σ2(zμ)2)dz2π 1exp[21(σzμ)2]d(σzμ)

这说明 ( z − μ ) / σ = ε (z−μ)/σ=ε (zμ)/σ=ε是服从均值为 0 0 0、方差为 1 1 1的标准正态分布的,要同时把 d z dz dz考虑进去,是因为乘上 d z dz dz才算是概率,去掉 d z dz dz是概率密度而不是概率。这时候我们得到:

N ( μ , σ 2 ) N(μ,σ^2) N(μ,σ2)中采样一个 Z Z Z,相当于从 N ( 0 , I ) N(0,I) N(0,I)中采样一个 ε ε ε,然后让 Z = μ + ε × σ Z=μ+ε×σ Z=μ+ε×σ

于是,我们将从 N ( μ , σ 2 ) N(μ,σ^2) N(μ,σ2)采样变成了从 N ( 0 , I ) N(0,I) N(0,I)中采样,然后通过参数变换得到从 N ( μ , σ 2 ) N(μ,σ^2) N(μ,σ2)中采样的结果。这样一来,“采样”这个操作就不用参与梯度下降了,改为采样的结果参与,使得整个模型可训练了。

参考:
1、详解VAE(变分自编码器)
2、变分自编码器(一):原来是这么一回事

  • 26
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值