第一部分 绪论 1
0.1 引言 2
0.2 什么是深度学习 3
0.3 深度学习的前世今生 6
第二部分 基础理论篇 9
1卷积神经网络基础知识 10
1.1 发展历程 11
1.2 基本结构 13
1.3 前馈运算 16
1.4 反馈运算 16
1.5 小结 19
2卷积神经网络基本部件 21
2.1 “端到端”思想 21
2.2 网络符号定义 23
2.3 卷积层 24
2.3.1 什么是卷积 24
2.3.2 卷积操作的作用 27
2.4 汇合层 28
2.4.1 什么是汇合 29
2.4.2 汇合操作的作用 30
2.5 激活函数 31
2.6 全连接层 33
2.7 目标函数 34
2.8 小结 34
3卷积神经网络经典结构 35
3.1 CNN网络结构中的重要概念 35
3.1.1 感受野 35
3.1.2 分布式表示 37
3.1.3 深度特征的层次性 39
3.2 经典网络案例分析 42
3.2.1 Alex-Net网络模型 42
3.2.2 VGG-Nets网络模型 46
3.2.3 Network-In-Network 48
3.2.4 残差网络模型 49
3.3 小结 54
4卷积神经网络的压缩 56
4.1 低秩近似 58
4.2 剪枝与稀疏约束 60
4.3 参数量化 64
4.4 二值网络 68
4.5 知识蒸馏 71
4.6 紧凑的网络结构 74
4.7 小结 76
第三部分 实践应用篇 77
5数据扩充 78
5.1 简单的数据扩充方式 78
5.2 特殊的数据扩充方式 80
5.2.1 Fancy PCA 80
5.2.2 监督式数据扩充 80
5.3 小结 82
6数据预处理 83
7网络参数初始化 85
7.1 全零初始化 86
7.2 随机初始化 86
7.3 其他初始化方法 90
7.4 小结 90
8激活函数 91
8.1 Sigmoid型函数 92
8.2 tanh(x)型函数 93
8.3 修正线性单元(ReLU) 93
8.4 Leaky ReLU 94
8.5 参数化ReLU 95
8.6 随机化ReLU 97
8.7 指数化线性单元(ELU) 98
8.8 小结 99
9目标函数 100
9.1 分类任务的目标函数 100
9.1.1 交叉熵损失函数 101
9.1.2 合页损失函数 101
9.1.3 坡道损失函数 101
9.1.4 大间隔交叉熵损失函数 103
9.1.5 中心损失函数 105
9.2 回归任务的目标函数 107
9.2.1 e1损失函数 108
9.2.2 e2损失函数 108
9.2.3 Tukey’s biweight损失函数 109
9.3 其他任务的目标函数 109
9.4 小结 111
10网络正则化 113
10.1 e2正则化 114
10.2 e1正则化 115
10.3 最大范数约束 115
10.4 随机失活 116
10.5 验证集的使用 118
10.6 小结 119
11超参数设定和网络训练 120
11.1 网络超参数设定 120
11.1.1 输入数据像素大小 120
11.1.2 卷积层参数的设定 121
11.1.3 汇合层参数的设定 122
11.2 训练技巧 123
11.2.1 训练数据随机打乱 123
11.2.2 学习率的设定 123
11.2.3 批规范化操作 125
11.2.4 网络模型优化算法选择 127
11.2.5 微调神经网络 132
11.3 小结 133
12不平衡样本的处理 135
12.1 数据层面处理方法 136
12.1.1 数据重采样 136
12.1.2 类别平衡采样 137
12.2 算法层面处理方法 138
12.2.1 代价敏感方法 139
12.2.2 代价敏感法中权重的指定方式 140
12.3 小结 142
13模型集成方法 143
13.1 数据层面的集成方法 143
13.1.1 测试阶段数据扩充 143
13.1.2 “简易集成”法 144
13.2 模型层面的集成方法 144
13.2.1 单模型集成 144
13.2.2 多模型集成 146
13.3 小结 149
14深度学习开源工具简介 151
14.1 常用框架对比 151
14.2 常用框架的各自特点 153
14.2.1 Caffe 153
14.2.2 Deeplearning4j 153
14.2.3 Keras 154
14.2.4 MXNet 155
14.2.5 MatConvNet 155
14.2.6 TensorFlow 155
14.2.7 Theano 156
14.2.8 Torch 157
14.3 其他 157
A 向量、矩阵及其基本运算 158
B 随机梯度下降 162
C 链式法则 165
参考文献 167
索引 181