| 机器学习与 |
| --- |
| An illustration of a neural network with dark |
| 范式
* 监督学习
* 無監督學習
* 線上機器學習
* 元学习（英语：）
* 半监督学习
* 自监督学习
* 强化学习
* 基于规则的机器学习（英语：）
* 量子機器學習
 |
| 问题
* 统计分类
* 生成模型
* 迴歸分析
* 聚类分析
* 降维
* 密度估计（英语：）
* 异常检测
* 数据清洗
* 自动机器学习
* 关联规则学习
* 語意分析
* 结构预测（英语：）
* 特征工程
* 表征学习
* 排序学习（英语：）
* 语法归纳（英语：）
* 本体学习（英语：）
* 多模态学习（英语：）
 |
| 监督学习(**分类** · **回归**)
* 学徒学习（英语：）
* 决策树学习
* 集成学习
	+ Bagging
	+ 提升方法
	+ 随机森林
* *k*-NN
* 線性回歸
* 朴素贝叶斯
* 人工神经网络
* 邏輯斯諦迴歸
* 感知器
* 相关向量机（RVM）
* 支持向量机（SVM）
 |
| 聚类分析
* BIRCH
* CURE算法（英语：）
* 层次
* *k*-平均
* Fuzzy
* 期望最大化（EM）
* DBSCAN
* OPTICS
* 均值飘移（英语：）
 |
| 降维
* 因素分析
* CCA
* ICA
* LDA
* NMF（英语：）
* PCA
* PGD（英语：）
* t-SNE（英语：）
* SDL
 |
| 结构预测（英语：）
* 圖模式
	+ 貝氏網路
	+ 條件隨機域
	+ 隐马尔可夫模型
 |
| 异常检测
* RANSAC
* *k*-NN
* 局部异常因子（英语：）
* 孤立森林（英语：）
 |
| 人工神经网络
* 自编码器
* 認知計算
* 深度学习
* DeepDream（英语：）
* 多层感知器
* RNN
	+ LSTM
	+ GRU（英语：）
	+ ESN（英语：）
	+ 储备池计算（英语：）
* 受限玻尔兹曼机
* GAN
* SOM
* 卷积神经网络
	+ U-Net
* Transformer
	+ Vision transforme（英语：）
* 脉冲神经网络（英语：）
* Memtransistor（英语：）
* 电化学RAM（英语：）（ECRAM）
 |
| 强化学习
* Q学习
* SARSA
* 时序差分（TD）
* 多智能体（英语：）
	+ Self-play（英语：）
 |
| 与人类学习
* 主动学习（英语：）
* 众包
* Human-in-the-loop（英语：）
 |
| 模型诊断
* 学习曲线（英语：）
 |
| 数学基础
* 内核机器（英语：）
* 偏差–方差困境（英语：）
* 计算学习理论（英语：）
* 经验风险最小化
* 奥卡姆学习（英语：）
* PAC学习（英语：）
* 统计学习
* VC理论
 |
| 大会与出版物
* NeurIPS
* ICML（英语：）
* ICLR
* ML（英语：）
* JMLR（英语：）
 |
| 相关条目
* 人工智能术语（英语：）
* 机器学习研究数据集列表（英语：）
* 机器学习概要（英语：）
 |
| * 
* 论
* 编
 |

机器学习中，**变分自编码器（Variational Autoencoder，VAE）**是由Diederik P. Kingma和Max Welling提出的一种人工神经网络结构，属于概率图模式和变分贝叶斯方法。

VAE与自编码器模型有关，因为两者在结构上有一定亲和力，但在目标和数学表述上有很大区别。VAE属于概率生成模型（Probabilistic Generative Model），神经网络仅是其中的一个组件，依照功能的不同又可分为编码器和解码器。编码器可将输入变量映射到与变分分布的参数相对应的潜空间（Latent Space），这样便可以产生多个遵循同一分布的不同样本。解码器的功能基本相反，是从潜空间映射回输入空间，以生成数据点。虽然噪声模型的方差可以单独学习而来，但它们通常都是用重参数化技巧（Reparameterization Trick）来训练的。

