书籍作者:[美] Josh | ISBN:9787121374098 |
书籍语言:简体中文 | 连载状态:全集 |
电子书格式:pdf,txt,epub,mobi,azw3 | 下载次数:5623 |
创建日期:2021-02-14 | 发布日期:2021-02-14 |
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板 |
本书通过多个不同的生成对抗网络(GAN)架构的实现来帮助读者更好地理解生成对抗网络背后的原理及其构建方式。书中还提供了大量易于理解并可以直接使用的GAN代码及其部署方式和数据集,以帮助读者更快地上手解决工作中所面临的问题并积极应对相关挑战。本书适合数据科学家、算法工程师、数据挖掘工程师以及机器学习领域相关的从业人员用来学习使用全新的深度学习技术解决工作中的问题,也适合机器学习和深度学习的爱好者、初学者用来体验深度学习的魅力。
关于作者
Josh Kalin是一位物理学家和技术专家,他关注于机器人和机器学习的交叉领域。Josh致力于先进传感器、工业机器人、机器学习和自动化车辆项目的研究。他同时拥有物理学、机械工程以及计算机科学的学位。在业余时间,他喜欢研究车辆(拥有36辆汽车)、组装计算机,以及学习机器人和机器学习领域的新技术(例如撰写本书)。
感谢亲朋好友对我这个疯狂想法的支持;感谢我的孩子可以理解我因为GAN而抓头发的时刻。希望有一天他们能理解这本书的内容。特别感谢Jeremiah能够倾听我关于这本书的唠叨。最后,要感谢我的妻子:没有她,这一切都是不可能实现的。正是在她的催促下,我才能顺利地完成这本书。
关于评审者
Mayur Ravindra Narkhede在数据科学和工业领域有着丰富的经验。他是一名拥有计算机科学学士学位以及人工智能硕士学位的研究员。
他也是一位在构建自动化端到端解决方案领域有着丰富经验的数据科学家,十分擅长应用人工智能(AI)、机器学习、数据挖掘和设计思想等技术来更好地理解业务功能,并对盈利的增长和预测进行改进。
同时,他也曾参与过多个业界领先的解决方案,如机器学习和预测模型在石油、天然气、财经、道路交通、生命科学等多个领域的应用,以及资产密集型产业的大数据平台构建。
开发生成对抗网络(GAN)是一项复杂的任务,而且通常很难找到能够帮助大家理解生成对抗网络的代码。本书通过包含CycleGAN、SimGAN、DCGAN以及从2D图像生成3D模型等多个现代GAN实现的样例来帮助你更好地理解GAN。本书的每章内容都包含了能帮助你快速通过Python、TensorFlow和Keras来构建GAN架构的代码片段。这些代码十分易读,你可以通过它们来构建更为复杂的GAN架构。本书还包含了可以直接使用的DCGAN和Pix2Pix代码,你可以通过使用真实世界不同的数据集来理解这些复杂的应用。借助这些易于使用并能快速上手的代码方案,到了本书的最后,你将会具备处理工作中关于GAN模型问题和挑战的能力。你将学习:
◎GAN架构的伪代码表达形式
◎理解自己将会构建的每个GAN模型的通用架构
◎使用TensorFlow和Keras实现不同的GAN架构
◎在GAN模型中使用不同的数据集来训练神经网络
◎连接不同的GAN模型并学习如何进行调优
◎制作一个可以生成3D模型的网络
◎使用Pix2Pix开发一个可以做风格转换的GAN
译者序
生成对抗网络(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的相关基础知识是阅读本书的必备条件,了解机器学习的相关概念会帮助你更好地理解本书内容。
目录
序言 1
第1章 什么是生成对抗网络 7
简介 7
生成模型和判别模型 8
工作流程 8
工作原理 9
神经网络的“爱情故事” 10
工作流程 10
工作原理 11
深度神经网络 11
工作流程 11
工作原理 12
架构基础 13
工作流程 13
工作原理 14
基本构建块――生成器 15
工作流程 15
工作原理 15
基本构建块――判别器 16
工作流程 16
工作原理 17
基本构建块――损失函数 18
工作流程 18
工作原理 18
训练 20
工作流程 20
工作原理 20
以不同方式组织GAN 20
工作流程 21
工作原理 21
GAN的输出是什么 22
工作流程 22
工作原理 22
理解GAN架构的优点 24
工作流程 24
工作原理 25
练习 25
第2章 数据优先、环境和数据准备 27
简介 27
数据是否如此重要 27
准备工作 28
工作流程 28
工作原理 29
更多内容 29
搭建开发环境 29
准备工作 30
工作流程 30
更多内容 35
数据类型 35
准备工作 36
工作流程 36
工作原理 38
更多内容 40
数据预处理 41
准备工作 41
工作流程 41
工作原理 42
更多内容 45
异常数据 46
准备工作 46
工作流程 46
更多内容 49
平衡数据 49
准备工作 49
工作流程 49
更多内容 53
数据强化 54
准备工作 54
工作流程 55
工作原理 56
更多内容 57
练习 58
第3章 用100行代码实现第一个GAN 59
简介 59
从理论到实践――一个简单例子 59
准备工作 60
工作流程 60
参考内容 62
使用Keras和TensorFlow构建神经网络 62
准备工作 63
工作流程 63
参考内容 66
解释你的第一个GAN组件――判别器 66
准备工作 67
工作流程 67
解释你的第二个GAN组件――生成器 71
准备工作 71
工作流程 71
组合GAN组件 75
准备工作 76
工作流程 76
训练你的第一个GAN 78
准备工作 78
工作流程 78
训练模型并理解GAN的输出 84
准备工作 84
工作流程 84
工作原理 86
练习 87
第4章 使用DCGAN创造新的室外结构 89
简介 89
什么是DCGAN?一个简单的伪代码样例 89
准备工作 90
工作流程 90
参考内容 93
工具――是否需要特殊的工具 93
准备工作 93
工作流程 94
更多内容 97
参考内容 97
解析数据――数据是否独特 97
准备工作 97
工作流程 98
代码实现――生成器 100
准备工作 100
工作流程 100
参考内容 103
代码实现――判别器 103
准备工作 104
工作流程 104
参考内容 107
训练 107
准备工作 107
工作流程 107
评估――如何判断它是否有效 114
准备工作 115
工作原理 115
调整参数优化性能 116
工作流程 116
练习 118
第5章 Pix2Pix图像转换 119
简介 119
使用伪代码介绍Pix2Pix 119
准备工作 120
工作流程 120
数据集解析 122
准备工作 122
工作流程 123
代码实现――生成器 124
准备工作 124
工作流程 125
代码实现――GAN 127
准备工作 127
工作流程 128
代码实现――判别器 129
准备工作 129
工作流程 129
训练 131
准备工作 131
工作流程 132
练习 139
第6章 使用CycleGAN进行图像风格转换 141
简介 141
伪代码――工作原理 141
准备工作 142
工作流程 142
解析CycleGAN数据集 144
准备工作 144
工作流程 145
代码实现――生成器 147
准备工作 147
工作流程 148
代码实现――判别器 150
准备工作 150
工作流程 151
代码实现――GAN 153
准备工作 153
工作流程 154
训练 155
准备工作 155
工作流程 156
练习 162
第7章 利用SimGAN使用模拟图像制作具有真实感的眼球图片 163
简介 163
SimGAN架构的工作原理 163
准备工作 164
工作流程 164
伪代码――工作原理 165
准备工作 165
工作流程 165
如何使用训练数据 166
准备工作 166
工作流程 166
代码实现――损失函数 169
准备工作 169
工作流程 169
代码实现――生成器 170
准备工作 170
工作流程 171
代码实现――判别器 173
准备工作 173
工作流程 174
代码实现――GAN 176
准备工作 176
工作流程 177
训练SimGAN 178
准备工作 178
工作流程 179
练习 183
第8章 使用GAN从图像生成3D模型 185
简介 185
使用GAN生成3D模型 185
准备工作 186
工作流程 186
环境准备 188
准备工作 189
工作流程 189
对2D数据进行编码并匹配3D对象 190
准备工作 191
工作流程 191
代码实现――生成器 193
准备工作 193
工作流程 194
代码实现――判别器 196
准备工作 196
工作流程 197
代码实现――GAN 199
准备工作 199
工作流程 199
训练模型 200
准备工作 201
工作流程 201
练习 208