简介
目录
前言
第1章 环境搭建1
1.1 下载并安装Python1
1.2 Python软件环境管理工具Anaconda2
1.2.1 下载Anaconda2
1.2.2 安装Anaconda4
1.2.3 验证Anaconda的安装6
1.3 通过TUNA加速Anaconda8
1.3.1 清华大学开源软件镜像站TUNA8
1.3.2 在Windows中设置Anaconda镜像通道10
1.3.3 在类UNIX中设置Anaconda镜像通道11
1.4 使用Jupyter Notebook12
1.4.1 通过“开始”菜单启动Jupyter Notebook12
1.4.2 通过命令行启动Jupyter Notebook13
1.4.3 新建并重命名Notebook14
1.4.4 安装Jupyter Notebook插件16
1.5 安装TensorFlow 2.617
1.5.1 通过Notebook cell安装TensorFlow 2.617
1.5.2 通过pip install命令离线安装TensorFlow18
1.6 小结与补充说明20
第2章 使用k近邻算法识别手写数字图像22
2.1 手写数字图像数据集MNIST22
2.1.1 使用TensorFlow加载MNIST23
2.1.2 使用scikit-learn加载MNIST24
2.2 分类器与准确率25
2.3 k近邻算法的基本思想26
2.4 利用k-NN识别MNIST27
2.4.1 划分数据集27
2.4.2 识别MNIST与模型评估29
2.4.3 数据探查30
2.4.4 性能优化31
2.4.5 调参32
2.4.6 近邻再探查33
2.5 k-NN中的距离度量33
2.6 小结与补充说明34
第3章 感知机算法思想与实现36
3.1 机器学习的基本分类36
3.2 鸢尾花数据集iris37
3.2.1 样本特征37
3.2.2 样本分类38
3.2.3 构造简化版iris数据集39
3.3 感知机分类精简版iris42
3.3.1 极简体验感知机42
3.3.2 感知机模型的数学表达44
3.3.3 极简体验感知机学习算法45
3.3.4 感知机学习算法的Python实现47
3.3.5 损失函数与梯度(选修)50
3.3.6 感知机代码合并51
3.4 感知机的实现类53
3.4.1 构造器__init__()53
3.4.2 预测方法predict()54
3.4.3 新模型参数update_params()55
3.4.4 启动训练fit()56
3.4.5 重构Perceptron类58
3.5 小结与补充说明59
第4章 对数几率回归算法思想与实现62
4.1 神经网络结构示意图62
4.2 对数几率回归的数学表达63
4.3 对数几率函数的Python实现64
4.4 对数几率回归模型的损失函数66
4.5 梯度下降法的数学表达(选修)69
4.6 梯度下降法的Python实现72
4.7 对数几率回归模型的Python实现73
4.8 使用对数几率回归模型分类鸢尾花75
4.8.1 使用LR分类精简版iris数据集75
4.8.2 统计准确率76
4.8.3 构造简化版iris数据集77
4.8.4 划分函数train_test_split()78
4.8.5 划分iris数据集79
4.8.6 使用对数几率回归模型分类iris数据集80
4.9 小结与补充说明80
第5章 使用TensorFlow实现对数几率回归82
5.1 深入LR参数 新82
5.1.1 改进LogisticRegression类的update_weights()方法82
5.1.2 改进LogisticRegression类的fit()方法83
5.1.3 使用LR分类鸢尾花数据集并查看日志84
5.2 使用TensorFlow自动求梯度87
5.2.1 极简体验TensorFlow自动求梯度87
5.2.2 NumPy数组的形状与维数89
5.2.3 使用TensorFlow计算矩阵乘积90
5.2.4 使用TensorFlow计算LR模型的激活值90
5.2.5 使用代码定义LR模型的损失函数92
5.2.6 使用TensorFlow求LR模型的损失函数对激活值的梯度93
5.2.7 手动计算LR模型的损失函数对权值的梯度93
5.2.8 使用TensorFlow求LR模型的损失函数对参数的梯度94
5.3 使用自动求梯度实现LR97
5.3.1 新TensorFlow变量97
5.3.2 实现LogisticRegressionV2类98
5.3.3 使用LogisticRegressionV2分类精简版iris101
5.3.4 极简体验模型调参102
5.4 使用Sequential实现LR102
5.5 小结与补充说明106
第6章 LR图像分类107
6.1 简化版MNIST数据集107
6.1.1 生成索引数组108
6.1.2 NumPy数组切片(取元素)110
6.1.3 数据探查111
6.1.4 使用np.concatenate()合并数组113
6.1.5 构建简化版MNIST数据集115
6.2 LR分类简化版MNIST116
6.2.1 数据预处理之归一化116
6.2.2 数据预处理之扁平化117
6.2.3 LR分类简化版MNIST119
6.2.4 修复LogisticRegression类121
6.2.5 测试修复123
6.3 小批量梯度下降124
6.3.1 向量化编程124
6.3.2 构造小批量样本125
6.3.3 计算LR损失函数关于线性模型的导数dz126
6.3.4 计算LR损失函数关于权值向量的导数dw128
6.3.5 计算LR损失函数关于偏置量的导数db130
6.3.6 小批量模型训练133
6.3.7 小批量LR分类简化版MNIST134
6.3.8 查看模型预测失误的样本136
6.4 新问题与修复137
6.4.1 发现问题与复现问题138
6.4.2 原因分析及解决方法138
6.4.3 向量化predict()方法140
6.4.4 修复LogisticRegression类141
6.4.5 评估模型方法evaluate()142
6.4.6 提前终止控制开关143
6.4.7 提前终止策略方法(选修)145
6.4.8 重构LogisticRegression类146
6.5 小结与补充说明148
第7章 代码重构与计算图简介150
7.1 构建神经网络的基本流程150
7.1.1 模型架构及超参数150
7.1.2 初始化模型参数152
7.1.3 前向传播、反向传播与计算图152
7.2 重构LogisticRegression类153
7.2.1 重新构造简化版MNIST数据集153
7.2.2 探查简化版MNIST数据集154
7.2.3 LR分类简化版MNIST155
7.2.4 重构LogisticRegression类156
7.2.5 测试重构版LogisticRegression类157
7.3 使用TensorFlow定义并训练模型158
7.4 体验TensorBoard161
7.5 随机化161
7.5.1 使用np.random.random()生成随机数162
7.5.2 随机初始化权值向量162
7.5.3 使用np.random.shuffle()混淆数组164
7.5.4 随机访问样本165
7.5.5 随机梯度下降166
7.5.6 小批量随机梯度下降168
7.6 小结与补充说明168
第8章 两层神经网络170
8.1 单层神经网络之局限性170
8.1.1 线性可分170
8.1.2 线性不可分170
8.2 两层神经网络前向传播172
8.2.1 部分记号说明172
8.2.2 矩阵乘积的代码实现174
8.2.3 隐层前向传播的数学表达175
8.2.4 隐层前向传播的代码实现176
8.2.5 输出层前向传播的数学表达178
8.2.6 输出层前向传播的代码实现179
8.3 两层神经网络反向传播180
8.3.1 输出层反向传播的数学表达181
8.3.2 输出层反向传播的代码实现182
8.3.3 隐层反向传播的数学表达183
8.3.4 隐层反向传播的代码实现184
8.4 两层神经网络实现异或运算185
8.5 实现MLPClassifier类187
8.5.1 构造器__init__()188
8.5.2 参数初始化initialize_params()188
8.5.3 前向传播forward_propagation()189
8.5.4 反向传播backward_propagation()189
8.5.5 参数 新update_params()190
8.5.6 模型输出190
8.5.7 模型启动训练fit()191
8.5.8 测试MLPClassifier类192
8.6 小结与补充说明193
第9章 多层神经网络194
9.1 多层感知机部分记号说明194
9.2 重构多层神经网络195
9.2.1 参数初始化195
9.2.2 前向传播197
9.2.3 反向传播参数 新198
9.2.4 测试新版本200
9.3 重构MLPClassifier类201
9.3.1 构造器__init__()201
9.3.2 参数初始化initialize_params()202
9.3.3 前向传播forward_propagation()202
9.3.4 反向传播参数 新203
9.3.5 模型输出204
9.3.6 模型启动训练fit()205
9.3.7 测试MLPClassifier类206
9.3.8 修复MLPClassifier类206
9.3.9 测试修复208
9.4 使用TensorFlow实现多层神经网络209
9.4.1 使用TensorFlow解决异或问题209
9.4.2 使用TensorFlow验证MLPClassifier类210
9.5 使用MLPClassifier类实现对数几率回归213
9.5.1 使用LR实现逻辑与函数213
9.5.2 使用MLPClassifier类实现对数几率回归214
9.5.3 使用TensorFlow验证代码实现215
9.6 小结与补充说明216
附录 标量、向量与矩阵简介218
后记222
第1章 环境搭建1
1.1 下载并安装Python1
1.2 Python软件环境管理工具Anaconda2
1.2.1 下载Anaconda2
1.2.2 安装Anaconda4
1.2.3 验证Anaconda的安装6
1.3 通过TUNA加速Anaconda8
1.3.1 清华大学开源软件镜像站TUNA8
1.3.2 在Windows中设置Anaconda镜像通道10
1.3.3 在类UNIX中设置Anaconda镜像通道11
1.4 使用Jupyter Notebook12
1.4.1 通过“开始”菜单启动Jupyter Notebook12
1.4.2 通过命令行启动Jupyter Notebook13
1.4.3 新建并重命名Notebook14
1.4.4 安装Jupyter Notebook插件16
1.5 安装TensorFlow 2.617
1.5.1 通过Notebook cell安装TensorFlow 2.617
1.5.2 通过pip install命令离线安装TensorFlow18
1.6 小结与补充说明20
第2章 使用k近邻算法识别手写数字图像22
2.1 手写数字图像数据集MNIST22
2.1.1 使用TensorFlow加载MNIST23
2.1.2 使用scikit-learn加载MNIST24
2.2 分类器与准确率25
2.3 k近邻算法的基本思想26
2.4 利用k-NN识别MNIST27
2.4.1 划分数据集27
2.4.2 识别MNIST与模型评估29
2.4.3 数据探查30
2.4.4 性能优化31
2.4.5 调参32
2.4.6 近邻再探查33
2.5 k-NN中的距离度量33
2.6 小结与补充说明34
第3章 感知机算法思想与实现36
3.1 机器学习的基本分类36
3.2 鸢尾花数据集iris37
3.2.1 样本特征37
3.2.2 样本分类38
3.2.3 构造简化版iris数据集39
3.3 感知机分类精简版iris42
3.3.1 极简体验感知机42
3.3.2 感知机模型的数学表达44
3.3.3 极简体验感知机学习算法45
3.3.4 感知机学习算法的Python实现47
3.3.5 损失函数与梯度(选修)50
3.3.6 感知机代码合并51
3.4 感知机的实现类53
3.4.1 构造器__init__()53
3.4.2 预测方法predict()54
3.4.3 新模型参数update_params()55
3.4.4 启动训练fit()56
3.4.5 重构Perceptron类58
3.5 小结与补充说明59
第4章 对数几率回归算法思想与实现62
4.1 神经网络结构示意图62
4.2 对数几率回归的数学表达63
4.3 对数几率函数的Python实现64
4.4 对数几率回归模型的损失函数66
4.5 梯度下降法的数学表达(选修)69
4.6 梯度下降法的Python实现72
4.7 对数几率回归模型的Python实现73
4.8 使用对数几率回归模型分类鸢尾花75
4.8.1 使用LR分类精简版iris数据集75
4.8.2 统计准确率76
4.8.3 构造简化版iris数据集77
4.8.4 划分函数train_test_split()78
4.8.5 划分iris数据集79
4.8.6 使用对数几率回归模型分类iris数据集80
4.9 小结与补充说明80
第5章 使用TensorFlow实现对数几率回归82
5.1 深入LR参数 新82
5.1.1 改进LogisticRegression类的update_weights()方法82
5.1.2 改进LogisticRegression类的fit()方法83
5.1.3 使用LR分类鸢尾花数据集并查看日志84
5.2 使用TensorFlow自动求梯度87
5.2.1 极简体验TensorFlow自动求梯度87
5.2.2 NumPy数组的形状与维数89
5.2.3 使用TensorFlow计算矩阵乘积90
5.2.4 使用TensorFlow计算LR模型的激活值90
5.2.5 使用代码定义LR模型的损失函数92
5.2.6 使用TensorFlow求LR模型的损失函数对激活值的梯度93
5.2.7 手动计算LR模型的损失函数对权值的梯度93
5.2.8 使用TensorFlow求LR模型的损失函数对参数的梯度94
5.3 使用自动求梯度实现LR97
5.3.1 新TensorFlow变量97
5.3.2 实现LogisticRegressionV2类98
5.3.3 使用LogisticRegressionV2分类精简版iris101
5.3.4 极简体验模型调参102
5.4 使用Sequential实现LR102
5.5 小结与补充说明106
第6章 LR图像分类107
6.1 简化版MNIST数据集107
6.1.1 生成索引数组108
6.1.2 NumPy数组切片(取元素)110
6.1.3 数据探查111
6.1.4 使用np.concatenate()合并数组113
6.1.5 构建简化版MNIST数据集115
6.2 LR分类简化版MNIST116
6.2.1 数据预处理之归一化116
6.2.2 数据预处理之扁平化117
6.2.3 LR分类简化版MNIST119
6.2.4 修复LogisticRegression类121
6.2.5 测试修复123
6.3 小批量梯度下降124
6.3.1 向量化编程124
6.3.2 构造小批量样本125
6.3.3 计算LR损失函数关于线性模型的导数dz126
6.3.4 计算LR损失函数关于权值向量的导数dw128
6.3.5 计算LR损失函数关于偏置量的导数db130
6.3.6 小批量模型训练133
6.3.7 小批量LR分类简化版MNIST134
6.3.8 查看模型预测失误的样本136
6.4 新问题与修复137
6.4.1 发现问题与复现问题138
6.4.2 原因分析及解决方法138
6.4.3 向量化predict()方法140
6.4.4 修复LogisticRegression类141
6.4.5 评估模型方法evaluate()142
6.4.6 提前终止控制开关143
6.4.7 提前终止策略方法(选修)145
6.4.8 重构LogisticRegression类146
6.5 小结与补充说明148
第7章 代码重构与计算图简介150
7.1 构建神经网络的基本流程150
7.1.1 模型架构及超参数150
7.1.2 初始化模型参数152
7.1.3 前向传播、反向传播与计算图152
7.2 重构LogisticRegression类153
7.2.1 重新构造简化版MNIST数据集153
7.2.2 探查简化版MNIST数据集154
7.2.3 LR分类简化版MNIST155
7.2.4 重构LogisticRegression类156
7.2.5 测试重构版LogisticRegression类157
7.3 使用TensorFlow定义并训练模型158
7.4 体验TensorBoard161
7.5 随机化161
7.5.1 使用np.random.random()生成随机数162
7.5.2 随机初始化权值向量162
7.5.3 使用np.random.shuffle()混淆数组164
7.5.4 随机访问样本165
7.5.5 随机梯度下降166
7.5.6 小批量随机梯度下降168
7.6 小结与补充说明168
第8章 两层神经网络170
8.1 单层神经网络之局限性170
8.1.1 线性可分170
8.1.2 线性不可分170
8.2 两层神经网络前向传播172
8.2.1 部分记号说明172
8.2.2 矩阵乘积的代码实现174
8.2.3 隐层前向传播的数学表达175
8.2.4 隐层前向传播的代码实现176
8.2.5 输出层前向传播的数学表达178
8.2.6 输出层前向传播的代码实现179
8.3 两层神经网络反向传播180
8.3.1 输出层反向传播的数学表达181
8.3.2 输出层反向传播的代码实现182
8.3.3 隐层反向传播的数学表达183
8.3.4 隐层反向传播的代码实现184
8.4 两层神经网络实现异或运算185
8.5 实现MLPClassifier类187
8.5.1 构造器__init__()188
8.5.2 参数初始化initialize_params()188
8.5.3 前向传播forward_propagation()189
8.5.4 反向传播backward_propagation()189
8.5.5 参数 新update_params()190
8.5.6 模型输出190
8.5.7 模型启动训练fit()191
8.5.8 测试MLPClassifier类192
8.6 小结与补充说明193
第9章 多层神经网络194
9.1 多层感知机部分记号说明194
9.2 重构多层神经网络195
9.2.1 参数初始化195
9.2.2 前向传播197
9.2.3 反向传播参数 新198
9.2.4 测试新版本200
9.3 重构MLPClassifier类201
9.3.1 构造器__init__()201
9.3.2 参数初始化initialize_params()202
9.3.3 前向传播forward_propagation()202
9.3.4 反向传播参数 新203
9.3.5 模型输出204
9.3.6 模型启动训练fit()205
9.3.7 测试MLPClassifier类206
9.3.8 修复MLPClassifier类206
9.3.9 测试修复208
9.4 使用TensorFlow实现多层神经网络209
9.4.1 使用TensorFlow解决异或问题209
9.4.2 使用TensorFlow验证MLPClassifier类210
9.5 使用MLPClassifier类实现对数几率回归213
9.5.1 使用LR实现逻辑与函数213
9.5.2 使用MLPClassifier类实现对数几率回归214
9.5.3 使用TensorFlow验证代码实现215
9.6 小结与补充说明216
附录 标量、向量与矩阵简介218
后记222
从零开始构建深度前馈神经网络(Python+TensorFlow 2.x)
- 名称
- 类型
- 大小
光盘服务联系方式: 020-38250260 客服QQ:4006604884
云图客服:
用户发送的提问,这种方式就需要有位在线客服来回答用户的问题,这种 就属于对话式的,问题是这种提问是否需要用户登录才能提问
Video Player
×
Audio Player
×
pdf Player
×