描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 是国际标准书号ISBN: 28515498
《Python深度学习:基于PyTorch》
(1)核心作者在大数据和人工智能领域有着超过20年的工作经验,实战经验非常丰富,其他几位作者也在大数据和人工智能领域颇有造诣。
(2)作者团队之前还著有《深入理解Spark机器学习》、《Python深度学习:基于TensorFlow》、《自己动手做大数据系统》等畅销书。
(3)本书是《Python深度学习:基于TensorFlow》的姊妹篇。
(4)本书从工具使用、技术原理、算法实现、工程实践等维度全面、系统讲解了深度学习。
(5)本书在内容的选择、安排和表现形式上精心谋划,目的是确保高质量内容的同时,让深度学习的学习门槛大大降低。
《Python深度学习:基于TensorFlow》
(1)4位作者在大数据和人工智能领域有多年积累,经验丰富;
(2)从Python和数学基础,到机器学习和TensorFlow理论,再到深度学习的应用和扩展,为深度学习提供全栈式内容解决方案;
(3)包含大量实战案例和综合性项目案例;
(4)图形化的表达方式,降低读者学习门槛。
《Python深度学习:基于PyTorch》
这是一本基于新的Python和PyTorch版本的深度学习著作,旨在帮助读者低门槛进入深度学习领域,轻松速掌握深度学习的理论知识和实践方法,快速实现从入门到进阶的转变。
本书是多位人工智能技术专家和大数据技术专家多年工作经验的结晶,从工具使用、技术原理、算法设计、案例实现等多个维度对深度学习进行了系统的讲解。内容选择上,广泛涉猎、重点突出、注重实战;内容安排上,实例切入、由浅入深、循序渐进;表达形式上,深度抽象、化繁为简、用图说话。
本书共16章,分为三部分:
*部分(第1~4章) PyTorch基础
首先讲解了机器学习和数据科学中必然会用到的工具Numpy的使用,然后从多个角度讲解了Pytorch的必备基础知识,*后详细讲解了Pytorch的神经网络工具箱和数据处理工具箱。
第二部分(第5~8章) 深度学习基础
这部分从技术原理、算法设计、实践技巧等维度讲解了机器学习和深度学习的经典理理论、算法以及提升深度学习模型性能的多种技巧,涵盖视觉处理、NLP和生成式深度学习等主题。
第三部分(第9~16章) 深度学习实践
这部分从工程实践的角度讲解了深度学习的工程方法和在一些热门领域的实践方案,具体包括人脸识别、图像修复、图像增强、风格迁移、中英文互译、生成式对抗网络、对抗攻击、强化学习、深度强化学习等内容。
《Python深度学习:基于TensorFlow》
本书共22章,分为三个部分。*部分(第1~5章)为Python及应用数学基础部分,介绍Python和TensorFlow的基石Numpy,深度学习框架的鼻祖Theano,以及机器学习、深度学习算法应用数学基础等内容。第二部分(第6~20章)为深度学习理论与应用部分,介绍机器学习的经典理论和算法,深度学习理论及方法,TensorFlow基于CPU、GPU版本的安装及使用、TensorFlow基础、TensorFlow的一些新API,深度学习中神经网络方面的模型及TensorFlow实战案例,TensorFlow的高级封装,TensorFlow综合实战案例等内容。第三部分(第21~22章)为扩展部分,介绍强化学习、生成式对抗网络等内容。
《Python深度学习:基于PyTorch》
前言
第一部分 PyTorch基础
第1章 Numpy基础2
1.1 生成Numpy数组3
1.1.1 从已有数据中创建数组3
1.1.2 利用random模块生成数组4
1.1.3 创建特定形状的多维数组5
1.1.4 利用arange、linspace函数生成数组6
1.2 获取元素7
1.3 Numpy的算术运算9
1.3.1 对应元素相乘9
1.3.2 点积运算10
1.4 数组变形11
1.4.1 更改数组的形状11
1.4.2 合并数组14
1.5 批量处理16
1.6 通用函数17
1.7 广播机制19
1.8 小结20
第2章 PyTorch基础21
2.1 为何选择PyTorch?21
2.2 安装配置22
2.2.1 安装CPU版PyTorch22
2.2.2 安装GPU版PyTorch24
2.3 Jupyter Notebook环境配置26
2.4 Numpy与Tensor28
2.4.1 Tensor概述28
2.4.2 创建Tensor28
2.4.3 修改Tensor形状30
2.4.4 索引操作31
2.4.5 广播机制32
2.4.6 逐元素操作32
2.4.7 归并操作33
2.4.8 比较操作34
2.4.9 矩阵操作35
2.4.10 PyTorch与Numpy比较35
2.5 Tensor与Autograd36
2.5.1 自动求导要点36
2.5.2 计算图37
2.5.3 标量反向传播38
2.5.4 非标量反向传播39
2.6 使用Numpy实现机器学习41
2.7 使用Tensor及Antograd实现机器学习44
2.8 使用TensorFlow架构46
2.9 小结48
第3章 PyTorch神经网络工具箱49
3.1 神经网络核心组件49
3.2 实现神经网络实例50
3.2.1 背景说明51
3.2.2 准备数据52
3.2.3 可视化源数据53
3.2.4 构建模型53
3.2.5 训练模型54
3.3 如何构建神经网络?56
3.3.1 构建网络层56
3.3.2 前向传播57
3.3.3 反向传播57
3.3.4 训练模型58
3.4 神经网络工具箱nn58
3.4.1 nn.Module58
3.4.2 nn.functional58
3.5 优化器59
3.6 动态修改学习率参数60
3.7 优化器比较60
3.8 小结62
第4章 PyTorch数据处理工具箱63
4.1 数据处理工具箱概述63
4.2 utils.data简介64
4.3 torchvision简介66
4.3.1 transforms67
4.3.2 ImageFolder67
4.4 可视化工具69
4.4.1 tensorboardX简介69
4.4.2 用tensorboardX可视化神经网络71
4.4.3 用tensorboardX可视化损失值72
4.4.4 用tensorboardX可视化特征图73
4.5 本章小结74
第二部分 深度学习基础
第5章 机器学习基础76
5.1 机器学习的基本任务76
5.1.1 监督学习77
5.1.2 无监督学习77
5.1.3 半监督学习78
5.1.4 强化学习78
5.2 机器学习一般流程78
5.2.1 明确目标79
5.2.2 收集数据79
5.2.3 数据探索与预处理79
5.2.4 选择模型及损失函数80
5.2.5 评估及优化模型81
5.3 过拟合与欠拟合81
5.3.1 权重正则化82
5.3.2 Dropout正则化83
5.3.3 批量正则化86
5.3.4 权重初始化88
5.4 选择合适激活函数89
5.5 选择合适的损失函数90
5.6 选择合适优化器92
5.6.1 传统梯度优化的不足93
5.6.2 动量算法94
5.6.3 AdaGrad算法96
5.6.4 RMSProp算法97
5.6.5 Adam算法98
5.7 GPU加速99
5.7.1 单GPU加速100
5.7.2 多GPU加速101
5.7.3 使用GPU注意事项104
5.8 本章小结104
第6章 视觉处理基础105
6.1 卷积神经网络简介105
6.2 卷积层107
6.2.1 卷积核108
6.2.2 步幅109
6.2.3 填充111
6.2.4 多通道上的卷积111
6.2.5 激活函数113
6.2.6 卷积函数113
6.2.7 转置卷积114
6.3 池化层115
6.3.1 局部池化116
6.3.2 全局池化117
6.4 现代经典网络119
6.4.1 LeNet-5模型119
6.4.2 AlexNet模型120
6.4.3 VGG模型121
6.4.4 GoogleNet模型122
6.4.5 ResNet模型123
6.4.6 胶囊网络简介124
6.5 PyTorch实现CIFAR-10多分类125
6.5.1 数据集说明125
6.5.2 加载数据125
6.5.3 构建网络127
6.5.4 训练模型128
6.5.5 测试模型129
6.5.6 采用全局平均池化130
6.5.7 像Keras一样显示各层参数131
6.6 模型集成提升性能133
6.6.1 使用模型134
6.6.2 集成方法134
6.6.3 集成效果135
6.7 使用现代经典模型提升性能136
6.8 本章小结137
第7章 自然语言处理基础138
7.1 循环神经网络基本结构138
7.2 前向传播与随时间反向传播140
7.3 循环神经网络变种143
7.3.1 LSTM144
7.3.2 GRU145
7.3.3 Bi-RNN146
7.4 循环神经网络的PyTorch实现146
7.4.1 RNN实现147
7.4.2 LSTM实现149
7.4.3 GRU实现151
7.5 文本数据处理152
7.6 词嵌入153
7.6.1 Word2Vec原理154
7.6.2 CBOW模型155
7.6.3 Skip-Gram模型155
7.7 PyTorch实现词性判别156
7.7.1 词性判别主要步骤156
7.7.2 数据预处理157
7.7.3 构建网络157
7.7.4 训练网络158
7.7.5 测试模型160
7.8 用LSTM预测股票行情160
7.8.1 导入数据160
7.8.2 数据概览161
7.8.3 预处理数据162
7.8.4 定义模型163
7.8.5 训练模型163
7.8.6 测试模型164
7.9 循环神经网络应用场景165
7.10 小结166
第8章 生成式深度学习167
8.1 用变分自编码器生成图像167
8.1.1 自编码器168
8.1.2 变分自编码器168
8.1.3 用变分自编码器生成图像169
8.2 GAN简介173
8.2.1 GAN架构173
8.2.2 GAN的损失函数174
8.3 用GAN生成图像175
8.3.1 判别器175
8.3.2 生成器175
8.3.3 训练模型175
8.3.4 可视化结果177
8.4 VAE与GAN的优缺点178
8.5 ConditionGAN179
8.5.1 CGAN的架构179
8.5.2 CGAN生成器180
8.5.3 CGAN判别器180
8.5.4 CGAN损失函数181
8.5.5 CGAN可视化181
8.5.6 查看指定标签的数据182
8.5.7 可视化损失值182
8.6 DCGAN183
8.7 提升GAN训练效果的一些技巧184
8.8 小结185
第三部分 深度学习实践
第9章 人脸检测与识别188
9.1 人脸识别一般流程188
9.2 人脸检测189
9.2.1 目标检测189
9.2.2 人脸定位191
9.2.3 人脸对齐191
9.2.4 MTCNN算法192
9.3 特征提取193
9.4 人脸识别198
9.4.1 人脸识别主要原理198
9.4.2 人脸识别发展198
9.5 PyTorch实现人脸检测与识别199
9.5.1 验证检测代码199
9.5.2 检测图像200
9.5.3 检测后进行预处理200
9.5.4 查看经检测后的图像201
9.5.5 人脸识别202
9.6 小结202
第10章 迁移学习实例203
10.1 迁移学习简介203
10.2 特征提取204
10.2.1 PyTorch提供的预处理模块205
10.2.2 特征提取实例206
10.3 数据增强209
10.3.1 按比例缩放209
10.3.2 裁剪210
10.3.3 翻转210
10.3.4 改变颜色211
10.3.5 组合多种增强方法211
10.4 微调实例212
10.4.1 数据预处理212
10.4.2 加载预训练模型213
10.4.3 修改分类器213
10.4.4 选择损失函数及优化器213
10.4.5 训练及验证模型214
10.5 清除图像中的雾霾214
10.6 小结217
第11章 神经网络机器翻译实例218
11.1 Encoder-Decoder模型原理218
11.2 注意力框架220
11.3 PyTorch实现注意力Decoder224
11.3.1 构建Encoder224
11.3.2 构建简单Decoder225
11.3.3 构建注意力Decoder226
11.4 用注意力机制实现中英文互译227
11.4.1 导入需要的模块228
11.4.2 数据预处理228
11.4.3 构建模型231
11.4.4 训练模型234
11.4.5 随机采样,对模型进行测试235
11.4.6 可视化注意力236
11.5 小结237
第12章 实战生成式模型238
12.1 DeepDream模型238
12.1.1 Deep Dream原理238
12.1.2 DeepDream算法流程239
12.1.3 用PyTorch实现Deep Dream240
12.2 风格迁移243
12.2.1 内容损失244
12.2.2 风格损失245
12.2.3 用PyTorch实现神经网络风格迁移247
12.3 PyTorch实现图像修复252
12.3.1 网络结构252
12.3.2 损失函数252
12.3.3 图像修复实例253
12.4 PyTorch实现DiscoGAN255
12.4.1 DiscoGAN架构256
12.4.2 损失函数258
12.4.3 DiscoGAN实现258
12.4.4 用PyTorch实现从边框生成鞋子260
12.5 小结262
第13章 Caffe2模型迁移实例263
13.1 Caffe2简介263
13.2 Caffe如何升级到Caffe2264
13.3 PyTorch如何迁移到Caffe2265
13.4 小结268
第14章 AI新方向:对抗攻击269
14.1 对抗攻击简介269
14.1.1 白盒攻击与黑盒攻击270
14.1.2 无目标攻击与有目标攻击270
14.2 常见对抗样本生成方式271
14.2.1 快速梯度符号法271
14.2.2 快速梯度算法271
14.3 PyTorch实现对抗攻击272
14.3.1 实现无目标攻击272
14.3.2 实现有目标攻击274
14.4 对抗攻击和防御措施276
14.4.1 对抗攻击276
14.4.2 常见防御方法分类276
14.5 总结277
第15章 强化学习278
15.1 强化学习简介278
15.2 Q-Learning原理281
15.2.1 Q-Learning主要流程281
15.2.2 Q函数282
15.2.3 贪婪策略283
15.3 用PyTorch实现Q-Learning283
15.3.1 定义Q-Learing主函数283
15.3.2 执行Q-Learing284
15.4 SARSA算法285
15.4.1 SARSA算法主要步骤285
15.4.2 用PyTorch实现SARSA算法286
15.5 小结287
第16章 深度强化学习288
16.1 DQN算法原理288
16.1.1 Q-Learning方法的局限性289
16.1.2 用DL处理RL需要解决的问题289
16.1.3 用DQN解决方法289
16.1.4 定义损失函数290
16.1.5 DQN的经验回放机制290
16.1.6 目标网络290
16.1.7 网络模型291
16.1.8 DQN算法291
16.2 用PyTorch实现DQN算法292
16.3 小结295
附录A PyTorch0.4版本变更296
附录B AI在各行业的最新应用301
《Python深度学习:基于TensorFlow》
前言
第一部分 Python及应用数学基础
第1章 NumPy常用操作 2
1.1 生成ndarray的几种方式 3
1.2 存取元素 5
1.3 矩阵操作 6
1.4 数据合并与展平 7
1.5 通用函数 9
1.6 广播机制 11
1.7 小结 12
第2章 Theano基础 13
2.1 安装 14
2.2 符号变量 15
2.3 符号计算图模型 17
2.4 函数 18
2.5 条件与循环 21
2.6 共享变量 23
2.7 小结 24
第3章 线性代数 25
3.1 标量、向量、矩阵和张量 25
3.2 矩阵和向量运算 28
3.3 特殊矩阵与向量 29
3.4 线性相关性及向量空间 31
3.5 范数 32
3.6 特征值分解 33
3.7 奇异值分解 34
3.8 迹运算 35
3.9 实例:用Python实现主成分分析 36
3.10 小结 39
第4章 概率与信息论 40
4.1 为何要学概率、信息论 40
4.2 样本空间与随机变量 41
4.3 概率分布 42
4.3.1 离散型随机变量 42
4.3.2 连续型随机变量 45
4.4 边缘概率 47
4.5 条件概率 47
4.6 条件概率的链式法则 48
4.7 独立性及条件独立性 48
4.8 期望、方差及协方差 49
4.9 贝叶斯定理 52
4.10 信息论 53
4.11 小结 56
第5章 概率图模型 57
5.1 为何要引入概率图 57
5.2 使用图描述模型结构 58
5.3 贝叶斯网络 59
5.3.1 隐马尔可夫模型简介 60
5.3.2 隐马尔可夫模型三要素 60
5.3.3 隐马尔可夫模型三个基本问题 61
5.3.4 隐马尔可夫模型简单实例 62
5.4 马尔可夫网络 64
5.4.1 马尔可夫随机场 64
5.4.2 条件随机场 65
5.4.3 实例:用Tensorflow实现条件随机场 66
5.5 小结 70
第二部分 深度学习理论与应用
第6章 机器学习基础 72
6.1 监督学习 72
6.1.1 线性模型 73
6.1.2 SVM 77
6.1.3 贝叶斯分类器 79
6.1.4 集成学习 81
6.2 无监督学习 84
6.2.1 主成分分析 84
6.2.2 k-means聚类 84
6.3 梯度下降与优化 85
6.3.1 梯度下降简介 86
6.3.2 梯度下降与数据集大小 87
6.3.3 传统梯度优化的不足 89
6.3.4 动量算法 90
6.3.5 自适应算法 92
6.3.6 有约束最优化 95
6.4 前馈神经网络 96
6.4.1 神经元结构 97
6.4.2 感知机的局限 98
6.4.3 多层神经网络 99
6.4.4 实例:用TensorFlow实现XOR 101
6.4.5 反向传播算法 103
6.5 实例:用Keras构建深度学习架构 109
6.6 小结 109
第7章 深度学习挑战与策略 110
7.1 正则化 110
7.1.1 正则化参数 111
7.1.2 增加数据量 115
7.1.3 梯度裁剪 116
7.1.4 提前终止 116
7.1.5 共享参数 117
7.1.6 Dropout 117
7.2 预处理 119
7.2.1 初始化 120
7.2.2 归一化 120
7.3 批量化 121
7.3.1 随机梯度下降法 121
7.3.2 批标准化 122
7.4 并行化 124
7.4.1 TensorFlow利用GPU加速 124
7.4.2 深度学习并行模式 125
7.5 选择合适的激活函数 127
7.6 选择合适代价函数 128
7.7 选择合适的优化算法 129
7.8 小结 130
第8章 安装TensorFlow 131
8.1 TensorFlow CPU版的安装 131
8.2 TensorFlow GPU版的安装 132
8.3 配置Jupyter Notebook 136
8.4 实例:CPU与GPU性能比较 137
8.5 实例:单GPU与多GPU性能比较 138
8.6 小结 140
第9章 TensorFlow基础 141
9.1 TensorFlow系统架构 141
9.2 数据流图 143
9.3 TensorFlow基本概念 144
9.3.1 张量 144
9.3.2 算子 145
9.3.3 计算图 146
9.3.4 会话 146
9.3.5 常量 148
9.3.6 变量 149
9.3.7 占位符 153
9.3.8 实例:比较constant、variable和placeholder 154
9.4 TensorFlow实现数据流图 156
9.5 可视化数据流图 156
9.6 TensorFlow分布式 158
9.7 小结 160
第10章 TensorFlow图像处理 162
10.1 加载图像 162
10.2 图像格式 163
10.3 把图像转换为TFRecord文件 164
10.4 读取TFRecord文件 165
10.5 图像处理实例 166
10.6 全新的数据读取方式—Dataset API 170
10.6.1 Dataset API 架构 170
10.6.2 构建Dataset 171
10.6.3 创建迭代器 174
10.6.4 从迭代器中获取数据 174
10.6.5 读入输入数据 175
10.6.6 预处理数据 175
10.6.7 批处理数据集元素 176
10.6.8 使用高级API 176
10.7 小结 177
第11章 TensorFlow神经元函数 178
11.1 激活函数 178
11.1.1 sigmoid函数 179
11.1.2 tanh函数 179
11.1.3 relu函数 180
11.1.4 softplus函数 181
11.1.5 dropout函数 181
11.2 代价函数 181
11.2.1 sigmoid_cross_entropy_with_logits函数 182
11.2.2 softmax_cross_entropy_with_logits函数 183
11.2.3 sparse_softmax_cross_entropy_with_logits函数 184
11.2.4 weighted_cross_entropy_with_logits函数 184
11.3 小结 185
第12章 TensorFlow自编码器 186
12.1 自编码简介 186
12.2 降噪自编码 188
12.3 实例:TensorFlow实现自编码 188
12.4 实例:用自编码预测信用卡欺诈 191
12.5 小结 197
第13章 TensorFlow实现Word2Vec 198
13.1 词向量及其表达 198
13.2 Word2Vec原理 199
13.2.1 CBOW模型 200
13.2.2 Skim-gram模型 200
13.3 实例:TensorFlow实现Word2Vec 201
13.4 小结 206
第14章 TensorFlow卷积神经网络 207
14.1 卷积神经网络简介 207
14.2 卷积层 208
14.2.1 卷积核 209
14.2.2 步幅 211
14.2.3 填充 212
14.2.4 多通道上的卷积 213
14.2.5 激活函数 214
14.2.6 卷积函数 215
14.3 池化层 216
14.4 归一化层 217
14.5 TensorFlow实现简单卷积神经网络 218
14.6 TensorFlow实现进阶卷积神经网络 219
14.7 几种经典卷积神经网络 223
14.8 小结 224
第15章 TensorFlow循环神经网络 226
15.1 循环神经网络简介 226
15.2 前向传播与随时间反向传播 228
15.3 梯度消失或爆炸 231
15.4 LSTM算法 232
15.5 RNN其他变种 235
15.6 RNN应用场景 236
15.7 实例:用LSTM实现分类 237
15.8 小结 241
第16章 TensorFlow高层封装 242
16.1 TensorFlow高层封装简介 242
16.2 Estimator简介 243
16.3 实例:使用Estimator预定义模型 245
16.4 实例:使用Estimator自定义模型 247
16.5 Keras简介 252
16.6 实例:Keras实现序列式模型 253
16.7 TFLearn简介 255
16.7.1 利用TFLearn解决线性回归问题 256
16.7.2 利用TFLearn进行深度学习 256
16.8 小结 257
第17章 情感分析 258
17.1 深度学习与自然语言处理 258
17.2 词向量简介 259
17.3 循环神经网络 260
17.4 迁移学习简介 261
17.5 实例:TensorFlow实现情感分析 262
17.5.1 导入数据 262
17.5.2 定义辅助函数 267
17.5.3 构建RNN模型 267
17.5.4 调优超参数 269
17.5.5 训练模型 270
17.6 小结 272
第18章 利用TensorFlow预测乳腺癌 273
18.1 数据说明 273
18.2 数据预处理 274
18.3 探索数据 276
18.4 构建神经网络 279
18.5 训练并评估模型 281
18.6 小结 283
第19章 聊天机器人 284
19.1 聊天机器人原理 284
19.2 带注意力的框架 286
19.3 用TensorFlow实现聊天机器人 289
19.3.1 接口参数说明 290
19.3.2 训练模型 293
19.4 小结 302
第20章 人脸识别 303
20.1 人脸识别简介 303
20.2 项目概况 306
20.3 实施步骤 307
20.3.1 数据准备 307
20.3.2 预处理数据 307
20.3.3 训练模型 309
20.3.4 测试模型 313
20.4 小结 316
第三部分 扩展篇
第21章 强化学习基础 318
21.1 强化学习简介 318
21.2 强化学习常用算法 320
21.2.1 Q-Learning算法 320
21.2.2 Sarsa算法 322
21.2.3 DQN算法 322
21.3 小结 324
第22章 生成式对抗网络 325
22.1 GAN简介 325
22.2 GAN的改进版本 327
22.3 小结 329
《Python深度学习:基于PyTorch》
为什么写这本书
在人工智能时代,如何尽快掌握人工智能的核心——深度学习,是每个欲进入该领域的人都会面临的问题。目前,深度学习框架很多,如TensorFlow、PyTorch、Keras、FastAI、CNTK等,这些框架各有优缺点,应该如何选择?是否有一些标准?我认为,适合自己的就是最好的。
如果你是一位初学者,建议选择PyTorch,有了一定的基础之后,可以学习其他一些架构,如TensorFlow、CNTK等。建议初学者选择PyTorch的主要依据是:
1)PyTorch是动态计算图,其用法更贴近Python,并且,PyTorch与Python共用了许多Numpy的命令,可以降低学习的门槛,比TensorFlow更容易上手。
2)PyTorch需要定义网络层、参数更新等关键步骤,这非常有助于理解深度学习的核心;而Keras虽然也非常简单,且容易上手,但封装粒度很粗,隐藏了很多关键步骤。
3)PyTorch的动态图机制在调试方面非常方便,如果计算图运行出错,马上可以跟踪问题。PyTorch的调试与Python的调试一样,通过断点检查就可以高效解决问题。
4)PyTorch的流行度仅次于TensorFlow。而最近一年,在GitHub关注度和贡献者的增长方面,PyTorch跟TensorFlow基本持平。PyTorch的搜索热度持续上涨,加上FastAI的支持,PyTorch将受到越来越多机器学习从业者的青睐。
深度学习是人工智能的核心,随着大量相关项目的落地,人们对深度学习的兴趣也持续上升。不过掌握深度学习却不是一件轻松的事情,尤其是对机器学习或深度学习的初学者来说,挑战更多。为了广大人工智能初学者或爱好者能在较短时间内掌握深度学习基础及利用PyTorch解决深度学习问题,我们花了近一年时间打磨这本书,在内容选择、安排和组织等方面采用了如下方法。
(1)内容选择:广泛涉猎 精讲 注重实战
深度学习涉及面比较广,且有一定门槛。没有一定广度很难达到一定深度,所以本书内容基本包括了机器学习、深度学习的主要内容。书中各章一般先简单介绍相应的架构或原理,帮助读者理解深度学习的本质。当然,如果只有概念、框架、原理、数学公式的介绍,可能就显得有点抽象或乏味,所以,每章都配有大量实践案例,通过实例有利于加深对原理和公式的理解,同时有利于把相关内容融会贯通。
(2)内容安排:简单实例开始 循序渐进
深度学习是一块难啃的硬骨头,对有一定开发经验和数学基础的从业者是这样,对初学者更是如此。其中卷积神经网络、循环神经网络、对抗式神经网络是深度学习的基石,同时也是深度学习的3大硬骨头。为了让读者更好地理解掌握这些网络,我们采用循序渐进的方式,先从简单特例开始,然后逐步介绍更一般性的内容,最后通过一些PyTorch代码实例实现之,整本书的结构及各章节内容安排都遵循这个原则。此外,一些优化方法也采用这种方法,如对数据集Cifar10分类优化,先用一般卷积神经网络,然后使用集成方法、现代经典网络,最后采用数据增加和迁移方法,使得模型精度不断提升,由最初的68%,上升到74%和90%,最后达到95%左右。
(3)表达形式:让图说话,一张好图胜过千言万语
在机器学习、深度学习中有很多抽象的概念、复杂的算法、深奥的理论等,如Numpy的广播机制、梯度下降对学习率敏感、神经网络中的共享参数、动量优化法、梯度消失或爆炸等,这些内容如果只用文字来描述,可能很难达到使读者茅塞顿开的效果,但如果用一些图形来展现,再加上适当的文字说明,往往能取得非常好的效果,正所谓一张好图胜过千言万语。
除了以上谈到的3个方面,为了帮助大家更好理解、更快掌握机器学习、深度学习这些人工智能的核心内容,本书还包含了其他方法。我们希望通过这些方法方式带给你不一样的理解和体验,使抽象数学不抽象、深度学习不深奥、复杂算法不复杂、难学的深度学习也易学,这也是我们写这本书的主要目的。
至于人工智能(AI)的重要性,我想就不用多说了。如果说2016年前属于摆事实论证的阶段,2017年和2018年是事实胜于雄辩的阶段,那么2019年及以后就进入百舸争流、奋楫者先的阶段。目前各行各业都忙于“AI ”,大家都希望通过AI来改造传统流程、传统结构、传统业务、传统架构,其效果犹如历史上用电改造原有的各行各业一样。
《Python深度学习:基于TensorFlow》
为什么写这本书
人工智能新时代学什么?我们知道,Python是人工智能的首选语言,深度学习是人工智能的核心,而TensorFlow是深度学习框架中的No.1。所以我们在本书中将这三者有机结合,希望借此把这些目前应用最广、最有前景的工具和算法分享给大家。
人工智能新时代如何学?市面上介绍这些工具和深度学习理论的书籍已有很多,而且不乏经典大作,如讲机器学习理论和算法的有周志华老师的《机器学习》;介绍深度学习理论和算法的有伊恩·古德费洛等编著的《深度学习》;介绍TensorFlow实战的有黄文坚、唐源编著的《TensorFlow实战》、山姆·亚伯拉罕等编著的《面向机器智能的TensorFlow实践》等。这些都是非常经典的大作,如果你对机器学习、深度学习、人工智能感兴趣的话,这些书均值得一读。
本书在某些方面或许无法和它们相比,但我觉得也会有不少让你感到满意,甚至惊喜的地方。本书的特点具体包括以下几个方面。
1.内容选择:提供全栈式的解决方案
深度学习涉及范围比较广,既有对基础、原理的一些要求,也有对代码实现的要求。如何在较短时间内快速提高深度学习的水平?如何尽快把所学运用到实践中?这方面虽然没有捷径可言,但却有方法可循。本书基于这些考量,希望能给你提供一站式解决方案。具体内容包括:机器学习与深度学习的三大基石(线性代数、概率与信息论及数值分析);机器学习与深度学习的基本理论和原理;机器学习与深度学习的常用开发工具(Python、TensorFlow、Keras等),此外还有TensorFlow的高级封装及多个综合性实战项目等。
2.层次安排:找准易撕口、快速实现由点到面的突破
我们打开塑料袋时,一般从易撕口开始,这样即使再牢固的袋子也很容易打开。面对深度学习这个“牢固袋子”,我们也可采用类似方法,找准易撕口。如果没有,就创造一个易撕口,通过这个易撕口,实现点到面的快速扩展。本书在介绍很多抽象、深奥的算法时采用了这种方法。我们知道BP算法、循环神经网络是深度学习中的两块硬骨头,所以在介绍BP算法时,先介绍单个神经如何实现BP算法这个易撕口,再延伸到一般情况;在介绍循环神经网络时,我们也以一个简单实例为易撕口,再延伸到一般情况。希望通过这种方式,能帮助你把难题化易、把大事化小、把不可能转换为可能。
3.表达形式:让图说话,一张好图胜过千言万语
在机器学习、深度学习中有很多抽象的概念、复杂的算法、深奥的理论,如Numpy的广播机制、神经网络中的共享参数、动量优化法、梯度消失或爆炸等,这些内容如果只用文字来描述,可能很难达到茅塞顿开的效果,但如果用一些图形来展现,再加上适当的文字说明,往往能取得非常好的效果,正所谓一张好图胜过千言万语。
除了以上谈到的三个方面,为了帮助大家更好理解、更快掌握机器学习、深度学习这些人工智能的核心内容,本书还包含了其他方法。我们希望通过这些方法或方式带给你不一样的理解和体验,使抽象数学不抽象、深度学习不深奥、复杂算法不复杂,这或许就是我们写这本书的主要目的。
至于人工智能(AI)的重要性,想必不用多说了。如果说2016年前属于摆事实论证的阶段,那么2016年后已进入事实胜于雄辩的阶段了,而2018年后应该属于撸起袖子加油干的阶段。目前各行各业都忙于AI ,给人“忽如一夜春风来,千树万树梨花开”的感觉!
本书特色
要说特色的话,就是上面谈到的几点,概括来说就是:把理论原理与代码实现相结合;找准切入点,从简单到一般,把复杂问题简单化;图文并茂使抽象问题直观化;实例说明使抽象问题具体化。希望通过阅读本书,能给你带来新的视角、新的理解。
读者对象
对机器学习、深度学习感兴趣的广大在校学生、在职人员。
对Python、TensorFlow感兴趣,并希望进一步提升的在校学生、在职人员。
如何阅读本书
本书共22章,按照“基础→应用→扩展”的顺序展开,分为三个部分。
第一部分(第1~5章)为Python和应用数学基础部分:第1章介绍Python和TensorFlow的基石Numpy;第2章介绍深度学习框架的鼻祖Theano;第3~5章介绍机器学习、深度学习算法应用数学基础,包括线性代数、概率与信息论、概率图等内容。
第二部分(第6~20章)为深度学习理论与应用部分:第6章为机器学习基础,也是深度学习基础,其中包含很多机器学习的经典理论和算法;第7章为深度学习理论及方法;第8~10章介绍TensorFlow基于CPU、GPU版本的安装及使用,TensorFlow基础,TensorFlow的一些新API,如Dataset API、Estimator API等(基于TensorFlow1.6版本);第11~15章为深度学习中神经网络方面的模型及TensorFlow实战案例;第16章介绍TensorFlow的高级封装,如Keras、Estimator、TFLearn等内容;第17~20章为TensorFlow综合实战案例,包括图像识别、自然语言处理等内容。
第三部分(第21~22章)为扩展部分:介绍强化学习、生成式对抗网络等内容。
勘误和支持
书中代码和数据的下载地址为http://www.feiguyunai.com。由于笔者水平有限,加之编写时间仓促,书中难免出现错误或不准确的地方,恳请读者批评指正。
评论
还没有评论。