在“深度学习”系列中,我们不会看到如何使用深度学习来解决端到端的复杂问题,就像我们在《A.I. Odyssey》中所做的那样。我们更愿意看看不同的技术,以及一些示例和应用程序。
1、引言
① 什么是自动编码器(AutoEncoder,AE)?
神经网络以各种形状和大小存在,并且通常以其输入和输出数据类型为特征。例如,图像分类器是用卷积神经网络构建的。它们将图像作为输入,并输出类的概率分布。
自动编码器是一类输入与输出相同的神经网络。它们的工作原理是将输入压缩到潜在空间表示中,然后从该表示中重建输出。
我们将看到如何使用修改版本的输入会更有趣。
简单的自动编码器架构 —— 输入被压缩,然后重建。
② 卷积自动编码器(Convolutional AutoEncoders,CAE)
自动编码器的一个非常流行的用途是将它们应用于图像。**诀窍是用卷积层代替完全连接的层。**这样,连同池化层,将输入从宽和细(假设100×100像素,3通道RGB)转换为窄和厚。这有助于网络从图像中提取视觉特征,从而获得更准确的潜在空间表示。重建过程使用上采样(upsampling)和卷积(convolution)。
由此产生的网络被称为卷积自动编码器。
卷积自动编码器架构 —— 它将宽而细的输入空间映射到窄而厚的潜在空间。
③ 重建质量
输入图像的重建往往是模糊的,质量较低。这是我们在压缩过程中丢失一些信息的结果。
训练CAE重建其输入。
重建的图像很模糊。
2、CAE的使用
案例1:超基础图像重建(Ultra-basic image reconstruction)
卷积自动编码器可以用于重建。例如,它们可以学习去除图像中的噪声,或者重建缺失的部分。
为此,我们不使用相同的图像作为输入和输出,而是使用有噪声的版本作为输入,干净的版本作为输出。在这个过程中,神经网络学会填补图像中的空白。
让我们看看CAE可以做些什么来替换眼睛的部分图像。假设有一个十字准星,我们想把它移开。我们可以手动创建数据集,这非常方便。
CAE接受过移除准星的训练。
即使它是模糊的,重建的输入没有留下十字准星。
现在我们的自动编码器已经训练好了,我们可以用它来去除我们从未见过的眼睛图片上的十字准星。
案例2:超基础图像上色(Ultra-basic image colorization)
在这个例子中,CAE将学习从圆形和正方形的图像映射到相同的图像,但是圆形是红色的,正方形是蓝色的。
训练CAE为图像上色。
虽然重建的图像很模糊,但颜色基本正确。
CAE为图像的正确部分上色方面做得很好。它知道圆形是红色的,正方形是蓝色的。紫色来自蓝色和红色的混合,网络在圆形和正方形之间徘徊。
现在我们的自动编码器已经训练好了,我们可以用它来给我们以前从未见过的图片上色。
3、先进的应用
上面的例子只是概念证明,展示了卷积自动编码器可以做什么。
更令人兴奋的应用包括全图像着色、潜在空间聚类或生成更高分辨率的图像。后者是用低分辨率作为输入,高分辨率作为输出得到的。
4、总结
在这篇文章中,我们已经看到了如何使用自动编码器神经网络来压缩、重建和清理数据。获得图像作为输出是一件非常令人兴奋和有趣的事情。
注意:有一个修改版本的AEs称为变分自动编码器(Variational Autoencoders),用于图像生成。
你可以试试那边的代码:
- Convolutional Autoencoder:https://github.com/despoisj/ConvolutionalAutoencoder?ref=hackernoon.com
5、自动编码器(AE)vs. 卷积自动编码器(CAE)vs. 变分自动编码器(VAE)
自动编码器(AE)、卷积自动编码器(CAE)和变分自动编码器(VAE)是深度学习中常见的无监督学习模型,它们在结构和应用上存在一些区别和联系。
① 自动编码器(AE)
AE由编码器和解码器组成,用于将高维数据压缩成低维数据,再从这个低维表示重构原始数据。AE主要用于数据压缩和去噪,但由于其潜在空间的不连续性,不适用于数据生成任务。
AE的训练目标是最小化输入和重构之间的差异,通常使用均方误差作为损失函数。
② 卷积自动编码器(CAE)
CAE是AE的一个变体,它使用卷积层代替了传统的全连接层,特别适合处理图像数据。CAE能够很好地保留图像的空间结构信息,常用于去噪和特征提取。
CAE的编码器和解码器部分通常由卷积层、激活函数和池化层组成,能够处理任意尺寸的输入图像。
③ 变分自动编码器(VAE)
VAE在AE的基础上引入了概率分布的概念,其编码器输出潜在变量的参数(均值和标准差),然后从这个参数化的分布中采样得到潜在变量,再输入到解码器进行重构。
VAE的训练不仅考虑重构损失,还包括一个正则项——KL散度,用于衡量潜在变量分布与先验分布之间的差异,这使得VAE的潜在空间更加规则化,适合于数据生成任务。
VAE通过重参数化技巧解决了在潜在空间中采样的梯度问题,允许模型在训练过程中进行有效的反向传播。
AE、CAE和VAE都适用于学习数据表示的无监督模型,但它们在结构和应用上各有侧重。AE主要用于数据压缩和去噪,CAE适用于图像数据的处理,而VAE则因其潜在空间的连续性和规则化,适合于数据生成和样本的多样性生成。VAE可以看作AE的升级版,它通过引入概率分布和KL散度,解决了AE在数据生成上的局限性。
6、参考资料
- Autoencoders - Deep Learning bits #1:https://hackernoon.com/autoencoders-deep-learning-bits-1-11731e200694?ref=hackernoon.com
- Convolutional Autoencoder:https://github.com/despoisj/ConvolutionalAutoencoder?ref=hackernoon.com
- kimi:https://kimi.moonshot.cn/