1创作者自身也是自小白刚开始新手入门深度学习的,不管从书里內容,還是解读思路,及其语言特点,均合适你从零开始进到深度学习这一填满魔法的全球。
2案例简易而不简洁,采用了转化成对抗网络和注意力机制等现阶段相对性最前沿的深度学习技术性。
3尽管是一本基础教程,可是对基本原理的叙述也是非分明,清楚通俗易懂,让阅读者能知其所以然且学有所用。
深度学习现如今早已变成了尖端科技*趋之若鹜的技术性,在这书中,大家将协助你新手入门深度学习的行业。这书将从人工智能技术的详细介绍下手,掌握机器学习和深度学习的基础知识,并学习怎样用PyTorch架构模型拟合开展构建。根据阅读文章这书,你可能学习到机器学习中的线性回归和logistic重归,深度学习的优化方法,双层全连接神经网络,卷积神经网络,循环系统神经网络及其转化成对抗网络,另外从零开始对PyTorch开展学习,掌握PyTorch基本及怎样用其开展实体模型的构建,*后根据实战演练掌握*最前沿的科研成果和PyTorch在具体新项目中的运用。
目录
- 第1 章深度学习介绍1
- 1.1 人工智能. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
- 1.2 数据挖掘、机器学习与深度学习. . . . . . . . . . . . . . . . . . . . . . . 2
- 1.2.1 数据挖掘. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
- 1.2.2 机器学习. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3
- 1.2.3 深度学习. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
- 1.3 学习资源与建议. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
- 第2 章深度学习框架11
- 2.1 深度学习框架介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
- 2.2 PyTorch 介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
- 2.2.1 什么是PyTorch . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
- 2.2.2 为何要使用PyTorch . . . . . . . . . . . . . . . . . . . . . . . . . . 14
- 2.3 配置PyTorch 深度学习环境. . . . . . . . . . . . . . . . . . . . . . . . . . 15
- 2.3.1 操作系统的选择. . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
- 2.3.2 Python 开发环境的安装. . . . . . . . . . . . . . . . . . . . . . . . 16
- 2.3.3 PyTorch 的安装. . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
- 第3 章多层全连接神经网络24
- 3.1 热身:PyTorch 基础. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
- 3.1.1 Tensor(张量) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
- 3.1.2 Variable(变量) . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
- 3.1.3 Dataset(数据集) . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
- 3.1.4 nn.Module(模组) . . . . . . . . . . . . . . . . . . . . . . . . . . 29
- 3.1.5 torch.optim(优化) . . . . . . . . . . . . . . . . . . . . . . . . . . 30
- 3.1.6 模型的保存和加载. . . . . . . . . . . . . . . . . . . . . . . . . . 31
- 3.2 线性模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
- 3.2.1 问题介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
- 3.2.2 一维线性回归. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
- 3.2.3 多维线性回归. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
- 3.2.4 一维线性回归的代码实现. . . . . . . . . . . . . . . . . . . . . . 35
- 3.2.5 多项式回归. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
- 3.3 分类问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
- 3.3.1 问题介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
- 3.3.2 Logistic 起源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
- 3.3.3 Logistic 分布. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
- 3.3.4 二分类的Logistic 回归. . . . . . . . . . . . . . . . . . . . . . . . 43
- 3.3.5 模型的参数估计. . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
- 3.3.6 Logistic 回归的代码实现. . . . . . . . . . . . . . . . . . . . . . . 45
- 3.4 简单的多层全连接前向网络. . . . . . . . . . . . . . . . . . . . . . . . . 49
- 3.4.1 模拟神经元. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
- 3.4.2 单层神经网络的分类器. . . . . . . . . . . . . . . . . . . . . . . . 50
- 3.4.3 激活函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
- 3.4.4 神经网络的结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
- 3.4.5 模型的表示能力与容量. . . . . . . . . . . . . . . . . . . . . . . . 55
- 3.5 深度学习的基石:反向传播算法. . . . . . . . . . . . . . . . . . . . . . . 57
- 3.5.1 链式法则. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
- 3.5.2 反向传播算法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
- 3.5.3 Sigmoid 函数举例. . . . . . . . . . . . . . . . . . . . . . . . . . . 58
- 3.6 各种优化算法的变式. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
- 3.6.1 梯度下降法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
- 3.6.2 梯度下降法的变式. . . . . . . . . . . . . . . . . . . . . . . . . . 62
- 3.7 处理数据和训练模型的技巧. . . . . . . . . . . . . . . . . . . . . . . . . 64
- 3.7.1 数据预处理. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
- 3.7.2 权重初始化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
- 3.7.3 防止过拟合. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
- 3.8 多层全连接神经网络实现MNIST 手写数字分类. . . . . . . . . . . . . . 69
- 3.8.1 简单的三层全连接神经网络. . . . . . . . . . . . . . . . . . . . . 70
- 3.8.2 添加激活函数. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
- 3.8.3 添加批标准化. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
- 3.8.4 训练网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
- 第4 章卷积神经网络76
- 4.1 主要任务及起源. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
- 4.2 卷积神经网络的原理和结构. . . . . . . . . . . . . . . . . . . . . . . . . 77
- 4.2.1 卷积层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
- 4.2.2 池化层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
- 4.2.3 全连接层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 85
- 4.2.4 卷积神经网络的基本形式. . . . . . . . . . . . . . . . . . . . . . 85
- 4.3 PyTorch 卷积模块. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
- 4.3.1 卷积层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
- 4.3.2 池化层. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
- 4.3.3 提取层结构. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
- 4.3.4 如何提取参数及自定义初始化. . . . . . . . . . . . . . . . . . . . 91
- 4.4 卷积神经网络案例分析. . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
- 4.4.1 LeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
- 4.4.2 AlexNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94
- 4.4.3 VGGNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
- 4.4.4 GoogLeNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
- 4.4.5 ResNet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100
- 4.5 再实现MNIST 手写数字分类. . . . . . . . . . . . . . . . . . . . . . . . . 103
- 4.6 图像增强的方法. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
- 4.7 实现cifar10 分类. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
- 第5 章循环神经网络111
- 5.1 循环神经网络. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 111
- 5.1.1 问题介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
- 5.1.2 循环神经网络的基本结构. . . . . . . . . . . . . . . . . . . . . . 112
- 5.1.3 存在的问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 115
- 5.2 循环神经网络的变式:LSTM 与GRU . . . . . . . . . . . . . . . . . . . . 116
- 5.2.1 LSTM . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
- 5.2.2 GRU . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119
- 5.2.3 收敛性问题. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 120
- 5.3 循环神经网络的PyTorch 实现. . . . . . . . . . . . . . . . . . . . . . . . 122
- 5.3.1 PyTorch 的循环网络模块. . . . . . . . . . . . . . . . . . . . . . . 122
- 5.3.2 实例介绍. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127
- 5.4 自然语言处理的应用. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
- 5.4.1 词嵌入. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131
- 5.4.2 词嵌入的PyTorch 实现. . . . . . . . . . . . . . . . . . . . . . . . 133
- 5.4.3 N Gram 模型. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133
- 5.4.4 单词预测的PyTorch 实现. . . . . . . . . . . . . . . . . . . . . . . 134
- 5.4.5 词性判断. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136
- 5.4.6 词性判断的PyTorch 实现. . . . . . . . . . . . . . . . . . . . . . . 137
- 5.5 循环神经网络