深度学习之自编码器(3)自编码器变种
一般而言,自编码器网络训练较为稳定,但是由于损失函数是直接度量重建样本与真实样本的底层特征之间的距离,而不是评价重建样本的逼真度和多样性等抽象指标,因此在某些任务上效果一般,如图片重建,容易出现重建图片边缘模糊,逼真度相对真实图片仍有不小差距。为了尝试让自编码器学习到数据的真是分布,产生了一系列的自编码器变种网络。下面将介绍集中典型的自编码器变种模型。
1. Denoising Auto-Encoder
为了防止神经网络记忆住输入数据的底层特征,Denoising Auto-Encoder给输入数据添加随机的噪声扰动,如给输入
x
\boldsymbol x
x添加采样自高斯分布的噪声
ε
\varepsilon
ε:
x
~
=
x
+
ε
,
ε
∼
N
(
0
,
var
)
\tilde\boldsymbol x=\boldsymbol x+ε,ε\sim\mathcal N(0,\text{var})
x~=x+ε,ε∼N(0,var)
添加噪声后,网络需要从
x
~
\tilde\boldsymbol x
x~学习到数据的真实隐藏变量
z
\boldsymbol z
z,并还原出原始的输入
x
\boldsymbol x
x,如下图所示:
模型的优化目标为:
θ
∗
=
argmin
⏟
θ
dist
(
h
θ
2
(
g
θ
1
(
x
~
)
)
,
x
)
θ^*=\underbrace{\text{argmin}}_θ \ \text{dist}(h_{θ_2} (g_{θ_1} (\tilde\boldsymbol x)),\boldsymbol x)
θ∗=θ
argmin dist(hθ2(gθ1(x~)),x)
2. Dropout Auto-Encoder
自编码器网络同样面临过拟合的风险,Dropout Auto-Encoder通过随机断开网络的连接来减少网络的表达能力,防止过拟合。Dropout Auto-Encoder实现非常简单,通过在网络层中插入Dropout层即可实现网络连接的随机断开。
3. Adversarial Auto-Encoder
为了能够方便地从某个一致某个已知的先验分布中
p
(
z
)
p(\boldsymbol z)
p(z)采样隐藏变量z,方便利用
p
(
z
)
p(\boldsymbol z)
p(z)来重建输入,对抗自编码器(Adversarial Auto-Encoder)利用额外的判别器网络(Discriminator,简称D网络)来判定降维的隐藏变量
z
\boldsymbol z
z是否采样自先验分布
p
(
z
)
p(\boldsymbol z)
p(z),如下图所示。判别器网络的输入为一个属于
[
0
,
1
]
[0,1]
[0,1]区间的变量,表征隐藏向量是否采样自先验分布
p
(
z
)
p(\boldsymbol z)
p(z):所有采样自先验分布
p
(
z
)
p(\boldsymbol z)
p(z)的
z
\boldsymbol z
z标注为真,采样自编码器的条件概率
q
(
z
∣
x
)
q(\boldsymbol z|\boldsymbol x)
q(z∣x)的标注
z
\boldsymbol z
z为假。通过这种方式训练,处理可以重建样本,还可以约束条件概率分布
q
(
z
∣
x
)
q(\boldsymbol z|\boldsymbol x)
q(z∣x)逼近先验分布
p
(
z
)
p(\boldsymbol z)
p(z)。
对抗自编码器是从下一章要介绍的生成对抗网络算法衍生而来,在学习完对抗生成网络后可以加深对对抗自编码器的理解。