自动编码器


文档摘要

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

自动编码器

在训练卷积神经网络(CNN)时,一个问题是需要大量的标记数据。例如,在图像分类任务中,我们需要将图像分为不同的类别,这是一项手动操作。

课前测验

然而,我们可能希望使用原始的(未标记的)数据来训练CNN特征提取器,这被称为自监督学习。与标签不同,我们将训练图像作为网络的输入和输出。自动编码器的主要思想是,我们将有一个编码器网络,它将输入图像转换为一些潜在空间(通常只是较小尺寸的向量),然后是一个解码器网络,其目标是重建原始图像。

自动编码器是一种“用于学习无标签数据的有效编码的人工神经网络”。

由于我们在训练自动编码器以尽可能多地捕获原始图像中的信息以便准确重建,因此网络试图找到输入图像的最佳嵌入以捕捉其含义。

自动编码器示意图

图片来自Keras 博客

使用自动编码器的场景

虽然重建原始图像本身似乎没有用,但在某些情况下,自动编码器特别有用:

  • 降低图像维度用于可视化训练图像嵌入。通常,自动编码器比PCA提供更好的结果,因为它考虑了图像的空间性质和层次特征。
  • 去噪,即从图像中去除噪声。因为噪声携带了许多无用的信息,自动编码器无法将其全部压缩到相对较小的潜在空间中,因此它只捕捉图像的重要部分。在训练去噪器时,我们从原始图像开始,并使用带有故意添加噪声的图像作为自动编码器的输入。
  • 超分辨率,提高图像分辨率。我们从高分辨率图像开始,并使用低分辨率图像作为自动编码器的输入。
  • 生成模型。一旦我们训练了自动编码器,解码器部分可以用来从随机潜在向量开始创建新对象。

变分自动编码器(VAE)

传统的自动编码器以某种方式减少输入数据的维度,找出输入图像的重要特征。然而,潜在向量往往没有太多意义。换句话说,以MNIST数据集为例,找出哪些数字对应于不同的潜在向量并不是一件容易的事,因为接近的潜在向量不一定对应相同的数字。

另一方面,为了训练生成模型,最好对潜在空间有一些理解。这个想法引导我们进入变分自动编码器(VAE)。

VAE是一种自动编码器,它学习预测潜在参数的统计分布,所谓的潜在分布。例如,我们可能希望潜在向量遵循均值为zmean和标准差为zsigma(均值和标准偏差都是某个维度的向量)的正态分布。VAE中的编码器学习预测这些参数,然后解码器从这个分布中取一个随机向量来重构对象。

总结一下:

  • 从输入向量,我们预测z_meanz_log_sigma(而不是直接预测标准差,我们预测它的对数)
  • 我们从分布N(zmean,exp(zlog_sigma))中采样一个向量sample
  • 解码器尝试使用sample作为输入向量来解码原始图像

图片来自Isaak Dykeman 的博客文章

变分自动编码器使用一个复杂的损失函数,该函数由两部分组成:

  • 重构损失是显示重构图像与目标有多接近的损失函数(它可以是均方误差,MSE)。它与普通自动编码器中的损失函数相同。
  • KL 损失,确保潜在变量分布保持接近正态分布。它是基于库尔贝克-莱布勒散度——一种估计两个统计分布相似性的指标。

VAEs的一个重要优势是它们可以相对容易地生成新的图像,因为我们知道从哪个分布中抽取潜在向量。例如,如果我们用二维潜在向量训练VAE在MNIST上,我们可以改变潜在向量的组成部分来获得不同的数字:

vaemnist

图片由Dmitry Soshnikov提供

观察当从潜在参数空间的不同部分获取潜在向量时,图像如何相互融合。我们还可以在二维中可视化这个空间:

vaemnist cluster

图片由Dmitry Soshnikov提供

✍️ 练习:自动编码器

在以下对应的笔记本中了解更多关于自动编码器的知识:

自动编码器的特性

  • 特定数据 - 它们仅在经过训练的数据类型上表现良好。例如,如果我们训练一个超分辨率网络在花卉上,它在肖像上不会表现得很好。这是因为网络可以通过从训练数据集中学到的细部特征来生成更高分辨率的图像。
  • 有损 - 重构的图像是原始图像的近似。这种损失的性质由训练期间使用的损失函数定义。
  • 适用于未标记数据

课后测验

结论

在这节课中,你了解了AI科学家可用的各种类型的自动编码器。你学会了如何构建它们以及如何使用它们来重构图像。你还了解了VAE以及如何使用它来生成新图像。

挑战

在这节课中,你了解了如何使用自动编码器处理图像。但它们也可以用于音乐!查看Magenta项目的MusicaVAE项目,该项目使用自动编码器来学习重构音乐。请尝试使用此库进行一些实验,看看你能创造出什么。

课后测验

复习与自学

参考以下资源了解更多关于自动编码器的知识:

作业

在本笔记本TensorFlow的末尾,你会发现一个“任务”——请以此作为你的作业。

声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。


作者与出处
原作者: microsoft
来源:microsoft
许可证:MIT
整理: 灏天文库整理
由灏天文库结构化整理,提供目录导航、全文检索与在线阅读,便于系统化学习
发布者: 作者: microsoft 转发
评论区 (0)
U