新书推荐 |《C#神经网络编程》

新书推荐

《C#神经网络编程》

点击上图了解及购买

帮助你运用C#快速入门神经网络编程的实践指南

编辑推荐

在过去几年里,神经网络华丽回归,并为人工智能领域带来了重大的创新。

本书旨在为C#程序员使用神经网络、CNTK等C#库和TensorFlowSharp解决复杂的计算问题时,提供实践指导。本书逐步讲解编程实践,涵盖从数学到理论等神经网络的各个方面,帮助你运用C#和.NET框架构建深度神经网络。

本书从神经网络入门知识开始,详细介绍如何使用Encog、Aforge和Accord搭建一个神经网络,帮助你深入理解神经网络相关概念和技术,例如深度网络、感知器、优化算法、卷积网络和自动解码器。此外,还详细讲解如何向.NET应用程序中添加智能特性,例如面部和运动检测、对象检测和标注、语言理解、知识和智能搜索。

通过阅读本书,你将学到:

  • 理解感知器以及如何运用C#来实现。

  • 使用认知服务训练并可视化神经网络。

  • 运用C#和TensorFlowSharp对物体进行图像识别和标注。

  • 使用Accord.Net检测面部等特定图像特征。

  • 针对简单异或问题和Encog演示粒子群优化。

  • 使用ConvNetSharp训练卷积神经网络。

  • 运用数字和启发式优化技术为神经网络函数寻找最优参数。

内容简介

  • 第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),并将其与其他类型的神经网络进行比较。

作者简介

马特•R.科尔(Matt R. Cole)是一名经验丰富的开发人员和作者,在Microsoft Windows、C、C++、 C#和.NET方面有30年的经验。他是Evolved AI Solutions公司的老板,该公司是高级机器学习/生物AI技术的主要供应商。他开发了第一个完全用C#和.NET编写的企业级微服务框架,该框架被纽约一家大型对冲基金生产。他还开发了第一个完全整合镜像和标准神经元的生物人工智能框架。

目录

译者序

前言

关于作者

关于审校者

第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.3.7 基本问题    148

9.3.8 创建自定义问题    151

9.3.9 自定义问题示例    153

9.4 小结    154

9.5 参考文献    155

第10章 使用TensorFlowSharp进行对象检测    157

10.1 使用张量    157

10.2 开发自己的TensorFlow应用程序    161

10.3 检测图像    163

10.4 小结    166

10.5 参考文献    166

第11章 使用CNTK进行时间序列预测和LSTM    167

11.1 长短期记忆    167

11.1.1 LSTM变体    168

11.1.2 LSTM的应用    170

11.2 CNTK术语    170

11.3 示例应用程序    171

11.3.1 编写应用程序代码    174

11.3.2 运行应用程序    175

11.3.3 训练网络    176

11.3.4 创建模型    177

11.3.5 创建批量数据    178

11.3.6 获取下一批数据    178

11.4 LSTM的表现    178

11.5 小结    179

11.6 参考文献    179

第12章 GRU与LSTM、RNN和前馈神经网络    181

12.1 QuickNN    181

12.2 了解GRU    182

12.3 LSTM和GRU之间的差别    182

12.4 构建不同的网络    183

12.4.1 编写LSTM代码    184

12.4.2 编写GRU代码    184

12.5 比较LSTM、GRU、前馈和RNN网络的相关操作    185

12.6 网络差异    187

12.7 小结    189

附录A 激活函数    190

附录B 函数优化参考    194

你与世界

只差一个

公众号

相关推荐