译者序
生成对抗网络(GAN)是现在深度学习领域最为火热的一个分支,在这个领域里每天都会有新的内容出现。和传统的监督式机器学习不同,生成对抗网络创造性地结合了监督式机器学习和无监督式机器学习的方法,自动从原数据中学习特征和分布,并生成令人惊叹的结果。学习画家的创作风格进行绘画,从2D图片生成3D模型,对图片进行风格转换……通过生成对抗网络,我们能够完成这类之前被认为只有人类才能完成的任务,机器学习第一次具有了创造性。
然而生成对抗网络架构本身十分复杂,调优也很困难,并且存在多个变种,通常很难找到能够快速上手的代码。这些门槛都阻挡在生成对抗网络的爱好者和相关从业人员面前。本书通过多个生成对抗网络架构的实现来帮助读者更好地理解生成对抗网络背后的原理及其使用方法。书中提供了大量易于上手的代码片段,可以帮助读者快速搭建起自己的生成对抗网络模型,并在工作中进行应用。本书的作者Josh Kalin在机器学习领域有着多年的工作经验,相信他的宝贵经验能够给读者带来不少收获。
希望生成对抗网络能够成为读者工作中最重要的“武器”!
序言
开发生成对抗网络(Generative Adversarial Network,GAN)是一项十分复杂的任务,通常也很难找到很容易就能够理解的相关代码。本书将通过多个不同的GAN实现样例,包括CycleGAN、SimGAN、DCGAN以及使用到GAN的模仿学习来帮助你了解GAN。本书的各章采用了统一的编排结构,使用Python和Keras,帮助你以一种易于理解的方式由浅入深地来了解GAN的架构。
本书覆盖了多个不同类型的GAN架构来帮助你更好地理解模型的工作原理。你将会学习如何执行诸如生成超解析图像、文字到图像的转换,以及生成带字幕视频等任务的关键操作步骤。此外,你还会用到DCGAN和deepGAN。为了帮助你在复杂的工作场景下更好地应用这些技术,本书将会使用多个真实世界中的数据集作为示例。
在本书的最后,通过这些易于理解的代码方案,你应该可以应对工作中和GAN模型相关的问题和挑战,并能快速地上手实现自己的GAN模型。
本书的目标读者
本书的目标读者是数据科学家、机器学习(Machine Learning,ML)开发者,以及需要一个处理GAN领域问题和任务快速索引的深度学习从业者。熟悉机器领域中的相关概念以及工作中使用Python的经验会帮助你更好地理解本书内容。
本书内容
第1章介绍GAN的架构并介绍每一种实现。
第2章处理与数据相关的基础工作、数据强化,以及对有大量离群数据的数据集进行平衡。
第3章介绍如何通过Keras、TensorFlow和Docker将我们已经讨论过的理论进行具体应用,并制作一个简单的GAN模型。
第4章介绍构建深度卷积生成对抗网络(Deep Convolutional Generative Adversarial Network,DCGAN)所需的构建块。
第5章介绍Pix2Pix的工作流程及其实现。
第6章介绍CycleGAN是什么,如何解析CycleGAN数据集,以及如何实现CycleGAN。
第7章介绍SimGAN的工作原理及其实现。
第8章介绍3D模型以及使用图片实现3D模型的技术。
预备知识
熟悉Python的相关基础知识是阅读本书的必备条件,了解机器学习的相关概念会帮助你更好地理解本书内容。