描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111629382
编辑推荐
在过去几年里,神经网络华丽回归,并为人工智能领域带来了重大的创新。
本书旨在为C#程序员使用神经网络、CNTK等C#库和TensorFlowSharp解决复杂的计算问题时,提供实践指导。本书逐步讲解编程实践,涵盖从数学到理论等神经网络的各个方面,帮助你运用C#和.NET框架构建深度神经网络。
本书从神经网络入门知识开始,详细介绍如何使用Encog、Aforge和Accord搭建一个神经网络,帮助你深入理解神经网络相关概念和技术,例如深度网络、感知器、优化算法、卷积网络和自动解码器。此外,还详细讲解如何向.NET应用程序中添加智能特性,例如面部和运动检测、对象检测和标注、语言理解、知识和智能搜索。
本书旨在为C#程序员使用神经网络、CNTK等C#库和TensorFlowSharp解决复杂的计算问题时,提供实践指导。本书逐步讲解编程实践,涵盖从数学到理论等神经网络的各个方面,帮助你运用C#和.NET框架构建深度神经网络。
本书从神经网络入门知识开始,详细介绍如何使用Encog、Aforge和Accord搭建一个神经网络,帮助你深入理解神经网络相关概念和技术,例如深度网络、感知器、优化算法、卷积网络和自动解码器。此外,还详细讲解如何向.NET应用程序中添加智能特性,例如面部和运动检测、对象检测和标注、语言理解、知识和智能搜索。
通过阅读本书,你将学到:
·理解感知器以及如何运用C#来实现。
·使用认知服务训练并可视化神经网络。
·运用C#和TensorFlowSharp对物体进行图像识别和标注。
·使用Accord.Net检测面部等特定图像特征。
·针对简单异或问题和Encog演示粒子群优化。
·使用ConvNetSharp训练卷积神经网络。
·运用数字和启发式优化技术为神经网络函数寻找*优参数。
内容简介
本书遵循循序渐进、兼顾理论和实践的原则,从神经网络基本概念入手,以图文并茂的形式生动地讲解激活函数和反向传播等概念原理,并以人脸识别和动作检测为例,让读者直观地了解深度学习的应用场景,在知识内容方面,不但包含决策树、随机森林等常规算法,还重点讲解了LSTM、CNN神经网络等主流算法,在代码实践方面,比较深入地讲解开发细节,详细介绍了相关网络结构、参数调优和各种网络的对照比较,对程序员实际动手有比较强的参考意义。此外,本书还包含了常用激活函数,读者可以方便的在附录中查询相关函数特性,是一本集原理、实践与资料查询为一体的书籍。
目 录
译者序
前言
关于作者
关于审校者
第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
9
前言
关于作者
关于审校者
第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
9
前 言
本书将帮助读者学习如何使用C#进行神经网络编程,如何将这种令人兴奋和强大的技术应用到自己的程序中,并向读者示范如何使用开源软件包以及定制软件。我们将从简单的概念和理论入手,深入讲解每个人都能够运用的强大技术。
本书的读者对象
本书面向希望将神经网络技术添加到应用程序中的C#.NET开发人员。
本书的主要内容
第1章提供神经网络的基础知识。
第2章讲解激活函数的概念、目的及其图像形式。我们还将使用开源软件包(如Encog、Aforge和Accord)演示一个小型C#应用程序,并进行可视化呈现。
第3章帮助你理解决策树和随机森林的概念以及使用方法。
第4章学习如何运用Accord.Net机器学习框架连接到本地视频录制设备,通过捕获摄像机视野内任何物体的实时图像,跟踪视野中出现的人脸。
第5章重点关注如何使用开源软件包ConvNetSharp训练CNN,通过示例为读者讲解相关概念。
第6章教你使用开源软件包RNNSharp的自动编码器来解析和处理各种文本语料库。
第7章介绍粒子群优化如何取代神经网络训练方法,如用于训练神经网络的后向传播。
第8章介绍作为每个神经网络重要组成部分的函数优化。
第9章讲解如何使用数字和启发式优化技术轻松地找到神经网络函数的最佳参数。
第10章解析开源软件包TensorFlowSharp。
第11章使用Microsoft认知工具包(以前称为CNTK)以及长短期记忆(LSTM)网络完成时间序列预测。
第12章讲解门控循环单元(GRU),并将其与其他类型的神经网络进行比较。
附录A列出不同的激活函数及其函数图像。
附录B包括不同的优化函数。
学习本书的要求
在本书中,假设读者具有C#.NET的基础知识,熟悉C#.NET软件开发,并且能够熟练使用Microsoft Visual Studio。
下载示例代码及彩色图像
本书的示例代码及所有截图和样图,可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。
本书的读者对象
本书面向希望将神经网络技术添加到应用程序中的C#.NET开发人员。
本书的主要内容
第1章提供神经网络的基础知识。
第2章讲解激活函数的概念、目的及其图像形式。我们还将使用开源软件包(如Encog、Aforge和Accord)演示一个小型C#应用程序,并进行可视化呈现。
第3章帮助你理解决策树和随机森林的概念以及使用方法。
第4章学习如何运用Accord.Net机器学习框架连接到本地视频录制设备,通过捕获摄像机视野内任何物体的实时图像,跟踪视野中出现的人脸。
第5章重点关注如何使用开源软件包ConvNetSharp训练CNN,通过示例为读者讲解相关概念。
第6章教你使用开源软件包RNNSharp的自动编码器来解析和处理各种文本语料库。
第7章介绍粒子群优化如何取代神经网络训练方法,如用于训练神经网络的后向传播。
第8章介绍作为每个神经网络重要组成部分的函数优化。
第9章讲解如何使用数字和启发式优化技术轻松地找到神经网络函数的最佳参数。
第10章解析开源软件包TensorFlowSharp。
第11章使用Microsoft认知工具包(以前称为CNTK)以及长短期记忆(LSTM)网络完成时间序列预测。
第12章讲解门控循环单元(GRU),并将其与其他类型的神经网络进行比较。
附录A列出不同的激活函数及其函数图像。
附录B包括不同的优化函数。
学习本书的要求
在本书中,假设读者具有C#.NET的基础知识,熟悉C#.NET软件开发,并且能够熟练使用Microsoft Visual Studio。
下载示例代码及彩色图像
本书的示例代码及所有截图和样图,可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账号下载。
评论
还没有评论。