此类模型最初是为无监督学习设计的，但在半监督学习和监督学习中也表现出卓越的有效性。

结构与操作概述
-------

VAE是一个分别具有先验和噪声分布的生成模型，一般用最大期望算法（Expectation-Maximization meta-algorithm）来训练。这样可以优化数据似然的下限，用其它方法很难实现这点，且需要q分布或变分后验。这些q分布通常在一个单独的优化过程中为每个单独数据点设定参数；而VAE则用神经网络作为一种摊销手段来联合优化各个数据点，将数据点本身作为输入，输出变分分布的参数。从一个已知的输入空间映射到低维潜空间，这是一种编码过程，因此这张神经网络也叫"编码器"。

解码器则从潜空间映射回输入空间，如作为噪声分布的平均值。也可以用另一个映射到方差的神经网络，为简单起见一般都省略掉了。这时，方差可以用梯度下降法进行优化。

优化模型常用的两个术语是"重构误差（reconstruction error）"和"KL散度"。它们都来自概率模型的自由能表达式（Free Energy Expression ），因而根据噪声分布和数据的假定先验而有所不同。例如，像IMAGENET这样的标准VAE任务一般都假设具有高斯分布噪声，但二值化的MNIST这样的任务则需要伯努利噪声。自由能表达式中的KL散度使得与p分布重叠的q分布的概率质量最大化，但这样可能导致出现搜寻模态（Mode-Seeking Behaviour）。自由能表达式的剩余部分是"重构"项，需要用采样逼近来计算其期望。

系统阐述
----

