前言
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 总结