自动编码器:原理、应用与变体
1. 卷积自动编码器实验
1.1 模型训练
我们训练了一个只有20个潜在变量的卷积自动编码器,训练过程持续了50个周期。虽然在第50个周期时模型仍在改进,但为了与之前的模型进行比较,我们停止了训练。
1.2 测试集结果
图18 - 30展示了测试集中的五个示例,以及它们经过卷积自动编码器解压缩后的版本。结果相当不错,解压缩后的图像与原始图像虽不完全相同,但非常接近。
1.3 随机噪声输入
我们尝试给解码器输入随机噪声。由于潜在变量是一个7×7×3的张量,所以噪声值也需要是相同形状的三维体积。图18 - 31显示了输入随机值张量到解码器阶段所产生的图像,结果是随机的斑点图像,这对于随机输入来说是合理的输出。
1.4 潜在变量混合
- 简单混合 :在图18 - 32中,我们对卷积自动编码器中的潜在变量进行混合。取前两行图像的潜在变量进行等量混合,然后解码插值后的变量生成第三行图像。结果有些模糊,但能看出是上面两行图像的混合。
- 多步混合 :图18 - 33展示了与之前相同的三组混合的多步结果。每行的左右两端是对MNIST图像进行编码和解码得到的图像,中间是混合潜在变量后解码的结果。这并不比简单的自动编码器好多少,说明即使有更多的潜在变量,当使用与训练样本差异较大的输入进行重建时,仍会遇到问题。
1.5 新输入预测
我们将低分辨率的老虎图像输入到卷积神经网络中进行预测,结果如图18 - 34所示。即使眯着眼看,也很难说图像保留了老虎眼睛、嘴两侧和鼻子周围的主要深色区域,因为卷积自动编码器试图在数字的潜在空间中找到老虎,所以不能期望它有好的表现。
1.6 去噪应用
1.6.1 噪声添加
自动编码器的一个流行应用是去除样本中的噪声。我们使用MNIST数据集,为图像添加随机噪声。在每个像素处,从均值为0的高斯分布中选取一个值,将其添加到像素值中,然后将结果裁剪到0到1的范围内。图18 - 35展示了添加噪声前后的MNIST训练图像。
1.6.2 去噪模型架构
我们使用一个与图18 - 29结构相似但滤波器数量不同的自动编码器进行去噪,其架构如图18 - 36所示:
32 x (3x3)
ReLU
32 x (3x3)
ReLU
32 x (3x3)
ReLU
1 x (3x3)
sigmoid
2x2
2x2
2x2
32 x (3x3)
ReLU
2x2
28 x 28 x 1
28 x 28 x 1
1.6.3 模型训练
训练时,将有噪声的图像作为输入,对应的无噪声图像作为目标输出。使用全部60,000张图像进行100个周期的训练。解码步骤结束时的张量大小为7×7×32,共1,568个数字,这里的“瓶颈”大小是输入的两倍。由于我们的目标是去噪,所以最小化潜在变量的数量不是主要关注点。
1.6.4 模型性能
图18 - 37展示了一些有噪声的输入和自动编码器的输出,去噪效果很好,像素清理得非常干净。
1.6.5 模型简化
为了简化模型,我们遵循显式上采样和下采样层被步长和转置卷积取代的趋势,将图18 - 36的模型简化为图18 - 38的模型,该模型仅由五个卷积层组成:
32 x (3x3)
ReLU
stride (2,2)
32 x (3x3)
ReLU
repeat (2,2)
32 x (3x3)
ReLU
repeat (2,2)
32 x (3x3)
ReLU
stride (2,2)
1 x (3x3)
sigmoid
28 x 28 x 1
28 x 28 x 1
图18 - 39展示了简化模型的去噪结果,输出与原模型相当接近,但存在一些小差异。原模型在没有GPU支持的2014年末款iMac上每个周期大约需要300秒,而简化模型每个周期仅需约200秒,节省了约三分之一的训练时间。
2. 变分自动编码器(VAE)
2.1 VAE概述
之前的自动编码器试图找到最有效的方法来压缩输入以便后续重建,而变分自动编码器(VAE)与这些网络具有相同的总体架构,但在聚集潜在变量和填充潜在空间方面做得更好。此外,VAE具有一定的不可预测性,之前的自动编码器是确定性的,而VAE在编码阶段使用概率思想(即随机数),相同的输入每次通过系统时会产生略有不同的输出。
2.2 潜在变量分布
在之前的自动编码器中,我们没有对潜在变量的结构施加任何条件。图18 - 20显示,全连接编码器似乎自然地将潜在变量分组为从原点(0, 0)向右和向上辐射的团块,这并非设计目标,而是网络结构的自然结果。当将图18 - 38中的卷积网络的瓶颈减少到两个潜在变量时,也会产生类似的结果,如图18 - 40所示。从图中可以看出,选择密集或稀疏区域的潜在变量进行解码,得到的图像往往不像数字。理想情况下,每个数字应该有自己的区域,区域之间不重叠,且没有大的空白空间。虽然无法填充空白区域,但可以尝试将混合区域分开,使每个数字占据潜在空间的自己区域。
2.3 VAE结构与目标
2.3.1 目标概述
我们的目标是创建一个生成器,它可以接受随机潜在变量并生成与具有相似潜在值的输入相似的新输出。在训练过程中,除了确保潜在变量能够重建输入外,还希望潜在变量满足三个属性:
- 所有潜在变量应聚集在潜在空间的一个区域,以便知道随机值的范围。
- 由相似输入(即显示相同数字的图像)产生的潜在变量应聚集在一起。
- 最小化潜在空间中的空白区域。
2.3.2 潜在变量聚类
为了将所有潜在变量聚集在一起,我们在误差项中施加一个约束,要求每个潜在变量的值在绘制时接近形成单位高斯分布。高斯分布是著名的钟形曲线,均值为0,标准差为1。在训练完成后,潜在变量将按照这种模式分布。如果从这个分布中选择新的值输入到解码器,更有可能生成与训练集相似的输出,并且样本会自然地聚集在同一区域。然而,让潜在变量完全符合单位高斯分布是一个理想情况,实际中存在变量与高斯分布的匹配程度和系统重建输入准确性之间的权衡,系统会在训练过程中自动学习这种权衡。
2.3.3 数字聚集
我们的下一个目标是让具有相同数字的所有图像的潜在值聚集在一起。假设已经实现了这个目标,那么所有数字2的潜在变量应该彼此接近。进一步地,我们可以将有环的2和无环的2分别聚集在一起,它们之间的区域填充有类似有环的2的潜在变量。VAE不仅能学习不同的特征,还能在学习过程中自动为我们创建所有不同的分组。
2.3.4 引入随机性
为了实现数字聚集,我们在编码后的潜在变量中引入随机性。假设系统输入一个数字2的图像,编码器找到其潜在变量后,在将这些变量传递给解码器之前,为每个潜在变量添加一个小的随机值。由于相同风格的示例聚集在一起,从扰动后的潜在变量生成的输出图像将与输入相似,误差也会较低。通过在训练时对扰动输出与输入不匹配的情况给予大的误差分数,系统会学习到接近输入原始潜在值的潜在值应该产生接近输入图像的图像,从而使相似输入的潜在值聚集在一起。
然而,直接添加随机数会导致无法使用反向传播算法进行训练,因为反向传播需要计算网络中的梯度,而直接添加随机数的操作无法按要求计算梯度。VAE使用重参数化技巧来解决这个问题,即从概率分布中抽取随机变量作为新的潜在变量,而不是直接添加随机数。具体来说,编码器为每个潜在变量生成一对数字,即高斯分布的中心和标准差,然后从该分布中抽取一个随机数作为新的潜在变量。
以下是VAE的重参数化过程的示意图:
graph LR
A[编码器] --> B[计算潜在值]
B --> C[计算中心]
B --> D[计算标准差]
C --> E[高斯分布]
D --> E
E --> F[随机选择值]
F --> G[新的潜在值]
在实际应用中,对于多个潜在变量,我们为每个潜在变量创建一个高斯分布并进行采样,然后将所有新的潜在变量合并成一个列表。例如,对于三个潜在变量的情况,如图18 - 47所示:
Encoder
3 latent
values
Compute
3 spreads
Compute
3 centers
new set of
3 latent values
在学习过程中,网络会学习每个高斯分布的中心和标准差。这就是为什么每次将样本输入到训练好的VAE中时,会得到略有不同的结果,因为编码器在分割之前是确定性的,但之后系统会为每个潜在变量从其高斯分布中随机选择一个值,而这些值每次都不同。
综上所述,卷积自动编码器在图像重建和去噪方面有一定的应用,但在处理新输入和混合潜在变量时存在局限性。变分自动编码器通过引入概率思想和重参数化技巧,在潜在变量的分布和聚集方面有更好的表现,为生成新的输出提供了更有效的方法。
2.4 VAE的优势与挑战总结
2.4.1 优势
- 潜在空间的优化 :VAE能够更好地聚集潜在变量和填充潜在空间,使得潜在空间的利用更加合理。每个数字在潜在空间中有相对独立的区域,这有助于生成更有意义的输出。例如,在生成新的数字图像时,通过控制潜在变量的取值,可以更有针对性地生成特定数字的图像。
- 生成多样性 :由于VAE在编码阶段引入了随机性,相同的输入每次通过系统时会产生略有不同的输出。这为生成多样化的输出提供了可能,在图像生成、数据增强等领域具有很大的应用潜力。
- 自动特征学习 :VAE能够自动学习数据的特征,并将具有相同特征的数据聚集在一起。例如,在处理数字图像时,它可以自动区分有环和无环的2,并将它们分别聚集,无需人工手动定义这些特征。
2.4.2 挑战
- 随机性带来的不确定性 :虽然随机性为VAE带来了生成多样性的优势,但也增加了结果的不确定性。在某些对结果稳定性要求较高的应用中,这种不确定性可能会成为一个问题。
- 训练难度 :VAE的训练需要平衡潜在变量与高斯分布的匹配程度和系统重建输入的准确性,这增加了训练的难度。此外,重参数化技巧虽然解决了反向传播的问题,但也增加了模型的复杂度。
- 空白区域问题 :尽管VAE可以尝试将混合区域分开,但对于潜在空间中的空白区域,仍然无法有效填充。这意味着在某些情况下,从空白区域选择潜在变量进行解码时,可能无法得到有意义的输出。
3. 自动编码器的应用拓展
3.1 图像生成
自动编码器在图像生成领域有着广泛的应用。通过训练自动编码器,可以学习到图像的潜在表示,然后通过解码器生成新的图像。变分自动编码器在这方面表现更为出色,它可以生成多样化的图像,并且可以通过控制潜在变量的取值来生成特定风格或类别的图像。例如,在动漫风格图像生成中,可以通过训练VAE学习动漫图像的潜在特征,然后生成新的动漫风格图像。
3.2 数据压缩
自动编码器的原始目标之一就是数据压缩。通过将输入数据编码为潜在变量,可以减少数据的维度,从而实现数据的压缩。在图像、音频等领域,数据压缩可以减少存储空间和传输带宽的需求。例如,在图像存储中,使用自动编码器将高分辨率图像压缩为低维的潜在变量,在需要时再通过解码器恢复图像。
3.3 异常检测
自动编码器可以用于异常检测。正常数据经过自动编码器编码和解码后,重建误差通常较小;而异常数据的重建误差会较大。因此,可以通过设置一个合适的阈值,当重建误差超过阈值时,认为输入数据是异常数据。例如,在工业生产中,可以使用自动编码器检测产品的缺陷,将正常产品的图像作为训练数据,当检测到重建误差较大的图像时,判断该产品可能存在缺陷。
3.4 数据去噪
如前文所述,自动编码器在数据去噪方面有着很好的应用效果。通过训练自动编码器,使其学习到无噪声数据的特征,然后将有噪声的数据输入到自动编码器中,解码器可以输出去噪后的图像。这种方法在图像、音频等领域都有应用,例如去除图像中的椒盐噪声、音频中的背景噪声等。
4. 自动编码器的未来发展趋势
4.1 与其他技术的融合
自动编码器可能会与其他深度学习技术,如生成对抗网络(GAN)、强化学习等进行融合。例如,将VAE与GAN结合,可以充分发挥两者的优势,生成更高质量的图像。在强化学习中,自动编码器可以用于学习环境的潜在表示,提高智能体的学习效率。
4.2 更复杂的结构设计
未来可能会设计出更复杂的自动编码器结构,以进一步提高其性能。例如,引入注意力机制,使自动编码器能够更加关注输入数据的重要部分;或者设计更深层次的网络结构,学习更高级的特征表示。
4.3 跨领域应用拓展
随着自动编码器技术的不断发展,它将在更多领域得到应用。除了图像、音频等领域,自动编码器还可能应用于医疗、金融、交通等领域。例如,在医疗领域,用于疾病诊断和医学图像分析;在金融领域,用于风险评估和欺诈检测。
5. 总结
自动编码器作为一种重要的深度学习模型,在图像重建、去噪、生成等方面有着广泛的应用。卷积自动编码器在处理图像数据时具有一定的优势,但在处理新输入和混合潜在变量时存在局限性。变分自动编码器通过引入概率思想和重参数化技巧,在潜在变量的分布和聚集方面有更好的表现,为生成新的输出提供了更有效的方法。
未来,自动编码器有望与其他技术融合,设计出更复杂的结构,并在更多领域得到应用。然而,自动编码器也面临着一些挑战,如随机性带来的不确定性、训练难度等,需要在未来的研究中不断解决。
| 自动编码器类型 | 优势 | 局限性 | 应用场景 |
|---|---|---|---|
| 卷积自动编码器 | 在图像重建和去噪方面表现较好 | 处理新输入和混合潜在变量时存在问题 | 图像重建、去噪 |
| 变分自动编码器 | 潜在空间优化、生成多样性、自动特征学习 | 随机性带来不确定性、训练难度大 | 图像生成、数据增强 |
graph LR
A[自动编码器] --> B[卷积自动编码器]
A --> C[变分自动编码器]
B --> D[图像重建]
B --> E[去噪]
C --> F[图像生成]
C --> G[数据增强]
通过对自动编码器的深入研究和不断改进,我们可以更好地利用其优势,解决其面临的挑战,为各个领域的发展提供更强大的技术支持。
超级会员免费看
951

被折叠的 条评论
为什么被折叠?



