TensorFlow深度学习——深入理解人工智能算法设计

TensorFlow深度学习——深入理解人工智能算法设计"

作者:龙良曲
ISBN:9787302553335
定价:¥89
字数:千字
页数:
出版时间:2020.08.01
开本:
版次:1-5
装帧:
出版社:清华大学出版社
简介

本书适合初学者快速入门深度学习算法和TensorFlow框架。我们已讲故事的方式向读者一步步地介绍每个核心算法,非常详细地剖析算法原理,手把手实现每个算法实战,不但让读者能够了解算法的工作原理,更重要的是教会读者如何一步步地思考问题并解决问题。具体地,我们会介绍目前深度学习的数学原理,反向传播算法,卷积神经网络,循环神经网络,对抗生产网络,自编码器,神经网络结构搜索,图卷积网络等等一系列前沿核心算法。使读者不仅可以明白原理,还能学以致用。内容讲解细致,没有数学基础的读者也能轻松入门。

前言

这是一本面向人工智能,特别是深度学习初学者的图书,本书旨在帮助更多的读者了解、喜欢并进入人工智能行业中,因此作者试图从人工智能中的简单问题入手,一步步地提出设想、分析以及实现方案,重温当年科研工作者的探索之路,让读者身临其境地感受算法设计思想,从而掌握分析和解决问题的方法。这种方式对读者的基础知识要求较少,读者在学习本书的过程中会自然而然地了解算法的相关背景知识,体会到知识是为了解决问题而生的,避免出现为了学习而学习的窘境。

尽管作者试图将读者的基础要求降到最低,但是人工智能不可避免地需要使用正式化的数学符号推导,其中涉及少量的概率与统计、线性代数、微积分等数学知识,一般要求读者对这些数学知识有初步印象或了解即可。比起理论基础,需要有少量的编程经验,特别是Python语言编程经验,因为本书更侧重于实用性,而不是堆砌公式。

本书共15章,第1~3章主要介绍人工智能的初步认知,并引出相关问题; 第4、5章主要介绍TensorFlow相关基础,为后续算法实现铺垫; 第6~9章主要介绍神经网络的核心理论和共性知识,让读者理解深度学习的本质; 第10~15章主要介绍常见的算法与模型,让读者能够学有所用。

在本书的编写过程中,很多英文词汇尚无法在业界找到一个共识翻译名,因此作者备注翻译的英文原文,供读者参考,同时也方便日后阅读相关英文文献时,不至于感到陌生。

尽管每天都有深度学习相关算法论文的发表,但是作者相信,深度学习的核心思想和基础理论是共通的。本书已尽可能地涵盖其中基础、主流并且前沿的算法知识,但是仍然有很多算法无法涵盖,读者学习完本书后,可以自行搜索相关方向的研究论文或资料,进一步学习。

深度学习是一个非常前沿和广袤的研究领域,鲜有人士能够对每个研究方向都有深刻的理解。作者自认才疏学浅,略懂皮毛,同时也限于时间和篇幅关系,难免出现理解偏差之处,恳请读者指出,作者将及时修正,不胜感激。

龙良曲

2020年3月

目录

第1章人工智能绪论

1.1人工智能简介

1.1.1人工智能

1.1.2机器学习

1.1.3神经网络与深度学习

1.2神经网络发展简史

1.2.1浅层神经网络

1.2.2深度学习

1.3深度学习特点

1.3.1数据量

1.3.2计算力

1.3.3网络规模

1.3.4通用智能

1.4深度学习应用

1.4.1计算机视觉

1.4.2自然语言处理

1.4.3强化学习

1.5深度学习框架

1.5.1主流框架

1.5.2TensorFlow 2与TensorFlow 1.x

1.5.3功能演示

1.6开发环境安装

1.6.1Anaconda安装

1.6.2CUDA安装

1.6.3TensorFlow安装

1.6.4常用编辑器安装

参考文献

第2章回归问题

2.1神经元模型

2.2优化方法

2.3线性模型实战

2.4线性回归

参考文献

第3章分类问题

3.1手写数字图片数据集

3.2模型构建

3.3误差计算

3.4真的解决了吗

3.5非线性模型

3.6表达能力

3.7优化方法

3.8手写数字图片识别体验

3.8.1网络搭建

3.8.2模型训练

参考文献

第4章TensorFlow基础

4.1数据类型

4.1.1数值类型

4.1.2字符串类型

4.1.3布尔类型

4.2数值精度

4.2.1读取精度

4.2.2类型转换

4.3待优化张量

4.4创建张量

4.4.1从数组、列表对象创建

4.4.2创建全0或全1张量

4.4.3创建自定义数值张量

4.4.4创建已知分布的张量

4.4.5创建序列

4.5张量的典型应用

4.5.1标量

4.5.2向量

4.5.3矩阵

4.5.4三维张量

4.5.5四维张量

4.6索引与切片

4.6.1索引

4.6.2切片

4.6.3小结

4.7维度变换

