生成对抗网络(Generative Adversarial Networks),简称 GANs,最早由 Ian Goodfellow 等人在 2014 年的论文《Generative Adversarial Networks》中提出。
自那时起,GANs 因其可能是生成大规模、高质量合成图像的最有效技术之一而备受关注。
因此,已经有许多关于 GANs 的书籍问世,大多数都侧重于如何在实践中开发和使用这些模型。
在这篇文章中,你将发现关于生成对抗网络的书籍。
通过我的新书 《Python 生成对抗网络》,开始你的项目,书中包含分步教程和所有示例的Python 源代码文件。
让我们开始吧。
GAN 书籍
大多数书籍都是由 Packt 出版公司编写和发行的。
几乎所有这些书籍都存在同样的问题:它们普遍质量不高,只是对 GitHub 上第三方代码的使用进行总结,原创内容很少。这尤其适用于 Packt 的书籍。
尽管如此,了解有哪些可用的书籍及其涵盖的主题仍然是有益的。这有助于你在选择自学书籍时做出决定,也能让你对开始学习 GANs 时想要探索的主题类型有所了解。
我们将回顾以下七本书
- GANs in Action.
- Generative Deep Learning.
- Advanced Deep Learning with Keras.
- Learning Generative Adversarial Networks.
- Generative Adversarial Networks Projects.
- Generative Adversarial Networks Cookbook.
- Hands-On Generative Adversarial Networks with Keras.
此外,我们还将回顾两本流行的深度学习书籍中的 GAN 部分。
如果我错过了关于 GAN 的书籍,请在下面的评论中告诉我。
这些书籍大多似乎涵盖了相同的 GAN 架构,例如
- 标准:GAN、DCGAN。
- 条件:cGAN、SS-GAN、InfoGAN、ACGAN。
- 损失:WGAN、WGAN-GP、LSGAN。
- 图像翻译:Pix2Pix、CycleGAN。
- 高级 GAN:BigGAN、PG-GAN、StyleGAN。
- 其他:StackGAN、3DGAN、BEGAN、SRGAN、DiscoGAN、SEGAN。
让我们仔细看看每本书涵盖的主题。
1. GANs in Action
书名:GANs in Action: Deep learning with Generative Adversarial Networks
作者:Jakub Langr 和 Vladimir Bok,出版于 2019 年。
这本书使用 Keras 深度学习库对 GAN 进行了温和的介绍。
目录
- 第 1 章:GAN 简介
- 第 2 章:自编码器作为 GAN 的途径
- 第 3 章:你的第一个 GAN:生成手写数字
- 第 4 章:深度卷积 GAN (DCGAN)
- 第 5 章:训练和常见挑战:成功实现 GAN
- 第 6 章:GAN 的进展
- 第 7 章:半监督 GAN
- 第 8 章:条件 GAN
- 第 9 章:CycleGaN
- 第 10 章:对抗样本
- 第 11 章:GAN 的实际应用
- 第 12 章:展望未来
想从零开始开发GAN吗?
立即参加我为期7天的免费电子邮件速成课程(附示例代码)。
点击注册,同时获得该课程的免费PDF电子书版本。
2. Generative Deep Learning
书名:Generative Deep Learning: Teaching Machines to Paint, Write, Compose, and Play
作者:David Foster,出版于 2019 年。
这本书侧重于更广泛的深度学习生成模型问题,允许讨论变分自编码器。它确实涵盖了一系列 GAN 模型,但也包括了使用 LSTMs 的语言模型。
目录
- 第一部分:生成深度学习简介
- 第 1 章:生成模型
- 第 2 章:深度学习
- 第 3 章:变分自编码器
- 第 4 章:生成对抗网络
- 第二部分:教机器绘画、写作、作曲和演奏
- 第 5 章:绘画
- 第 6 章:写作
- 第 7 章:作曲
- 第 8 章:演奏
- 第 9 章:生成模型的未来
3. Advanced Deep Learning with Keras
书名:Advanced Deep Learning with Keras: Apply deep learning techniques, autoencoders, GANs, variational autoencoders, deep reinforcement learning, policy gradients, and more
作者:Rowel Atienza,出版于 2018 年。
这本书更侧重于使用 Keras 的高级深度学习的通用主题,涵盖了自编码器、变分自编码器和深度强化学习。尽管如此,本书有四章关于 GANs,我认为它是一本 GAN 书籍。
- Advanced Deep Learning with Keras, Amazon.
- Advanced Deep Learning with Keras, Packt.
- Book Source Code, GitHub.
目录
- 第 1 章:Keras 高级深度学习入门
- 第 2 章:深度神经网络
- 第 3 章:自编码器
- 第 4 章:生成对抗网络 (GANs)
- 第 5 章:改进的 GANs
- 第 6 章:解耦表示 GANs
- 第 7 章:跨域 GANs
- 第 8 章:变分自编码器 (VAEs)
- 第 9 章:深度强化学习
- 第 10 章:策略梯度方法
4. Learning Generative Adversarial Networks
书名:Learning Generative Adversarial Networks: Next-generation deep learning simplified.
作者:Kuntal Ganguly,出版于 2017 年。
这本书对 GANs 进行了非常简单的介绍。这本书可能已被 Packt 删除或撤下,并被视频课程取代。
目录
- 第 1 章:深度学习简介
- 第 2 章:基于 GAN 的无监督学习
- 第 3 章:跨各种领域迁移图像风格
- 第 4 章:从你的文本构建逼真图像
- 第 5 章:使用各种生成模型生成图像
- 第 6 章:将机器学习投入生产
5. Generative Adversarial Networks Projects
书名:Generative Adversarial Networks Projects: Build next-generation generative models using TensorFlow and Keras.
作者:Kailash Ahirwar,出版于 2019 年。
这本书总结了一系列 GANs,并提供了 Keras 的代码示例。
- Generative Adversarial Networks Projects, Amazon.
- Generative Adversarial Networks Projects, Packt.
- Book Source Code
目录
- 第 1 章:生成对抗网络简介
- 第 2 章:3D-GAN – 使用 GAN 生成形状
- 第 3 章:使用条件 GAN 进行面部老化
- 第 4 章:使用 DCGAN 生成动漫角色
- 第 5 章:使用 SRGAN 生成照片级逼真图像
- 第 6 章:StackGAN – 从文本到照片级逼真图像合成
- 第 7 章:CycleGAN – 将绘画变成照片
- 第 8 章:条件 GAN – 使用条件对抗网络进行图像到图像翻译
- 第 9 章:预测 GAN 的未来
6. Generative Adversarial Networks Cookbook
书名:Generative Adversarial Networks Cookbook: Over 100 recipes to build generative models using Python, TensorFlow, and Keras
作者:Josh Kalin,出版于 2018 年。
- Generative Adversarial Networks Cookbook, Amazon.
- Generative Adversarial Networks Cookbook, Packt.
- Book Source Code.
目录
- 第 1 章:什么是生成对抗网络
- 第 2 章:数据优先,易于环境设置和数据准备
- 第 3 章:我的第一个 GAN(不到 100 行代码)
- 第 4 章:使用 DCGAN 梦想新的户外结构
- 第 5 章:Pix2Pix 图像到图像翻译
- 第 6 章:使用 CycleGAN 迁移你的图像风格
- 第 7 章:使用 SimGAN 通过模拟图像创建照片级逼真的眼球
- 第 8 章:通过 GAN 从图像到 3D 模型
7. Hands-On Generative Adversarial Networks with Keras
书名:Hands-On Generative Adversarial Networks with Keras: Your guide to implementing next-generation generative adversarial networks
作者:Rafael Valle,出版于 2019 年。
这可能是 Packt 出版的书中较好的一本,因为代码质量似乎更高,并且涵盖了更广泛的 GAN。
- Hands-On Generative Adversarial Networks with Keras, Amazon.
- Hands-On Generative Adversarial Networks with Keras, Packt.
- Book Source Code.
目录
- 第一部分:简介和环境设置
- 第 1 章:深度学习基础和环境设置
- 第 2 章:生成模型简介
- 第二部分:训练 GANs
- 第 3 章:训练 GANs
- 第 4 章:评估你的第一个 GAN
- 第 5 章:改进你的第一个 GAN
- 第三部分:GANs 在计算机视觉、自然语言处理和音频中的应用
- 第 6 章:使用 GANs 合成和操作图像
- 第 7 章:渐进式增长 GANs
- 第 8 章:使用 GANs 生成离散序列
- 第 9 章:使用 GANs 进行文本到图像合成
- 第 10 章:使用 GANs 进行语音增强
- 第 11 章:TequilaGAN – 识别 GAN 样本
- 第 12 章:GANs 的下一步
其他书籍中的 GANs
GANs 的主题已包含在其他现代深度学习书籍中。
以下列出了两个重要示例。
8. Deep Learning
GANs 在 Ian Goodfellow 等人 2016 年的教科书《Deep Learning》中有描述,具体是
- 第 20 章:深度生成模型。
第 20.10.4 节题为“生成对抗网络”,在写作时(比原始论文晚两年)对 GANs 进行了简短介绍。
如果 Goodfellow 未来能写一本关于该主题的专门教科书,那将是极好的。
9. Deep Learning with Python
GANs 也被 Francois Chollet 在他 2017 年的书《Deep Learning with Python》中涵盖,具体是
- 第 8 章:生成深度学习。
在题为“生成对抗网络简介”的第 8.5 节中,介绍了 GANs 的主题,并提供了一个开发 GAN 的实际示例,用于 CIFAR-10 数据集中的一个图像类别(青蛙)。源代码可在此处找到。
总结
在这篇文章中,你发现了一系列关于生成对抗网络(GANs)主题的书籍。
你读过上面列出的任何一本书吗?
请在下面的评论中告诉我你的想法。
你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。
Manning 和 O’Reilly 的书通常质量很高。
同意。
但通常充斥着过多的伪理论(一半是数学,一半是文字),我只想要工作的代码和实际的解释——所以我现在自己写了 🙂
我正在读第一本。还没读完。你认为哪一本最好?
第一本可能最好。
我必须承认,没有一本真正让我满意——根据我的学习方式——这就是为什么我写了自己的书。
我同意这个观点,作为一个正在进行项目且是深度学习新手的研究员。从这些书中学习永远是不够的。你真的必须自己摸索,大量谷歌搜索,阅读论文,GitHub,并自己编写代码。然而,这些书籍可以作为你论文/项目的好参考资料 :))
同意!
大多数 PACKT 的书都是垃圾,强烈建议避免,无论什么标题。有些书差到令人难以置信。
然而,David Foster 的 GAN 书籍非常棒,强烈推荐。
同意。
感谢分享。
让我看看,在你提到的 9 本书中,有 5 本是由“Packt”出版的,尽管我确定你非常清楚这个出版商的书籍都是垃圾。
有趣的是,当 Elie Kawerk 说“Manning 和 O’Reilly 的书通常质量很高”时,你的回应是“但通常充斥着过多的伪理论”。
哈哈,当然你一点也不偏袒,你的网站也一点都不是在给这些垃圾“Packt”出版物打广告!
伙计,人们又不傻。
感谢分享你的想法,John。
很抱歉这个列表对你没有帮助。
尊敬的Jason博士,
我来这里不是为了争论某个出版商的好坏。我有一些 Packt 出版的书。尽管 Packt 的书可能不如你的教程全面,但它们可能很有帮助。
拥有 Packt 或其他任何出版商的书籍很有用,因为 (i) Packt 的出版物可能从与你书籍不同的角度来讲解同一主题。这有助于巩固该主题,(ii) 并且附带地,Packt 书籍中可能包含一些 Python 技术,用于演示潜在的主要主题。
谢谢你,
来自悉尼的安东尼
/
感谢分享你的想法,非常感激!
Jason 先生
你能推荐其中一本给我吗?我希望有一本包含数学解释的书,因为我真的很想在我的论文中使用它。我有两本在考虑中,一本是 Packt 的《GANs in Action》,另一本是《Hands-On Generative Adversarial Networks》,但我真的不知道该选哪一本。对《GANs in Action》的评论说它有一些数学解释,这让我担心,因为我可能想用它作为参考。而对于 Packt 的《Hands-On》,目录中没有 DCGAN 的主题(我想要一本涵盖 DCGAN 的书),所以我对这本书也不确定。
在这种情况下,(8) 是最接近你想要的。但那样的话,我建议你也阅读原始论文:https://papers.nips.cc/paper/2014/file/5ca3e9b122f61f8f06494c97b1afccf3-Paper.pdf