自动编码器 在训练卷积神经网络(CNN)时,一个问题是需要大量的标记数据。例如,在图像分类任务中,我们需要将图像分为不同的类别,这是一项手动操作。 课前测验 然而,我们可能希望使用原始的(未标记的)数据来训练CNN特征提取器,这被称为自监督学习。与标签不同,我们将训练图像作为网络的输入和输出。自动编码器的主要思想是,我们将有一个编码器网络,它将输入图像转换为一些潜在空间(通常只是较小尺寸的向量),然后是一个解码器网络,其目标是重建原始图像。 ✅ 自动编码器是一种“用于学习无标签数据的有效编码的人工神经网络”。 由于我们在训练自动编码器以尽可能多地捕获原始图像中的信息以便准确重建,因此网络试图找到输入图像的最佳嵌入以捕捉其含义。
在训练卷积神经网络(CNN)时,一个问题是需要大量的标记数据。例如,在图像分类任务中,我们需要将图像分为不同的类别,这是一项手动操作。
然而,我们可能希望使用原始的(未标记的)数据来训练CNN特征提取器,这被称为自监督学习。与标签不同,我们将训练图像作为网络的输入和输出。自动编码器的主要思想是,我们将有一个编码器网络,它将输入图像转换为一些潜在空间(通常只是较小尺寸的向量),然后是一个解码器网络,其目标是重建原始图像。
✅ 自动编码器是一种“用于学习无标签数据的有效编码的人工神经网络”。
由于我们在训练自动编码器以尽可能多地捕获原始图像中的信息以便准确重建,因此网络试图找到输入图像的最佳嵌入以捕捉其含义。

图片来自Keras 博客
虽然重建原始图像本身似乎没有用,但在某些情况下,自动编码器特别有用:
传统的自动编码器以某种方式减少输入数据的维度,找出输入图像的重要特征。然而,潜在向量往往没有太多意义。换句话说,以MNIST数据集为例,找出哪些数字对应于不同的潜在向量并不是一件容易的事,因为接近的潜在向量不一定对应相同的数字。
另一方面,为了训练生成模型,最好对潜在空间有一些理解。这个想法引导我们进入变分自动编码器(VAE)。
VAE是一种自动编码器,它学习预测潜在参数的统计分布,所谓的潜在分布。例如,我们可能希望潜在向量遵循均值为zmean和标准差为zsigma(均值和标准偏差都是某个维度的向量)的正态分布。VAE中的编码器学习预测这些参数,然后解码器从这个分布中取一个随机向量来重构对象。
总结一下:
z_mean和z_log_sigma(而不是直接预测标准差,我们预测它的对数)samplesample作为输入向量来解码原始图像
变分自动编码器使用一个复杂的损失函数,该函数由两部分组成:
VAEs的一个重要优势是它们可以相对容易地生成新的图像,因为我们知道从哪个分布中抽取潜在向量。例如,如果我们用二维潜在向量训练VAE在MNIST上,我们可以改变潜在向量的组成部分来获得不同的数字:
图片由Dmitry Soshnikov提供
观察当从潜在参数空间的不同部分获取潜在向量时,图像如何相互融合。我们还可以在二维中可视化这个空间:

图片由Dmitry Soshnikov提供
在以下对应的笔记本中了解更多关于自动编码器的知识:
在这节课中,你了解了AI科学家可用的各种类型的自动编码器。你学会了如何构建它们以及如何使用它们来重构图像。你还了解了VAE以及如何使用它来生成新图像。
在这节课中,你了解了如何使用自动编码器处理图像。但它们也可以用于音乐!查看Magenta项目的MusicaVAE项目,该项目使用自动编码器来学习重构音乐。请尝试使用此库进行一些实验,看看你能创造出什么。
参考以下资源了解更多关于自动编码器的知识:
在本笔记本TensorFlow的末尾,你会发现一个“任务”——请以此作为你的作业。
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。