4.7.1改变视图

4.7.2增加、删除维度

4.7.3交换维度

4.7.4复制数据

4.8Broadcasting

4.9数学运算

4.9.1加、减、乘、除运算

4.9.2乘方运算

4.9.3指数和对数运算

4.9.4矩阵相乘运算

4.10前向传播实战

第5章TensorFlow进阶

5.1合并与分割

5.1.1合并

5.1.2分割

5.2数据统计

5.2.1向量范数

5.2.2最值、均值、和

5.3张量比较

5.4填充与复制

5.4.1填充

5.4.2复制

5.5数据限幅

5.6高级操作

5.6.1tf.gather

5.6.2tf.gather_nd

5.6.3tf.boolean_mask

5.6.4tf.where

5.6.5scatter_nd

5.6.6meshgrid

5.7经典数据集加载

5.7.1随机打散

5.7.2批训练

5.7.3预处理

5.7.4循环训练

5.8MNIST测试实战

第6章神经网络

6.1感知机

6.2全连接层

6.2.1张量方式实现

6.2.2层方式实现

6.3神经网络

6.3.1张量方式实现

6.3.2层方式实现

6.3.3优化目标

6.4激活函数

6.4.1Sigmoid

6.4.2ReLU

6.4.3LeakyReLU

6.4.4tanh

6.5输出层设计

6.5.1普通实数空间

6.5.2[0,1]区间

6.5.3[0,1]区间,和为1

6.5.4[-1,1]

6.6误差计算

6.6.1均方差误差函数

6.6.2交叉熵损失函数

6.7神经网络类型

6.7.1卷积神经网络

6.7.2循环神经网络

6.7.3注意力(机制)网络

6.7.4图卷积神经网络

6.8汽车油耗预测实战

6.8.1数据集

6.8.2创建网络

6.8.3训练与测试

参考文献

第7章反向传播算法

7.1导数与梯度

7.2导数常见性质

7.2.1基本函数的导数

7.2.2常用导数性质

7.2.3导数求解实战

7.3激活函数导数

7.3.1Sigmoid函数导数

7.3.2ReLU函数导数

7.3.3LeakyReLU函数导数

7.3.4tanh函数梯度

7.4损失函数梯度

7.4.1均方误差函数梯度

7.4.2交叉熵函数梯度

7.5全连接层梯度

7.5.1单神经元梯度

7.5.2全连接层梯度

7.6链式法则

7.7反向传播算法

7.8Himmelblau函数优化实战

7.9反向传播算法实战

7.9.1数据集

7.9.2网络层

7.9.3网络模型

7.9.4网络训练

7.9.5网络性能

参考文献

第8章Keras高层接口

8.1常见功能模块

8.1.1常见网络层类

8.1.2网络容器

8.2模型装配、训练与测试

8.2.1模型装配

8.2.2模型训练

8.2.3模型测试

8.3模型保存与加载

8.3.1张量方式

8.3.2网络方式

8.3.3SavedModel方式

8.4自定义网络简介

8.4.1自定义网络层

8.4.2自定义网络

8.5模型乐园

8.6测量工具

8.6.1新建测量器

8.6.2写入数据

8.6.3读取统计信息

8.6.4清除状态

8.6.5准确率统计实战

8.7可视化

8.7.1模型端

8.7.2浏览器端

第9章过拟合

9.1模型的容量

9.2欠拟合与过拟合

9.2.1欠拟合

9.2.2过拟合

9.3数据集划分

9.3.1验证集与超参数

9.3.2提前停止

9.4模型设计

9.5正则化

9.5.1L0正则化

9.5.2L1正则化

9.5.3L2正则化

9.5.4正则化效果

9.6Dropout

9.7数据增强

9.7.1旋转

9.7.2翻转

9.7.3裁剪

9.7.4生成数据

9.7.5其他方式

9.8过拟合问题实战

9.8.1构建数据集

9.8.2网络层数的影响

9.8.3Dropout的影响

9.8.4正则化的影响

参考文献

第10章卷积神经网络

10.1全连接网络的问题

10.1.1局部相关性

10.1.2权值共享

10.1.3卷积运算

10.2卷积神经网络

10.2.1单通道输入和单卷积核

10.2.2多通道输入和单卷积核

10.2.3多通道输入、多卷积核

10.2.4步长

10.2.5填充

10.3卷积层实现

10.3.1自定义权值

10.3.2卷积层类

10.4LeNet5实战

10.5表示学习

10.6梯度传播

10.7池化层

10.8BatchNorm层

10.8.1前向传播

10.8.2反向更新

10.8.3BN层实现

10.9经典卷积网络

10.9.1AlexNet

10.9.2VGG系列

10.9.3GoogLeNet

10.10CIFAR10与VGG13实战

10.11卷积层变种

10.11.1空洞卷积

10.11.2转置卷积

10.11.3分离卷积

10.12深度残差网络

10.12.1ResNet原理

10.12.2ResBlock实现

10.13DenseNet

