《JavaScript深度学习》PDF电子书免费下载

作者:  蔡善清,[美]斯坦利·比列斯奇,[美]埃里克·D. 尼尔森,[美]弗朗索瓦·肖莱

出版社: 人民邮电出版社

出版年: 2021年04月

ISBN: 9787115561145

~~滚到底部有网盘下载链接~~

内容简介

目录

第 一部分 动机和基本概念

第 1章 深度学习和JavaScript 2

1.1 人工智能、机器学习、神经网络和深度学习 4

1.1.1 人工智能 4

1.1.2 机器学习:它和传统编程有何不同 5

1.1.3 神经网络和深度学习 9

1.1.4 进行深度学习的必要性 12

1.2 为何要结合JavaScript和机器学习 14

1.2.1 用Node.js进行深度学习 19

1.2.2 JavaScript生态系统 20

1.3 为何选用TensorFlow.js 21

1.3.1 TensorFlow、Keras和TensorFlow.js的前世今生 21

1.3.2 为何选用TensorFlow.js 24

1.3.3 TensorFlow.js在全球的应用情况 25

1.3.4 本书中的TensorFlow.js知识 26

1.4 练习 27

1.5 小结 27

第二部分 深入浅出TensorFlow.js

第 2章 TensorFlow.js入门:从简单的线性回归开始 30

2.1 示例1:用TensorFlow.js预测下载任务所需时间 30

2.1.1 项目概览:预测下载任务所需时间 31

2.1.2 关于代码清单和控制台交互的注意事项 32

2.1.3 创建和格式化数据 32

2.1.4 定义简单的模型 35

2.1.5 使模型拟合训练集 37

2.1.6 用经过训练的模型进行预测 39

2.1.7 示例1 小结 40

2.2 model.fit()内部原理剖析:示例1中的梯度下降算法 41

2.2.1 直观理解梯度下降算法优化 41

2.2.2 探索梯度下降算法的内部原理:反向传播算法 46

2.3 示例2:涉及多个输入特征的线性回归 50

2.3.1 波士顿房价数据集 50

2.3.2 从GitHub获取并运行波士顿房价预测项目 51

2.3.3 读取波士顿房价数据 53

2.3.4 准确定义波士顿房价问题 54

2.3.5 线性回归前的准备工作:数据标准化 55

2.3.6 对波士顿房价数据集进行线性回归 59

2.4 如何理解模型 62

2.4.1 解释习得的权重 62

2.4.2 获取模型内部权重 64

2.4.3 关于可解释性的注意事项 65

2.5 练习 65

2.6 小结 65

第3章 添加非线性:升级加权和 67

3.1 非线性的定义及其优势 67

3.1.1 直观地理解神经网络中的非线性 69

3.1.2 超参数与超参数优化 75

3.2 输出端的非线性:分类任务的模型 77

3.2.1 二分类定义 78

3.2.2 度量二分类器的性能:准确率、精确率、召回率 81

3.2.3 ROC曲线:展示二分类问题中的取舍关系 83

3.2.4 二元交叉熵:二分类问题的损失函数 87

3.3 多分类问题 90

3.3.1 对分类数据进行one-hot编码 90

3.3.2 归一化指数函数:softmax函数 92

3.3.3 分类交叉熵:多分类问题的损失函数 94

3.3.4 混淆矩阵:更细粒度地分析多分类问题 95

3.4 练习 97

3.5 小结 98

第4章 用convnet 识别图像和音频 99

4.1 从向量到张量:图像数据的表示方法 99

4.2 你的第 一个convnet 101

4.2.1 conv2d层 103

4.2.2 maxPooling2d层 107

4.2.3 重复出现的卷积层加池化层组合模式 108

4.2.4 扁平化密集层 109

4.2.5 训练convnet 111

4.2.6 用convnet做预测 114

4.3 告别浏览器:用Node.js更快地训练模型 117

4.3.1 安装使用tfjs-node所需的依赖和模块 117

4.3.2 在浏览器中加载Node.js中保存的模型 122

4.4 口语单词识别:对音频数据使用convnet 124

4.5 练习 130

4.6 小结 130

第5章 迁移学习:复用预训练的神经网络 132

5.1 迁移学习简介:复用预训练模型 132

5.1.1 基于兼容的输出形状进行迁移学习:固化层 134

5.1.2 对不兼容的输出形状进行迁移学习:用基模型的输出创建新模型 139

5.1.3 用微调化迁移学习的收益:音频示例 150

5.2 通过对convnet进行迁移学习实现目标检测 159

5.2.1 基于合成场景的简单目标识别问题 160

5.2.2 深入了解如何实现简单的目标检测 161

5.3 练习 168

5.4 小结 169

第三部分 TensorFlow.js高级深度学习

第6章 处理数据 172

6.1 用tf.data管理数据 173

6.1.1 tf.data.Dataset对象 173

6.1.2 创建tf.data.Dataset对象 174

6.1.3 读取数据集对象中的数据 178

6.1.4 操作tfjs-data数据集 179

6.2 用model.fitDataset训练模型 183

6.3 获取数据的常见模式 188

6.3.1 处理CSV格式的数据 188

6.3.2 用tf.data.webcam()获取视频数据 193

6.3.3 用tf.data.microphone()获取音频数据 196

6.4 处理有缺陷的数据 198

6.4.1 数据理论 199

6.4.2 检测并清洗数据中的缺陷 202

6.5 数据增强 208

6.6 练习 211

6.7 小结 211

第7章 可视化数据和模型 212

7.1 数据可视化 212

