第1章 深度学习与TensorFlow 1
1.1 深度学习概览 4
1.1.1 机器学习的基本模型 4
1.1.2 神经网络的必要性 7
1.1.3 深度学习的特点 13
1.1.4 参数优化 15
1.2 环境准备 24
1.2.1 基于CentOS 7环境的安装步骤 25
1.2.2 Jupyter的使用方法 28
1.3 TensorFlow概览 34
1.3.1 用多维数组表示模型 34
1.3.2 TensorFlow代码实现 36
1.3.3 通过Session执行训练 41
第2章 分类算法基础 49
2.1 逻辑回归之二元分类器 51
2.1.1 利用概率进行误差评价 51
2.1.2 通过TensorFlow执行最大似然估计 56
2.1.3 通过测试集验证 67
2.2 Softmax函数与多元分类器 71
2.2.1 线性多元分类器的结构 71
2.2.2 通过Softmax函数进行概率转换 75
2.3 应用多元分类器进行手写数字识别 78
2.3.1 MNIST数据集的使用方法 78
2.3.2 图片数据的分类算法 82
2.3.3 TensorFlow执行训练 87
2.3.4 小批量梯度下降法和随机梯度下降法 94
第3章 应用神经网络进行分类 97
3.1 单层神经网络的构成 99
3.1.1 使用单层神经网络的二元分类器 99
3.1.2 隐藏层的作用 102
3.1.3 改变节点数和激活函数后的效果 112
3.2 应用单层神经网络进行手写数字分类 115
3.2.1 应用单层神经网络的多元分类器 115
3.2.2 通过TensorBoard确认网络图 119
3.3 扩展为多层神经网络 129
3.3.1 多层神经网络的效果 129
3.3.2 基于特征变量的分类逻辑 134
3.3.3 补充:参数向极小值收敛的例子 138
第4章 卷积核提取图片特征 141
4.1 卷积核的功能 143
4.1.1 卷积核示例 143
4.1.2 在TensorFlow中运用卷积核 146
4.1.3 通过池化层缩小图片 155
4.2 应用卷积核进行图片分类 158
4.2.1 应用特征变量进行图片分类 158
4.2.2 卷积核的动态学习 165
4.3 应用卷积核进行手写数字识别分类 168
4.3.1 保存Session信息的功能 168
4.3.2 通过单层CNN对手写数字进行识别分类 170
4.3.3 确认动态学习的卷积核 178
第5章 应用卷积核多层化实现性能提升 183
5.1 完成卷积神经网络 185
5.1.1 通过多层卷积核抽取特征 185
5.1.2 用TensorFlow实现多层CNN 190
5.1.3 自动识别手写数字应用 196
5.2 延伸阅读 203
5.2.1 CIFAR-10(彩色图片数据集)分类的延伸 203
5.2.2 通过“ANeural NetworkPlayground”进行直观理解 207
5.2.3 补充:反向传播算法中的梯度计算 212
附录A Mac OSX和Windows环境的安装方法 220
A.1 MacOSX环境的准备步骤 220
A.2 Windows 10环境的准备步骤 224
附录B Python 2的基本语法 230
B.1 Hello,World! 230
B.2 字符串 231
B.3 列表与词典 233
B.4 控制语句 235
B.5 函数与模块 238
附录C 数学公式 240