python人工智能项目实例-Python人工智能项目实战

译者序

前言

作者简介

审校者简介

第1章 人工智能系统基础知识1

1.1 神经网络2

1.2 神经激活单元5

1.2.1 线性激活单元5

1.2.2 sigmoid激活单元6

1.2.3 双曲正切激活函数6

1.2.4 修正线性单元7

1.2.5 softmax激活单元9

1.3 用反向传播算法训练神经网络9

1.4 卷积神经网络12

1.5 循环神经网络13

1.6 生成对抗网络16

1.7 强化学习18

1.7.1 Q学习19

1.7.2 深度Q学习20

1.8 迁移学习21

1.9 受限玻尔兹曼机22

1.10 自编码器23

1.11 总结24

第2章 迁移学习26

2.1 技术要求26

2.2 迁移学习简介27

2.3 迁移学习和糖尿病视网膜病变检测28

2.4 糖尿病视网膜病变数据集29

2.5 定义损失函数30

2.6 考虑类别不平衡问题31

2.7 预处理图像32

2.8 使用仿射变换生成额外数据33

2.8.1 旋转34

2.8.2 平移34

2.8.3 缩放35

2.8.4 反射35

2.8.5 通过仿射变换生成额外的图像36

2.9 网络架构36

2.9.1 VGG16迁移学习网络38

2.9.2 InceptionV3迁移学习网络39

2.9.3 ResNet50迁移学习网络39

2.10 优化器和初始学习率40

2.11 交叉验证40

2.12 基于验证对数损失的模型检查点40

2.13 训练过程的Python实现41

2.14 类别分类结果50

2.15 在测试期间进行推断50

2.16 使用回归而非类别分类52

2.17 使用keras sequential工具类生成器53

2.18 总结57

第3章 神经机器翻译58

3.1 技术要求59

3.2 基于规则的机器翻译59

3.2.1 分析阶段59

3.2.2 词汇转换阶段60

3.2.3 生成阶段60

3.3 统计机器学习系统60

3.3.1 语言模型61

3.3.2 翻译模型63

3.4 神经机器翻译65

3.4.1 编码器?C解码器模型65

3.4.2 使用编码器?C解码器模型进行推断66

3.5 实现序列到序列的神经机器翻译67

3.5.1 处理输入数据67

3.5.2 定义神经翻译机器的模型71

3.5.3 神经翻译机器的损失函数73

3.5.4 训练模型73

3.5.5 构建推断模型74

3.5.6 单词向量嵌入78

3.5.7 嵌入层79

3.5.8 实现基于嵌入的NMT79

3.6 总结84

第4章 基于GAN的时尚风格迁移85

4.1 技术要求85

4.2 DiscoGAN86

4.3 CycleGAN88

4.4 学习从手绘轮廓生成自然手提包89

4.5 预处理图像89

4.6 DiscoGAN的生成器91

4.7 DiscoGAN的判别器93

4.8 构建网络和定义损失函数94

4.9 构建训练过程97

4.10 GAN训练中的重要参数值99

4.11 启动训练100

4.12 监督生成器和判别器的损失101

4.13 DiscoGAN生成的样例图像103

4.14 总结104

第5章 视频字幕应用105

5.1 技术要求105

5.2 视频字幕中的CNN和LSTM106

5.3 基于序列到序列的视频字幕系统107

5.4 视频字幕系统数据集109

5.5 处理视频图像以创建CNN特征110

5.6 处理视频的带标签字幕113

5.7 构建训练集和测试集114

5.8 构建模型115

5.8.1 定义模型的变量116

5.8.2 编码阶段117

5.8.3 解码阶段117

5.8.4 计算小批量损失118

5.9 为字幕创建单词词汇表118

5.10 训练模型119

5.11 训练结果123

5.12 对未见过的视频进行推断124

5.12.1 推断函数126

5.12.2 评估结果127

5.13 总结128

第6章 智能推荐系统129

6.1 技术要求129

6.2 什么是推荐系统129

6.3 基于潜在因子分解的推荐系统131

6.4 深度学习与潜在因子协同过滤132

6.5 SVD++136

6.6 基于受限玻尔兹曼机的推荐系统138

6.7 对比分歧139

6.8 使用RBM进行协同过滤140

6.9 使用RBM实现协同过滤142

6.9.1 预处理输入143

6.9.2 构建RBM网络进行协作过滤144

6.9.3 训练RBM 147

6.10 使用训练好的RBM进行推断149

6.11 总结150

第7章 用于电影评论情感分析的移动应用程序151

7.1 技术要求152

7.2 使用TensorFlow mobile构建Android移动应用程序152

7.3 Android应用中的电影评论评分153

7.4 预处理电影评论文本154

7.5 构建模型156

7.6 训练模型157

7.7 将模型冻结为protobuf格式159

7.8 为推断创建单词到表征的字典161

7.9 应用程序交互界面设计162

7.10 Android应用程序的核心逻辑164

7.11 测试移动应用168

7.12 总结170

第8章 提供客户服务的AI聊天机器人171

8.1 技术要求172

8.2 聊天机器人的架构172

8.3 基于LSTM的序列到序列模型173

8.4 建立序列到序列模型174

8.5 Twitter平台上的聊天机器人174

8.5.1 构造聊天机器人的训练数据175

8.5.2 将文本数据转换为单词索引175

8.5.3 替换匿名用户名176

8.5.4 定义模型176

8.5.5 用于训练模型的损失函数178

8.5.6 训练模型179

8.5.7 从模型生成输出响应180

8.5.8 所有代码连起来180

8.5.9 开始训练181

8.5.10 对一些输入推特的推断结果181

8.6 总结182

第9章 基于增强学习的无人驾驶183

9.1 技术要求183

9.2 马尔科夫决策过程184

9.3 学习Q值函数185

9.4 深度Q学习186

9.5 形式化损失函数186

9.6 深度双Q学习187

9.7 实现一个无人驾驶车的代码189

9.8 深度Q学习中的动作离散化189

9.9 实现深度双Q值网络190

9.10 设计智能体191

9.11 自动驾驶车的环境194

9.12 将所有代码连起来197

9.13 训练结果202

9.14 总结203

第10章 从深度学习的角度看CAPTCHA204

10.1 技术要求205

10.2 通过深度学习破解CAPTCHA205

10.2.1 生成基本的CAPTCHA205

10.2.2 生成用于训练CAPTCHA破解器的数据206

10.2.3 CAPTCHA破解器的CNN架构208

10.2.4 预处理CAPTCHA图像208

10.2.5 将CAPTCHA字符转换为类别209

10.2.6 数据生成器210

10.2.7 训练CAPTCHA破解器211

10.2.8 测试数据集的准确性212

10.3 通过对抗学习生成CAPTCHA214

10.3.1 优化GAN损失215

10.3.2 生成器网络215

10.3.3 判别器网络216

10.3.4 训练GAN219

10.3.5 噪声分布220

10.3.6 数据预处理220

10.3.7 调用训练221

10.3.8 训练期间CAPTCHA的质量222

10.3.9 使用训练后的生成器创建CAPTCHA224

10.4 总结225

你可能感兴趣的