第15章 面部生成与标签缺失处理

使用GAN的有趣应用程序还有很多。本章将展示GAN的另一个很有前景的应用,即基于CelebA数据库的面部生成。同时还将演示当面对一个带有一些缺失标签的数据集时,如何将GAN用于半监督学习。

本章将介绍以下主题。

  • 面部生成。
  • 用生成对抗网络进行半监督学习。

生成器与判别器包含了反卷积网络(Deconvolutional Network,DNN)[1]和卷积神经网络(Convolutional Neural Network,CNN)[2]

  • CNN是一类神经网络,它将图像的数百个像素编码成维度更小的向量(z),可以认为这个向量是图像的压缩版本。
  • DNN是一类通过学习一些过滤器来从z恢复原始图像的网络。

此外,判别器将输出一个1或0来表示输入图像是来自实际数据集还是由生成器生成的。生成器将尝试基于隐空间z来生成类似于原始数据集的图像,隐空间z可能遵循高斯分布。因此,判别器的目标是正确识别真实图像,而生成器的目标是学习原始数据集的分布,从而欺骗判别器以使它做出错误的决定。

在本节中,我们将尝试训练生成器学习人脸图像的分布,以便生成真实的面部图像。

对于大多数在应用中使用人类面孔的图形公司而言,生成类似人脸的面孔至关重要,同时它为我们提供了一个生动的例子,即人工智能如何在生成人类面孔时实现真实性。

这个示例将使用CelebA数据集。CelebFaces属性数据集(CelebA)是一个大型的人脸属性数据集,有大约20万张名人图像,每张图像有40个属性注释。数据集中的图像涵盖了许多不同的姿势,同时背景也非常杂乱,CelebA非常多样化并且有很好的注释。具体来说,其中包括以下内容。

  • 10 177个人。
  • 202 599张脸部图片。

Get 深度学习:核心原理与案例分析 now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.