VAE的基本框架。模型接受x为输入。编码器将其压缩到潜空间。解码器以在潜空间采样的信息为输入，并产生{\displaystyle {x'}}，使其与x尽可能相似。
从建立概率模型的角度来看，人们希望用他们选择的参数化概率分布{\displaystyle p\_{\theta }(x)=p(x|\theta )}使数据x的概率最大化。这一分布常是高斯分布{\displaystyle N(x|\mu ,\sigma )}，分别参数化为\mu 和\sigma ，作为指数族的一员很容易作为噪声分布来处理。简单的分布很容易最大化，但如果假设了潜质（latent）z的先验分布，可能会产生难以解决的积分。让我们通过对z的边缘化找到{\displaystyle p\_{\theta }(x)}。

{\displaystyle p\_{\theta }(x)=\int \_{z}p\_{\theta }({x,z})\,dz,}
其中，{\displaystyle p\_{\theta }({x,z})}表示可观测数据x于{\displaystyle p\_{\theta }}下的联合分布，和在潜空间中的形式（也就是编码后的{\displaystyle z}）。根据连锁法则，方程可以改写为

{\displaystyle p\_{\theta }(x)=\int \_{z}p\_{\theta }({x|z})p\_{\theta }(z)\,dz}
在香草VAE中，通常认为z是实数的有限维向量，{\displaystyle p\_{\theta }({x|z})}则是高斯分布。那么{\displaystyle p\_{\theta }(x)}便是高斯分布的混合物。

现在，可将输入数据和其在潜空间中的表示的映射定义为

* 先验{\displaystyle p\_{\theta }(z)}
* 似然值{\displaystyle p\_{\theta }(x|z)}
* 后验{\displaystyle p\_{\theta }(z|x)}

不幸的是，对{\displaystyle p\_{\theta }(x)}的计算十分困难。为了加快计算速度，有必要再引入一个函数，将后验分布近似为

{\displaystyle q\_{\phi }({z|x})\approx p\_{\theta }({z|x})}
其中\phi 是参数化的q的实值集合。这有时也被称为"摊销推理"（amortized inference），因为可以通过"投资"找到好的{\displaystyle q\_{\phi }}，之后不用积分便可以从x快速推断出z。

这样，问题就变成了找到一个好的概率自编码器，其中条件似然分布{\displaystyle p\_{\theta }(x|z)}由概率解码器（probabilistic decoder）计算得到，后验分布近似{\displaystyle q\_{\phi }(z|x)}由概率编码器（probabilistic encoder）计算得到。

下面将编码器参数化为{\displaystyle E\_{\phi }}，将解码器参数化为{\displaystyle D\_{\theta }}。

证据下界（Evidence lower bound，ELBO）
-------------------------------

如同每个深度学习问题，为了通过反向传播算法更新神经网络的权重，需要定义一个可微损失函数。

对于VAE，这一思想可以实现为联合优化生成模型参数\theta 和\phi ，以减少输入输出间的重构误差，并使{\displaystyle q\_{\phi }({z|x})}尽可能接近{\displaystyle p\_{\theta }(z|x)}。重构损失常用均方误差和交叉熵。

作为两个分布之间的距离损失，反向KL散度{\displaystyle D\_{KL}(q\_{\phi }({z|x})\parallel p\_{\theta }({z|x}))}可以很有效地将{\displaystyle q\_{\phi }({z|x})}挤压到{\displaystyle p\_{\theta }(z|x)}之下。

刚刚定义的距离损失可扩展为

{\displaystyle {\begin{aligned}D\_{KL}(q\_{\phi }({z|x})\parallel p\_{\theta }({z|x}))&=\mathbb {E} \_{z\sim q\_{\phi }(\cdot |x)}\left[\ln {\frac {q\_{\phi }(z|x)}{p\_{\theta }(z|x)}}\right]\\&=\mathbb {E} \_{z\sim q\_{\phi }(\cdot |x)}\left[\ln {\frac {q\_{\phi }({z|x})p\_{\theta }(x)}{p\_{\theta }(x,z)}}\right]\\&=\ln p\_{\theta }(x)+\mathbb {E} \_{z\sim q\_{\phi }(\cdot |x)}\left[\ln {\frac {q\_{\phi }({z|x})}{p\_{\theta }(x,z)}}\right]\end{aligned}}}

现在定义证据下界（Evidence lower bound，ELBO）：



L

θ
,
ϕ

(
x
)
:=

E

z
∼

q

ϕ

(
⋅

|

x
)

[

ln
⁡

p

θ

(
x
,
z
)

q

ϕ

(

z

|

x

)

]

=
ln
⁡

p

θ

(
x
)
−

D

K
L

(

q

ϕ

(

⋅

|

x

)
∥

p

θ

(

⋅

|

x

)
)

{\displaystyle L\_{\theta ,\phi }(x):=\mathbb {E} \_{z\sim q\_{\phi }(\cdot |x)}\left[\ln {\frac {p\_{\theta }(x,z)}{q\_{\phi }({z|x})}}\right]=\ln p\_{\theta }(x)-D\_{KL}(q\_{\phi }({\cdot |x})\parallel p\_{\theta }({\cdot |x}))}

{\displaystyle L_{\theta ,\phi }(x):=\mathbb {E} _{z\sim q_{\phi }(\cdot |x)}\left[\ln {\frac {p_{\theta }(x,z)}{q_{\phi }({z|x})}}\right]=\ln p_{\theta }(x)-D_{KL}(q_{\phi }({\cdot |x})\parallel p_{\theta }({\cdot |x}))}使ELBO最大化



θ

∗

,

ϕ

∗

=

argmax

θ
,
ϕ


L

θ
,
ϕ

(
x
)

{\displaystyle \theta ^{\*},\phi ^{\*}={\underset {\theta ,\phi }{\operatorname {argmax} }}\,L\_{\theta ,\phi }(x)}

{\displaystyle \theta ^{*},\phi ^{*}={\underset {\theta ,\phi }{\operatorname {argmax} }}\,L_{\theta ,\phi }(x)}等于同时最大化{\displaystyle \ln p\_{\theta }(x)}、最小化{\displaystyle D\_{KL}(q\_{\phi }({z|x})\parallel p\_{\theta }({z|x}))}。即，最大化观测数据似然的对数值，同时最小化近似后验{\displaystyle q\_{\phi }(\cdot |x)}与精确后验{\displaystyle p\_{\theta }(\cdot |x)}的差值。

给出的形式不大方便进行最大化，可以用下面的等价形式：



L

θ
,
ϕ

(
x
)
=

E

z
∼

q

ϕ

(
⋅

|

x
)

[

ln
⁡

p

θ

(
x

|

z
)

]

−

D

K
L

(

q

ϕ

(

⋅

|

x

)
∥

p

θ

(
⋅
)
)

{\displaystyle L\_{\theta ,\phi }(x)=\mathbb {E} \_{z\sim q\_{\phi }(\cdot |x)}\left[\ln p\_{\theta }(x|z)\right]-D\_{KL}(q\_{\phi }({\cdot |x})\parallel p\_{\theta }(\cdot ))}

{\displaystyle L_{\theta ,\phi }(x)=\mathbb {E} _{z\sim q_{\phi }(\cdot |x)}\left[\ln p_{\theta }(x|z)\right]-D_{KL}(q_{\phi }({\cdot |x})\parallel p_{\theta }(\cdot ))}其中{\displaystyle \ln p\_{\theta }(x|z)}实现为{\displaystyle \|x-D\_{\theta }(z)\|\_{2}^{2}}，因为这是在加性常数的前提下{\displaystyle x\sim {\mathcal {N}}(D\_{\theta }(z),I)}得到的东西。也就是说，我们把x在z上的条件分布建模为以{\displaystyle D\_{\theta }(z)}为中心的高斯分布。{\displaystyle q\_{\phi }(z|x)}和{\displaystyle p\_{\theta }(z)}的分布通常也被选为高斯分布，因为{\displaystyle z|x\sim {\mathcal {(}}E\_{\phi }(x),\sigma \_{\phi }(x)^{2}I)}和{\displaystyle z\sim {\mathcal {(}}0,I)}可以通过高斯分布的KL散度公式得到：



L

θ
,
ϕ

(
x
)
=
−

1
2

E

z
∼

q

ϕ

(
⋅

|

x
)

[

‖
x
−

D

θ

(
z
)

‖

2

2

]

−

1
2

(

N

σ

ϕ

(
x

)

2

+
‖

E

ϕ

(
x
)

‖

2

2

−
2
N
ln
⁡

σ

ϕ

(
x
)

)

+
C
o
n
s
t

{\displaystyle L\_{\theta ,\phi }(x)=-{\frac {1}{2}}\mathbb {E} \_{z\sim q\_{\phi }(\cdot |x)}\left[\|x-D\_{\theta }(z)\|\_{2}^{2}\right]-{\frac {1}{2}}\left(N\sigma \_{\phi }(x)^{2}+\|E\_{\phi }(x)\|\_{2}^{2}-2N\ln \sigma \_{\phi }(x)\right)+Const}

{\displaystyle L_{\theta ,\phi }(x)=-{\frac {1}{2}}\mathbb {E} _{z\sim q_{\phi }(\cdot |x)}\left[\|x-D_{\theta }(z)\|_{2}^{2}\right]-{\frac {1}{2}}\left(N\sigma _{\phi }(x)^{2}+\|E_{\phi }(x)\|_{2}^{2}-2N\ln \sigma _{\phi }(x)\right)+Const}

重参数化
----

重参数化技巧方案。随机变量{\displaystyle {\varepsilon }}可作为外部输入注入潜空间z，这样一来便可以不更新随机变量，而反向传播梯度。
有效搜索到



θ

∗

,

ϕ

∗

=

argmax

θ
,
ϕ


L

θ
,
ϕ

(
x
)

{\displaystyle \theta ^{\*},\phi ^{\*}={\underset {\theta ,\phi }{\operatorname {argmax} }}\,L\_{\theta ,\phi }(x)}

{\displaystyle \theta ^{*},\phi ^{*}={\underset {\theta ,\phi }{\operatorname {argmax} }}\,L_{\theta ,\phi }(x)}的典型方法是梯度下降法。

它可以很直接地找到



∇

θ

E

z
∼

q

ϕ

(
⋅

|

x
)

[

ln
⁡

p

θ

(
x
,
z
)

q

ϕ

(

z

|

x

)

]

=

E

z
∼

q

ϕ

(
⋅

|

x
)

[

∇

θ

ln
⁡

p

θ

(
x
,
z
)

q

ϕ

(

z

|

x

)

]

{\displaystyle \nabla \_{\theta }\mathbb {E} \_{z\sim q\_{\phi }(\cdot |x)}\left[\ln {\frac {p\_{\theta }(x,z)}{q\_{\phi }({z|x})}}\right]=\mathbb {E} \_{z\sim q\_{\phi }(\cdot |x)}\left[\nabla \_{\theta }\ln {\frac {p\_{\theta }(x,z)}{q\_{\phi }({z|x})}}\right]}

{\displaystyle \nabla _{\theta }\mathbb {E} _{z\sim q_{\phi }(\cdot |x)}\left[\ln {\frac {p_{\theta }(x,z)}{q_{\phi }({z|x})}}\right]=\mathbb {E} _{z\sim q_{\phi }(\cdot |x)}\left[\nabla _{\theta }\ln {\frac {p_{\theta }(x,z)}{q_{\phi }({z|x})}}\right]}但是，



∇

ϕ

E

z
∼

q

ϕ

(
⋅

|

x
)

[

ln
⁡

p

θ

(
x
,
z
)

q

ϕ

(

z

|

x

)

]

{\displaystyle \nabla \_{\phi }\mathbb {E} \_{z\sim q\_{\phi }(\cdot |x)}\left[\ln {\frac {p\_{\theta }(x,z)}{q\_{\phi }({z|x})}}\right]}

{\displaystyle \nabla _{\phi }\mathbb {E} _{z\sim q_{\phi }(\cdot |x)}\left[\ln {\frac {p_{\theta }(x,z)}{q_{\phi }({z|x})}}\right]}不允许将{\displaystyle \nabla \_{\phi }}置于期望中，因为\phi 出现在概率分布本身之中。**重参数化技巧**（也被称为随机反向传播）则绕过了这个难点。

最重要的例子是当{\displaystyle z\sim q\_{\phi }(\cdot |x)}遵循正态分布时，如{\displaystyle {\mathcal {N}}(\mu \_{\phi }(x),\Sigma \_{\phi }(x))}。

重参数化技巧之后的VAE方案

可以通过让{\displaystyle {\boldsymbol {\varepsilon }}\sim {\mathcal {N}}(0,{\boldsymbol {I}})}构成"标准随机数生成器"来实现重参数化，并将{\displaystyle z}构建为{\displaystyle z=\mu \_{\phi }(x)+L\_{\phi }(x)\epsilon }。这里，{\displaystyle L\_{\phi }(x)}通过科列斯基分解得到：



Σ

ϕ

(
x
)
=

L

ϕ

(
x
)

L

ϕ

(
x

)

T

{\displaystyle \Sigma \_{\phi }(x)=L\_{\phi }(x)L\_{\phi }(x)^{T}}

{\displaystyle \Sigma _{\phi }(x)=L_{\phi }(x)L_{\phi }(x)^{T}}接着我们有



∇

ϕ

E

z
∼

q

ϕ

(
⋅

|

x
)

[

ln
⁡

p

θ

(
x
,
z
)

q

ϕ

(

z

|

x

)

]

=

E

ϵ

[

∇

ϕ

ln
⁡

p

θ

(
x
,

μ

ϕ

(
x
)
+

L

ϕ

(
x
)
ϵ
)

q

ϕ

(

μ

ϕ

(
x
)
+

L

ϕ

(
x
)
ϵ

|

x
)

]

{\displaystyle \nabla \_{\phi }\mathbb {E} \_{z\sim q\_{\phi }(\cdot |x)}\left[\ln {\frac {p\_{\theta }(x,z)}{q\_{\phi }({z|x})}}\right]=\mathbb {E} \_{\epsilon }\left[\nabla \_{\phi }\ln {\frac {p\_{\theta }(x,\mu \_{\phi }(x)+L\_{\phi }(x)\epsilon )}{q\_{\phi }(\mu \_{\phi }(x)+L\_{\phi }(x)\epsilon |x)}}\right]}

{\displaystyle \nabla _{\phi }\mathbb {E} _{z\sim q_{\phi }(\cdot |x)}\left[\ln {\frac {p_{\theta }(x,z)}{q_{\phi }({z|x})}}\right]=\mathbb {E} _{\epsilon }\left[\nabla _{\phi }\ln {\frac {p_{\theta }(x,\mu _{\phi }(x)+L_{\phi }(x)\epsilon )}{q_{\phi }(\mu _{\phi }(x)+L_{\phi }(x)\epsilon |x)}}\right]}由此，我们得到了梯度的无偏估计，这就可以应用随机梯度下降法了。

由于我们重参数化了z，所以需要找到{\displaystyle q\_{\phi }(z|x)}。令q\_0为\epsilon 的概率密度函数，那么


ln
⁡

q

ϕ

(
z

|

x
)
=
ln
⁡

q

0

(
ϵ
)
−
ln
⁡

|

det
(

∂

ϵ

z
)

|

{\displaystyle \ln q\_{\phi }(z|x)=\ln q\_{0}(\epsilon )-\ln |\det(\partial \_{\epsilon }z)|}

{\displaystyle \ln q_{\phi }(z|x)=\ln q_{0}(\epsilon )-\ln |\det(\partial _{\epsilon }z)|}，其中{\displaystyle \partial \_{\epsilon }z}是\epsilon 相对于z的雅可比矩阵。由于{\displaystyle z=\mu \_{\phi }(x)+L\_{\phi }(x)\epsilon }，这就是


ln
⁡

q

ϕ

(
z

|

x
)
=
−

1
2

‖
ϵ

‖

2

−
ln
⁡

|

det

L

ϕ

(
x
)

|

−

n
2

ln
⁡
(
2
π
)

{\displaystyle \ln q\_{\phi }(z|x)=-{\frac {1}{2}}\|\epsilon \|^{2}-\ln |\det L\_{\phi }(x)|-{\frac {n}{2}}\ln(2\pi )}

{\displaystyle \ln q_{\phi }(z|x)=-{\frac {1}{2}}\|\epsilon \|^{2}-\ln |\det L_{\phi }(x)|-{\frac {n}{2}}\ln(2\pi )}

变体
--

许多VAE的应用和扩展已被用来使其适应其他领域，并提升性能。

\beta -VAE是带加权KL散度的实现，用于自动发现并解释因子化的潜空间形式。这种实现可以对大于1的\beta 值强制进行流形分解。这个架构可以在无监督下发现解耦的潜因子。

条件性VAE（CVAE）在潜空间中插入标签信息，强制对所学数据进行确定性约束表示（Deterministic Constrained Representation）。

一些结构可以直接处理生成样本的质量，或实现多个潜空间，以进一步改善表征学习的效果。

一些结构将VAE和生成对抗网络混合起来，以获得混合模型。

另见
--

* 自编码器
* 人工神经网络
* 深度学习
* 生成对抗网络
* 表征学习
* 稀松字典学习
* 数据增强
* 反向传播算法