7.1.1 用tfjs-vis模块可视化数据 213

7.1.2 综合性案例研究:用tfjs-vis模块可视化气象数据 220

7.2 可视化训练后的模型 225

7.2.1 可视化convnet内部激活函数的输出 226

7.2.2 找到卷积层的敏感点:化激活函数输出的输入图像 229

7.2.3 可视化和解读convnet的分类结果 233

7.3 延展阅读和补充资料 234

7.4 练习 235

7.5 小结 235

第8章 欠拟合、过拟合,以及机器学习的通用流程 236

8.1 定义气温预测问题 236

8.2 欠拟合、过拟合,以及应对措施 240

8.2.1 欠拟合 240

8.2.2 过拟合 242

8.2.3 用权重正则化应对过拟合并可视化其成效 244

8.3 机器学习的通用流程 248

8.4 练习 250

8.5 小结 251

第9章 针对序列和文本的深度学习 252

9.1 用RNN对气温预测问题进行第二次尝试 253

9.1.1 为何密集层无法为序列中的顺序信息建模 253

9.1.2 RNN层如何为序列中的顺序建模 255

9.2 构建针对文本的深度学习模型 263

9.2.1 文本在机器学习中的表示方法:one-hot编码和multi-hot编码 264

9.2.2 对情感分析问题的第 一次尝试 266

9.2.3 一种更高效的文本表示:词嵌入 267

9.2.4 1D convnet 269

9.3 采用注意力机制的序列到序列任务 277

9.3.1 定义序列到序列任务 277

9.3.2 编码器 解码器架构和注意力机制 279

9.3.3 详解基于注意力机制的编码器 解码器模型 282

9.4 延展阅读 286

9.5 练习 286

9.6 小结 287

第 10章 生成式深度学习 289

10.1 用LSTM 生成文本 290

10.1.1 下个字符预测器:一种简单的文本生成方法 290

10.1.2 基于LSTM的文本生成器示例 292

10.1.3 混沌值:调节生成文本的随机程度的阀门 296

10.2 变分自编码器:找到图像的高效、结构化表示 299

10.2.1 经典自编码器和变分自编码器:基本概念 299

10.2.2 VAE的具体示例:Fashion-MNIST数据集示例 302

10.3 用GAN生成图像 308

10.3.1 GAN背后的基本概念 309

10.3.2 ACGAN的基本组成部分 311

10.3.3 详解ACGAN的训练流程 315

10.3.4 见证针对MNIST数据集的ACGAN模型的训练和图像生成 317

10.4 延展阅读 320

10.5 练习 320

10.6 小结 321

第 11章 深度强化学习的基本原理 322

11.1 定义强化学习问题 323

11.2 策略网络和策略梯度:平衡倒立摆示例 326

11.2.1 用强化学习的框架定义平衡倒立摆问题 326

11.2.2 策略网络 328

11.2.3 训练策略网络:REINFORCE算法 331

11.3 价值网络和Q学习:《贪吃蛇》游戏示例 337

11.3.1 用强化学习的框架定义贪吃蛇问题 337

11.3.2 马尔可夫决策过程和Q值 340

11.3.3 深度Q网络 343

11.3.4 训练深度Q网络 346

11.4 延展阅读 356

11.5 练习 356

11.6 小结 358

第四部分 总结与结语

第 12章 模型的测试、优化和部署 360

12.1 测试TensorFlow.js模型 360

12.1.1 传统的单元测试 362

12.1.2 基于黄金值的测试 364

12.1.3 关于持续训练的一些思考 366

12.2 模型优化 367

12.2.1 通过训练后的权重量化优化模型体积 367

12.2.2 基于GraphModel转换的推断速度优化 373

12.3 部署TensorFlow.js模型到不同的平台和环境 378

12.3.1 部署到Web环境时的一些额外考量 378

12.3.2 部署到云环境 379

12.3.3 部署到浏览器插件(例如Chrome插件)环境 380

12.3.4 部署到基于JavaScript的移动端应用程序 382

12.3.5 部署到基于JavaScript的跨平台桌面端应用程序 383

12.3.6 部署到微信和其他基于JavaScript的移动端插件系统 385

12.3.7 部署到单片机 386

12.3.8 部署环境的总结 388

12.4 延展阅读 388

12.5 练习 388

12.6 小结 389

第 13章 总结与展望 390

13.1 回顾关键概念 390

13.1.1 AI的各种策略 390

13.1.2 深度学习从各种机器学习策略中脱颖而出的原因 391

13.1.3 如何抽象地理解深度学习 392

13.1.4 深度学习成功的关键因素 392

13.1.5 JavaScript深度学习带来的新应用和新机遇 393

13.2 回顾深度学习的流程和TensorFlow.js中的算法 394

13.2.1 监督式深度学习的通用流程 394

13.2.2 回顾TensorFlow.js中的模型类型和层类型 395

13.2.3 在TensorFlow.js中使用预训练模型 400

13.2.4 可能性空间 402

13.2.5 深度学习的局限性 404

13.3 深度学习的发展趋势 406

13.4 继续探索的一些指引 407

13.4.1 在Kaggle上练习解决实际的机器学习问题 407

13.4.2 了解arXiv上的进展 408

13.4.3 探索TensorFlow.js生态 408

13.5 寄语 408

附录A 安装tfjs-node-gpu及其依赖(图灵社区下载)

附录B TensorFlow.js张量及运算的简明教程(图灵社区下载)

术语表(图灵社区下载)

显示部分信息

下载价格:免费
立即下载
登入/注册
知识就是力量
没有账号? 忘记密码?