第9章 生成式对抗网络和自组织映射
在这一章中,我们再讨论一些非常流行的神经模型,就将结束无监督学习的整个过程,这些模型可用于执行数据生成过程并可从中抽取新的样本。此外,我们将分析自组织映射的功能,这些功能可以调整样本的结构,使特定单元对不同的输入模式做出响应。
本章将着重讨论以下主题。
- 生成式对抗网络(Generative Adversarial Networks,GAN)。
- 深度卷积GAN(Deep Convolutional GAN,DCGAN)。
- Wasserstein GAN(WGAN)。
- 自组织映射(Self-Organizing Maps,SOM)。
9.1 技术要求
本章中的代码需求如下。
- Python 3.5+(强烈建议使用Anaconda的发行版本)。
- 库。
- SciPy 0.19+。
- NumPy 1.10+。
- scikit-learn 0.20+。
- pandas 0.22+。
- Matplotlib 2.0+。
- seaborn 0.9+。
- TensorFlow 1.5+。
- Keras 2+(仅用于数据集实用程序功能)。
示例代码可以在本书配套的代码包中找到。
9.2 生成式对抗网络
这些生成模型是由Goodfellow和其他研究人员提出的(参见Generative Adversarial Networks),目的是利用对抗训练的力量,以及深度神经网络的灵活性。在不需要太多技术细节的情况下,我们可以引入对抗训练的概念,将其作为一种基于博弈论的技术进行介绍,其目的是优化两个相互对抗的代理。当一个代理试图欺骗其对手时,另一个代理必须学习如何区分正确的和伪造的输入。特别地,GAN是一个分为两个明确定义组件的模型。
- 生成器。
- 鉴别器(也称为评价器)。
Get Python无监督学习 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.