使用生成模型构建的AI系统可自动地利用源数据进行学习和理解,且无须对数据进行标记。本书将帮助你构建和分析深度学习模型并将其应用于现实问题,从多个数据集(主要集中于图像领域)来开发智能和具有创造力的应用。本书从生成模型的基础开始,带你了解生成对抗网络及其构建模块背后的理论。通过使用TensorFlow、Keras和PyTorch等库,你可以利用GAN来克服文本到图像合成的问题。在处理大型数据集时,将风格从一个域传递到另一个域会变得令人头痛。本书将使用真实世界的例子来展示如何克服这一困难。本书将帮助你理解并构建生成对抗网络模型,并在生产环境中有效、准确地使用它们。通过本书你将会:
◎了解深度学习的基础知识,以及判别模型和生成模型之间的区别
◎利用基于生成对抗网络(GAN)和真实世界的数据集构建半监督学习模型来生成图像
◎通过利用小批量、特征匹配和边界均衡等技术来解决模式崩溃、训练不稳定等挑战,以对GAN模型进行调优
◎使用深度学习堆叠架构从文本生成图像
◎组合多个生成模型来探索跨域的关系
◎探索多种在生产环境部署深度模型的方法
《GAN:实战生成对抗网络》介绍深度学习领域一个十分活跃的分支——生成对抗网络(GAN)。《GAN:实战生成对抗网络》中覆盖了深度学习的基础、对抗网络背后的原理以及构建方式等内容。同时《GAN:实战生成对抗网络》还介绍了多个真实世界中使用对抗网络构建智能应用的案例并提供了具体的代码以及部署方法,旨在帮助读者能够在真正的生产环境中使用生成对抗网络。
《GAN:实战生成对抗网络》适合数据科学家、算法工程师、数据挖掘工程师以及其他机器学习领域相关的从业人员,以帮助他们在工作中应用生成对抗模型;也适合机器学习和深度学习的爱好者、初学者来了解深度学习领域的新魔力。
前言
1 深度学习概述
1.1 深度学习的演化
1.1.1 sigmoid激发
1.1.2 修正线性单元(ReLU)
1.1.3 指数线性单元(ELU)
1.1.4 随机梯度下降(SGD)
1.1.5 学习速率调优
1.1.6 正则化
1.1.7 权重分享以及池化
1.1.8 局部感受野
1.1.9 卷积网络(ConvNet)
1.2 逆卷积/转置卷积
1.2.1 递归神经网络和LSTM
1.2.2 深度神经网络
1.2.3 判别模型和生成模型的对比
1.3 总结
2 无监督学习GAN
2.1 利用深度神经网络自动化人类任务
2.1.1 GAN的目的
2.1.2 现实世界的一个比喻
2.1.3 GAN的组成
2.2 GAN的实现
2.2.1 GAN的应用
2.2.2 在Keras上利用DCGAN实现图像生成
2.2.3 利用TensorFlow实现SSGAN
2.3 GAN模型的挑战
2.3.1 启动及初始化的问题
2.3.2 模型坍塌
2.3.3 计数方面的问题
2.3.4 角度方面的问题
2.3.5 全局结构方面的问题
2.4 提升GAN训练效果的方法
2.4.1 特征匹配
2.4.2 小批量
2.4.3 历史平均
2.4.4 单侧标签平滑
2.4.5 输入规范化
2.4.6 批规范化
2.4.7 利用ReLU和MaxPool避免稀疏梯度
2.4.8 优化器和噪声
2.4.9 不要仅根据统计信息平衡损失
2.5 总结
3 图像风格跨域转换
3.1 弥补监督学习和无监督学习之间的空隙
3.2 条件GAN介绍
3.2.1 利用CGAN生成时尚衣柜
3.2.2 利用边界均衡固化GAN训练
3.3 BEGAN的训练过程
3.3.1 BEGAN的架构
3.3.2 利用TensorFlow实现BEGAN
3.4 利用CycleGAN实现图像风格的转换
3.4.1 CycleGAN的模型公式
3.4.2 利用TensorFlow将苹果变成橘子
3.4.3 利用CycleGAN将马变为斑马
3.5 总结
4 从文本构建逼真的图像
4.1 StackGAN介绍
4.1.1 条件强化
4.1.2 StackGAN的架构细节
4.1.3 利用TensorFlow从文本生成图像
4.2 利用DiscoGAN探索跨域的关系
4.2.1 DiscoGAN架构以及模型公式
4.2.2 DiscoGAN的实现
4.3 利用PyTorch从边框生成手提包
4.4 利用PyTorch进行性别转换
4.5 DiscoGAN和CycleGAN的对比
4.6 总结
5 利用多种生成模型生成图像
5.1 迁移学习介绍
5.1.1 迁移学习的目的
5.1.2 多种利用预训练模型的方法
5.1.3 利用Keras对车、猫、狗和花进行分类
5.2 利用Apache Spark进行大规模深度学习
5.2.1 利用Spark深度学习模块运行预训练模型
5.2.2 利用BigDL运行大规模手写数字识别
5.2.3 利用SRGAN生成高清晰度图像
5.2.4 SRGAN的架构
5.3 利用DeepDream生成梦幻的艺术图像
5.4 在TensorFlow上利用VAE生成手写数字
5.5 VAE在真实世界的比喻
5.6 GAN和VAE两个生成模型的比较
5.7 总结
6 将机器学习带入生产环境
6.1 利用DCGAN构建一个图像矫正系统
6.1.1 构建图像矫正系统的步骤
6.1.2 在生产环境部署模型的挑战
6.2 利用容器的微服务架构
6.2.1 单体架构的缺陷
6.2.2 微服务架构的优点
6.2.3 使用容器的优点
6.3 部署深度模型的多种方法
6.3.1 方法1——离线建模和基于微服务的容器化部署
6.3.2 方法2——离线建模和无服务器部署
6.3.3 方法3——在线学习
6.3.4 方法4——利用托管机器学习服务
6.4 在Docker上运行基于Keras的深度模型
6.5 在GKE上部署深度模型
6.6 利用AWS Lambda和Polly进行无服务器的图像识别并生成音频
6.6.1 修改Lambda环境下代码和包的步骤
6.6.2 利用云托管服务进行人脸识别
6.7 总结