10.14CIFAR10与ResNet18实战

参考文献

第11章循环神经网络

11.1序列表示方法

11.1.1Embedding层

11.1.2预训练的词向量

11.2循环神经网络

11.2.1全连接层可行吗

11.2.2权值共享

11.2.3全局语义

11.2.4循环神经网络原理

11.3梯度传播

11.4RNN层使用方法

11.4.1SimpleRNNCell

11.4.2多层SimpleRNNCell网络

11.4.3SimpleRNN层

11.5RNN情感分类问题实战

11.5.1数据集

11.5.2网络模型

11.5.3训练与测试

11.6梯度弥散和梯度爆炸

11.6.1梯度裁剪

11.6.2梯度弥散

11.7RNN短时记忆

11.8LSTM原理

11.8.1遗忘门

11.8.2输入门

11.8.3刷新Memory

11.8.4输出门

11.8.5小结

11.9LSTM层使用方法

11.9.1LSTMCell

11.9.2LSTM层

11.10GRU简介

11.10.1复位门

11.10.2更新门

11.10.3GRU使用方法

11.11LSTM/GRU情感分类问题再战

11.11.1LSTM模型

11.11.2GRU模型

11.12预训练的词向量

参考文献

第12章自编码器

12.1自编码器原理

12.2FashionMNIST图片重建实战

12.2.1Fashion MNIST数据集

12.2.2编码器

12.2.3解码器

12.2.4自编码器

12.2.5网络训练

12.2.6图片重建

12.3自编码器变种

12.3.1Denoising AutoEncoder

12.3.2Dropout AutoEncoder

12.3.3Adversarial AutoEncoder

12.4变分自编码器

12.4.1VAE原理

12.4.2Reparameterization Trick

12.5VAE图片生成实战

12.5.1VAE模型

12.5.2Reparameterization技巧

12.5.3网络训练

12.5.4图片生成

参考文献

第13章生成对抗网络

13.1博弈学习实例

13.2GAN原理

13.2.1网络结构

13.2.2网络训练

13.2.3统一目标函数

13.3DCGAN实战

13.3.1动漫图片数据集

13.3.2生成器

13.3.3判别器

13.3.4训练与可视化

13.4GAN变种

13.4.1DCGAN

13.4.2InfoGAN

13.4.3CycleGAN

13.4.4WGAN

13.4.5Equal GAN

13.4.6SelfAttention GAN

13.4.7BigGAN

13.5纳什均衡

13.5.1判别器状态

13.5.2生成器状态

13.5.3纳什均衡点

13.6GAN训练难题

13.6.1超参数敏感

13.6.2模式崩塌

13.7WGAN原理

13.7.1JS散度的缺陷

13.7.2EM距离

13.7.3WGANGP

13.8WGANGP实战

参考文献

第14章强化学习

14.1先睹为快

14.1.1平衡杆游戏

14.1.2Gym平台

14.1.3策略网络

14.1.4梯度更新

14.1.5平衡杆游戏实战

14.2强化学习问题

14.2.1马尔科夫决策过程

14.2.2目标函数

14.3策略梯度方法

14.3.1REINFORCE算法

14.3.2原始策略梯度的改进

14.3.3带基准的REINFORCE算法

14.3.4重要性采样

14.3.5PPO算法

14.3.6PPO实战

14.4值函数方法

14.4.1值函数

14.4.2值函数估计

14.4.3策略改进

14.4.4SARSA算法

14.4.5DQN算法

14.4.6DQN变种

14.4.7DQN实战

14.5ActorCritic方法

14.5.1Advantage AC算法

14.5.2A3C算法

14.5.3A3C实战

参考文献

第15章自定义数据集

15.1精灵宝可梦数据集

15.2自定义数据集加载

15.2.1创建编码表

15.2.2创建样本和标签表格

15.2.3数据集划分

15.3宝可梦数据集实战

15.3.1创建Dataset对象

15.3.2数据预处理

15.3.3创建模型

15.3.4网络训练与测试

15.4迁移学习

15.4.1迁移学习原理

15.4.2迁移学习实战

作者简介

编辑推荐

本书适合初学者快速入门深度学习算法和TensorFlow框架。我们已讲故事的方式向读者一步步地介绍每个核心算法,非常详细地剖析算法原理,手把手实现每个算法实战,不但让读者能够了解算法的工作原理,更重要的是教会读者如何一步步地思考问题并解决问题。具体地,我们会介绍目前深度学习的数学原理,反向传播算法,卷积神经网络,循环神经网络,对抗生产网络,自编码器,神经网络结构搜索,图卷积网络等等一系列前沿核心算法。使读者不仅可以明白原理,还能学以致用。内容讲解细致,没有数学基础的读者也能轻松入门。

作者寄语

龙良曲,澳洲在读博士,曾任新加坡国立大学助理研究员,在深度学习领域有非常丰富的理论和实践基础,在网易云课程发布2门S级课程。

电子资料

www.luweidong.cn

下一个