提交 390a0317 编写于 作者: W wizardforcel

2020-12-05 18:52:59

上级 cc0b89a0
# 前言
**生成对抗网络****GAN** )具有建立下一代模型的潜力,因为它们可以模拟任何数据分布。 由于它是**机器学习****ML** )增长最快的领域之一,因此正在该领域进行重大研究和开发工作。 当您在 GAN 域中构建八个端到端项目时,本书将测试训练神经网络的无监督技术。
*生成对抗网络项目*首先介绍了用于构建高效项目的概念,工具和库。 您还将在本书的不同项目中使用各种数据集。 在每一章中,复杂性和操作的水平都会提高,从而帮助您掌握 GAN 域。
您将介绍 3D-GAN,DCGAN,StackGAN 和 CycleGAN 等流行的方法,并且您将通过它们的实际实现来理解生成模型的体系结构和功能。
到本书结尾,您将准备在工作中或项目中建立,训练和优化自己的端到端 GAN 模型。
# 这本书是给谁的
如果您是数据科学家,ML 开发人员,深度学习从业人员或 AI 爱好者,并且正在寻找项目指南以测试您在构建现实 GAN 模型中的知识和专长,那么该书适合您。
# 本书涵盖的内容
[第 1 章](../Text/1.html)*生成对抗网络* 的介绍始于 GAN 的概念。 读者将学习什么是判别器,什么是生成器以及什么是博弈论。 接下来的几个主题将涵盖生成器的结构,鉴别器的结构,生成器和鉴别器的目标函数,GAN 的训练算法,Kullback-Leibler 和 Jensen-Shannon 发散,GAN 的评估矩阵,GAN 的不同问题, GAN 中梯度消失和爆炸,纳什均衡,批量归一化和正则化的问题。
[第 2 章](../Text/2.html)*3D-GAN –使用 GAN 生成形状* 首先简要介绍 3D-GAN 和各种架构细节。 在本章中,我们将训练 3D-GAN 生成真实世界的 3D 形状。 我们编写代码来收集 3D Shapenet 数据集,对其进行清理并使其经过培训。 然后,我们将使用 Keras 深度学习库为 3D-GAN 编写代码。
[第 3 章](../Text/3.html)*使用条件 GAN 进行人脸老化* ,向读者介绍了条件生成对抗网络(cGAN)和 Age-cGAN。 我们将学习数据准备中的不同步骤,例如下载,清理和格式化数据。 我们将使用 IMDb Wiki 图像数据集。 我们将使用 Keras 框架为 Age-cGAN 编写代码。 接下来,我们将在 IMDb Wiki 图像数据集上训练网络。 最后,我们将使用年龄作为条件参数的训练模型来生成图像,而训练后的模型将针对不同年龄的人的脸部生成图像。
[第 4 章](../Text/4.html)*使用 DCGAN 生成动漫角色* 从 DCGAN 的介绍开始。 我们将学习数据准备中的不同步骤,例如收集动漫角色数据集,清理数据集并准备进行训练。 我们将在 Jupyter Notebook 中介绍 DCGAN 的 Keras 实现。 接下来,我们将学习训练 DCGAN 的不同方法,并为其选择不同的超参数。 最后,我们将使用训练有素的模型生成动漫角色。 另外,我们将讨论 DCGAN 的实际应用。
[第 5 章](../Text/5.html)*使用 SRGAN 生成逼真的图像* 解释了如何训练 SRGAN 生成逼真的图像。 训练过程的第一步是收集数据集,然后清理它并格式化以进行训练。 读者将学习从何处收集数据集,如何清理数据集以及如何将其转换为可用于培训的格式。
[第 6 章](../Text/6.html)*StackGAN –文本到逼真的图像合成* ,本章将首先介绍 StackGAN。 数据收集和数据准备是重要的步骤,我们将学习收集数据集,清理数据集并格式化以进行培训的过程。 我们将在 Jupyter Notebook 内的 Keras 中为 StackGAN 编写代码。 接下来,我们将在 CUB 数据集上训练网络。 最后,在完成模型训练后,我们将从文本描述中生成逼真的图像。 我们将讨论 StackGAN 的不同行业应用以及如何在生产中部署它们。
[第 7 章](../Text/7.html)*CycleGAN –将绘画变成照片* ,介绍了如何训练 CycleGAN 以 将画作变成照片。 我们将首先介绍 CycleGAN,并研究它们的不同应用。 我们将介绍不同的数据收集,数据清理和数据格式化技术。 接下来,我们将编写 CycleGAN 的 Keras 实现,并在 Jupyter Notebook 中获得有关代码的详细说明。 我们将在准备好的数据集上训练 CycleGAN。 我们将测试我们训练有素的模型,以将绘画转换为照片。 最后,我们看一下 CycleGAN 的实际应用。
[第 8 章](../Text/8.html)*条件 GAN –使用条件对抗网络* 进行图像到图像的翻译,介绍了如何训练条件 GAN 进行图像到图像的翻译。 我们将首先介绍条件 GAN 和不同的数据准备技术,例如数据收集,数据清理和数据格式化。 接下来,我们将在 Jupyter Notebook 的 Keras 中编写条件 GAN 的代码。 接下来,我们学习如何在已经准备好的数据集上训练条件 GAN。 我们将探索不同的超参数进行训练。 最后,我们将测试条件 GAN,并讨论实际应用中图像到图像转换的不同用例。
[第 9 章](../Text/9.html)*预测 GAN 的未来*,是最后一章。 在介绍了 GAN 的基础知识并完成了六个项目之后,本章将使读者了解 GAN 的未来。 在这里,我们将研究在过去的 3-4 年中,GAN 的采用取得了惊人的成就,以及该行业对它的接受程度。 我还将讨论我对 GAN 未来的个人看法。
# 充分利用这本书
熟悉深度学习和 Keras,并且需要一些先验知识 TensorFlow。 使用 Python 3 进行编码的经验会很有用。
# 下载示例代码文件
您可以从 [www.packt.com](http://www.packt.com) 的帐户中下载本书的示例代码文件。 如果您在其他地方购买了此书,则可以访问 [www.packt.com/support](http://www.packt.com/support) 并注册以将文件直接通过电子邮件发送给您。
您可以按照以下步骤下载代码文件:
1. 登录或注册 [www.packt.com](http://www.packt.com)
2. 选择支持标签。
3. 单击代码下载&勘误表。
4. 在搜索框中输入书籍的名称,然后按照屏幕上的说明进行操作。
下载文件后,请确保使用以下最新版本解压缩或解压缩文件夹:
* Windows 的 WinRAR / 7-Zip
* Mac 版 Zipeg / iZip / UnRarX
* 适用于 Linux 的 7-Zip / PeaZip
本书的代码包也托管在 GitHub 的 [https://github.com/PacktPublishing/Generative-Adversarial-Networks-Projects](https://github.com/PacktPublishing/Generative-Adversarial-Networks-Projects) 。 如果代码有更新,它将在现有的 GitHub 存储库中进行更新。
**[https://github.com/PacktPublishing/](https://github.com/PacktPublishing/) 中,我们还提供了丰富的图书和视频目录中的其他代码包。** 。 去看一下!
# 使用约定
本书中使用了许多文本约定。
`CodeInText`:表示文本中的词,数据库表名称,文件夹名称,文件名,文件扩展名,路径名,伪 URL,用户输入和 Twitter 句柄。 这里是一个示例:“ 使用 `scipy` 中的 `loadmat()` 函数来检索 `voxels`。”
代码块设置如下:
```py
import scipy.io as io
voxels = io.loadmat("path to .mat file")['instance']
```
任何命令行输入或输出的编写方式如下:
```py
pip install -r requirements.txt
```
**粗体**:表示您在屏幕上看到的新术语,重要单词或顺序。
Warnings or important notes appear like this.Tips and tricks appear like this.
# 保持联系
始终欢迎读者的反馈。
**一般反馈**:如果您对本书的任何方面都有疑问,在邮件主题中提及书名,并通过`customercare@packtpub.com`向我们发送电子邮件。
**勘误表**:尽管我们已尽一切努力确保内容的准确性,但还是会发生错误。 如果您在这本书中发现错误,请向我们报告,我们将不胜感激。 请访问 [www.packt.com/submit-errata](http://www.packt.com/submit-errata) ,选择您的书籍,点击勘误提交表格链接,然后输入详细信息。
**盗版**:如果您在 Internet 上以任何形式遇到我们的作品的任何非法副本,请向我们提供位置地址或网站名称,我们将不胜感激。 请通过`copyright@packt.com`与我们联系,并提供材料链接。
**如果您有兴趣成为作家**:如果您有一个专业的话题并且对写作或撰写书籍感兴趣,请访问 [authors.packtpub.com](http://authors.packtpub.com/) ]。
# 评论
请留下评论。 阅读和使用本书后,为什么不在您购买本书的网站上留下评论? 然后,潜在的读者可以查看并使用您的公正意见来做出购买决定,Packt 的我们可以了解您对我们产品的看法,我们的作者可以在书中看到您的反馈。 谢谢!
有关 Packt 的更多信息,请访问 [packt.com](http://www.packt.com/)
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
# 预测 GAN 的未来
如果您已完成本书各章中的所有练习,则为学习和编码**生成对抗网络****GAN** )进行了很长的路要走。 世界应用。 GAN 有可能在许多不同行业中造成破坏。 科学家和研究人员开发了各种可用于构建商业应用的 GAN。 在本书中,我们探索并实现了一些最著名的 GAN 架构。
因此,让我们回顾一下到目前为止所学到的东西:
* 我们从对 GAN 的简要介绍开始,学习了各种重要概念。
* 然后,我们探索了 3D-GAN,这是一种可以生成 3D 图像的 GAN。 我们训练了 3D-GAN,以生成现实世界对象的 3D 模型,例如*飞机**桌子。*
* 在第三章中,我们探索了用于面部衰老的条件 GAN。 我们学习了如何使用条件 GAN 将处于年龄的的人脸图像转换为同一张脸的图像。 我们还讨论了 Age-cGAN 的各种实际应用。
* 之后,我们探索了**深度卷积生成对抗网络****DCGANs** ),该网络用于生成动漫人物的面孔。
* 在第五章中,我们探讨了**超分辨率生成对抗网络****SRGAN** ),该网络可用于从低分辨率图像生成高分辨率图像。 之后,我们讨论了 SRGAN 如何解决一些非常有趣的现实问题。
* 然后,我们探索了 StackGAN,我们将其用于执行文本到图像的合成任务。 我们在训练 StackGAN 之前先探索了一个数据集,然后通过讨论 StackGAN 的实际应用来结束本章。
* 在第七章中,我们探索了 CycleGAN,这是一次图像到图像的翻译任务。 我们的目标是将绘画变成照片。 我们还讨论了 CycleGAN 的实际应用
* 最后,在第八章中,我们探讨了 pix2pix 网络,这是一种条件 GAN。 我们训练了 pix2pix 网络,以根据建筑标签生成立面图像。 像其他章节一样,我们通过讨论 pix2pix 网络的实际应用来结束本章。
在本章中,我们将介绍以下主题:
* 我们对 GAN 未来的预测
* GAN 的潜在未来应用
* 可以探索 GAN 的其他区域
# 我们对 GAN 未来的预测
我认为,GAN 的未来将具有以下特点:
* 研究团体公开接受 GAN 及其应用。
* 令人印象深刻的结果-到目前为止,GAN 在使用常规方法难以执行的任务上显示出非常令人印象深刻的结果。 例如,将低分辨率图像转换为高分辨率图像以前是一项艰巨的任务,通常是使用 CNN 进行的。 GAN 体系结构(例如 SRGAN 或 pix2pix)显示了 GAN 在此应用中的潜力,而 StackGAN 网络已被证明对文本到图像的合成任务很有用。 如今,任何人都可以创建 SRGAN 网络并将其训练在自己的图像上。
* 深度学习技术的进步。
* GAN 用于商业应用。
* GAN 训练过程的成熟。
# 改善现有的深度学习方法
监督式深度学习方法需要大量数据来训练模型。 获取该数据既昂贵又费时。 有时,无法获得数据,因为它不是公开可用的,或者如果它是公开可用的,则数据集的大小可能很小。 这是 GAN 可以营救的地方。 一旦使用相当小的数据集进行了训练,便可以部署 GAN 来从同一域生成新数据。 例如,假设您正在处理图像分类任务。 您有一个数据集,但是它不足以完成您的任务。 我们可以在现有映像上训练 GAN,然后将其部署到同一域中以生成新映像。 尽管 GAN 目前存在训练不稳定性的问题,但一些研究人员表明,可以生成逼真的图像。
# GAN 商业应用的演变
未来几年,我们将看到 GAN 的更多商业应用。 GAN 的许多商业应用已经开发,并给人留下了积极的印象。 例如,移动应用程序 Prisma 是 GAN 最早获得广泛成功的应用程序之一。 我们可能会在不久的将来看到 GAN 的民主化,一旦我们这样做了,我们将开始看到 GAN 改善了我们的日常生活。
# GAN 培训过程的成熟
自 2014 年成立以来,四年后,GAN 仍然遭受训练不稳定问题的困扰。 有时,GAN 根本无法收敛,因为两个网络都偏离了它们的训练路径。 在编写本书时,我多次遭受这个问题的困扰。 研究人员为稳定 GAN 的训练做出了许多努力。 我预测,随着深度学习领域的进步,该过程将日趋成熟,并且我们很快将能够毫无问题地训练模型。
# GAN 的潜在未来应用
GAN 的未来是光明的! 我认为在不久的将来有可能会使用 GAN:
* 从文本创建图表
* 生成网站设计
* 压缩数据
* 药物发现与开发
* 产生文字
* 产生音乐
# 从文本创建图表
设计图表是一个漫长的过程。 这需要数小时的劳动并且需要特定的技能。 在市场营销和社会促销中,信息图表的魅力十足。 它们是社交媒体营销的主要成分。 有时,由于漫长的创建过程,公司不得不采用效率较低的策略来解决。 AI 和 GAN 可以帮助设计师进行创作。
# 生成网站设计
同样,设计网站是一个手动的,创造性的过程,需要熟练的手动工作,并且需要很长时间。 GAN 可以通过提供可以用作灵感的初始设计来协助设计师,从而节省大量金钱和时间。
# 压缩数据
互联网使我们能够将大量数据传输到任何位置,但这是有代价的。 GAN 使我们能够提高图像和视频的分辨率。 我们可以将低分辨率的图像和视频传输到它们所需的位置,然后可以使用 GAN 来提高数据质量,而这需要更少的带宽。 这带来了很多可能性。
# 药物发现与开发
使用 GAN 进行药物开发可能听起来像是一个梦想,但考虑到所需的化学和生物学特性,GAN 已被用于生成分子结构。 制药公司在新药的研发上花费了数十亿美元。 用于药物开发的 GAN 可以大大降低该成本。
# 用于生成文本的 GAN
GAN 已被证明对图像生成任务很有用。 GAN 中的大部分研究目前集中在高分辨率图像生成,文本到图像合成,样式转换,图像到图像翻译以及其他类似任务上。 目前,对于使用 GAN 生成文本的研究还不多。 这是因为 GAN 旨在生成连续的值,因此训练 GAN 以获得离散值确实具有挑战性。 将来, 预测将在文本生成任务中进行更多的研究。
# 用于生成音乐的 GAN
使用 GAN 进行音乐生成是另一个尚未得到充分探索的领域。 音乐创作的过程充满创造力,非常复杂。 GAN 具有改变音乐产业的潜力,如果发生这种情况,我们可能很快就会聆听 GAN 创建的曲目。
# 探索 GAN
您可以探索的其他 GAN 架构包括:
* **BigGAN***大规模 GAN 训练,用于高保真自然图像合成*[https://arxiv.org/pdf/1809.11096.pdf](https://arxiv.org/pdf/1809.11096.pdf)
* **WaveGAN** :使用生成的对抗网络合成音频( [https://arxiv.org/abs/1802.04208](https://arxiv.org/abs/1802.04208)
* **开始***开始:边界均衡生成对抗网络*[https://arxiv.org/abs/1703.10717](https://arxiv.org/abs/1703.10717)
* **AC-GAN***使用辅助分类器 GAN*[https://arxiv.org/abs/1610.09585](https://arxiv.org/abs/1610.09585) )的条件图像合成
* **AdaGAN***AdaGAN:增强生成模型*[https://arxiv.org/abs/1701.02386v1](https://arxiv.org/abs/1701.02386v1)
* **ArtGAN***ArtGAN:带有条件分类 GAN* 的艺术品合成( [https://arxiv.org/abs/1702.03410](https://arxiv.org/abs/1702.03410)
* **BAGAN***BAGAN:平衡 GAN* 的数据增强( [https://arxiv.org/abs/1803.09655](https://arxiv.org/abs/1803.09655)
* **BicycleGAN***迈向多模态图像到图像翻译*[https://arxiv.org/abs/1711.11586](https://arxiv.org/abs/1711.11586)
* **CapsGAN***CapsGAN:为生成对抗网络使用动态路由*[https://arxiv.org/abs/1806.03968](https://arxiv.org/abs/1806.03968)
* **E-GAN***进化生成对抗网络*[https://arxiv.org/abs/1803.00657](https://arxiv.org/abs/1803.00657)
* **WGAN***Wasserstein GAN*[h](https://arxiv.org/abs/1701.07875v2) [ttps://arxiv.org/abs/1701.07875v2](https://arxiv.org/abs/1701.07875v2) )
研究人员还开发了数百种其他 GAN 架构。
# 概要
在本书中,我的目的是让您了解 GAN 及其在世界上的应用。 你的想象力是唯一的限制。 有大量可用的不同 GAN 架构,并且它们正在变得越来越成熟。 GAN 仍有很长的路要走,因为它们仍然存在诸如训练不稳定性和模式崩溃之类的问题,但是现在已经提出了各种解决方案,包括标签平滑,实例规范化和小批量区分。 我希望这本书对您实现 GAN 有所帮助。 如果您有任何疑问,请给我发送电子邮件到 [ahikailash1@gmail.com](mailto:ahikailash1@gmail.com)
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
此差异已折叠。
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册