书籍简介:
本书遵循循序渐进、兼顾理论和实践的原则,从神经网络基本概念入手,以图文并茂的形式生动地讲解激活函数和反向传播等概念原理,并以人脸识别和动作检测为例,让读者直观地了解深度学习的应用场景,在知识内容方面,不但包含决策树、随机森林等常规算法,还重点讲解了LSTM、CNN神经网络等主流算法,在代码实践方面,比较深入地讲解开发细节,详细介绍了相关网络结构、参数调优和各种网络的对照比较,对程序员实际动手有比较强的参考意义。此外,本书还包含了常用激活函数,读者可以方便的在附录中查询相关函数特性,是一本集原理、实践与资料查询为一体的书籍。
作者简介:
马特·R.科尔(Matt R. Cole)是一名经验丰富的开发人员和作者,在Microsoft Windows、C、C++、 C#和.NET方面有30年的经验。他是Evolved AI Solutions公司的老板,该公司是高级机器学习/生物AI技术的主要供应商。他开发了第一个完全用C#和.NET编写的企业级微服务框架,该框架被纽约一家大型对冲基金生产。他还开发了第一个完全整合镜像和标准神经元的生物人工智能框架。
出版日期:
2019年07月
章节目录:
译者序
前言
关于作者
关于审校者
第1章 快速预览 1
1.1 神经网络概述 2
1.1.1 神经网络训练 4
1.1.2 神经网络的结构指南 4
1.2 神经网络在当今企业中的作用 6
1.3 学习的类型 6
1.3.1 有监督学习 7
1.3.2 无监督学习 7
1.3.3 强化学习 7
1.4 了解感知器 7
1.5 了解激活函数 10
1.5.1 激活函数绘图 12
1.5.2 函数绘图 13
1.6 了解后向传播 16
1.7 小结 17
1.8 参考文献 17
第2章 构建第一个神经网络 18
2.1 一个简单的神经网络 18
2.2 神经网络训练 19
2.2.1 突触 20
2.2.2 神经元 21
2.2.3 前向传播 21
2.2.4 Sigmoid函数 21
2.2.5 后向传播 22
2.2.6 计算误差 23
2.2.7 计算梯度 23
2.2.8 更新权重 23
2.2.9 计算值 23
2.3 神经网络函数 24
2.3.1 创建新网络 24
2.3.2 导入现有网络 24
2.3.3 导入数据集 27
2.3.4 网络运算 27
2.3.5 导出网络 28
2.3.6 训练网络 28
2.3.7 测试网络 29
2.3.8 计算前向传播 29
2.3.9 将网络导出为JSON格式 29
2.3.10 导出数据集 30
2.4 神经网络 30
2.5 例子 31
2.5.1 训练到最小值 31
2.5.2 训练到最大值 31
2.6 小结 32
第3章 决策树和随机森林 33
3.1 决策树 33
3.1.1 决策树的优点 34
3.1.2 决策树的缺点 35
3.1.3 何时应该使用决策树 35
3.2 随机森林 35
3.2.1 随机森林的优点 36
3.2.2 随机森林的缺点 36
3.2.3 何时应该使用随机森林 36
3.3 SharpLearning 37
3.3.1 术语 37
3.3.2 加载和保存模型 37
3.4 示例代码和应用程序 41
3.4.1 保存模型 41
3.4.2 均方差回归指标 41
3.4.3 F1分数 41
3.4.4 优化 42
3.4.5 示例应用程序1 42
3.4.6 示例应用程序2—葡萄酒质量 43
3.5 小结 45
3.6 参考文献 45
第4章 面部和运动检测 46
4.1 面部检测 46
4.2 运动检测 54
4.3 小结 59
第5章 使用ConvNetSharp训练CNN 60
5.1 热身 60
5.2 过滤器 64
5.3 创建网络 64
5.3.1 第一个简单的例子 65
5.3.2 第二个简单的例子 66
5.3.3 第三个简单的例子 67
5.3.4 使用Fluent API 68
5.4 GPU 68
5.5 使用MNIST数据集进行流畅设计训练 68
5.6 训练网络 69
5.6.1 测试数据 70
5.6.2 预测数据 71
5.6.3 计算图 71
5.7 小结 73
5.8 参考文献 73
第6章 使用 RNNSharp训练自动编码器 74
6.1 什么是自动编码器 74
6.2 自动编码器的分类 74
6.2.1 标准自动编码器 75
6.2.2 变分自动编码器 76
6.2.3 降噪自动编码器 76
6.2.4 稀疏自动编码器 76
6.3 创建自己的自动编码器 76
6.4 小结 87
6.5 参考文献 88
第7章 用PSO代替后向传播 89
7.1 基础理论 89
7.1.1 群体智能 90
7.1.2 粒子群优化算法 90
7.2 用粒子群优化算法代替后向传播 94
7.3 小结 98
第8章 函数优化 99
8.1 入门 100
8.2 函数最小化和最大化 103
8.2.1 什么是粒子 104
8.2.2 Swarm初始化 106
8.2.3 图表初始化 107
8.2.4 状态初始化 108
8.2.5 控制随机性 109
8.2.6 更新群体位置 110
8.2.7 更新群速度 110
8.2.8 主程序初始化 110
8.2.9 运行粒子群优化 111
8.2.10 用户界面 112
8.3 超参数和调参 113
8.3.1 函数 113
8.3.2 策略 114
8.3.3 维度大小 115
8.3.4 上限 115
8.3.5 下限 116
8.3.6 上限速度 116
8.3.7 下限速度 117
8.3.8 小数位 117
8.3.9 群体大小 117
8.3.10 最大迭代次数 118
8.3.11 惯性 119
8.3.12 社交权重 120
8.3.13 认知权重 121
8.3.14 惯性权重 122
8.4 可视化 122
8.4.1 二维可视化 122
8.4.2 三维可视化 123
8.5 绘制结果 128
8.5.1 回放结果 128
8.5.2 更新信息树 130
8.6 添加新的优化函数 131
8.6.1 目的 131
8.6.2 添加新函数的步骤 131
8.6.3 添加新函数示例 132
8.7 小结 135
第9章 寻找最佳参数 136
9.1 优化 136
9.1.1 什么是适配函数 137
9.1.2 约束 137
9.1.3 元优化 139
9.2 优化方法 141
9.2.1 选择优化器 141
9.2.2 梯度下降 141
9.2.3 模式搜索 141
9.2.4 局部单峰采样 142
9.2.5 差异进化 142
9.2.6 粒子群优化 143
9.2.7 多优化联络员 143
9.2.8 网格 143
9.3 并行 144
9.3.1 并行化优化问题 144
9.3.2 并行优化方法 144
9.3.3 编写代码 144
9.3.4 执行元优化 146
9.3.5 计算适配度 146
9.3.6 测试自定义问题 148
……
封面图: