全新正版书籍,24小时发货,可开发票。
¥ 51.8 5.2折 ¥ 99 全新
库存4件
作者[美]雅罗斯拉夫尔·连奥米恩科 著 黄永强 译
出版社清华大学出版社
ISBN9787302571285
出版时间2021-03
装帧平装
开本16开
定价99元
货号29227292
上书时间2024-11-24
传统的深度学习方法在功能上几乎已经触顶,越来越多的研究人员开始寻找训练人工神经网络的替代方法。
深度机器学习对于模式识别非常有效,但是却无法解决需要理解背景环境的任务。许多研究人员,包括现代深度机器学习之父Geoff Hinton都认同,目前设计人工智能系统的方法不再能够应对当前面临的挑战。
本书讨论了传统的深度机器学习方法的可行替代方案—神经进化算法。神经进化是一系列机器学习方法,它们使用进化算法来简化对复杂任务的解决,如游戏、机器人和自然过程的仿真。
神经进化算法的灵感来自于自然选择的过程。非常简单的人工神经网络可能会变得非常复杂。神经进化的终结果是网络的拓扑形态,这使模型更节能,更易于分析。
在本书中,读者将学习到各种神经进化算法,并获得使用它们来解决不同的计算机科学问题的实用技能,从经典的强化学习到构建用于迷宫自动导航的代理。此外,读者还将学习如何使用神经进化来训练深度神经网络,从而创建可以玩经典Atari游戏的机器人代理。
本书通过各种实验,循序渐进,使读者对神经进化方法有深入的理解。它涵盖了游戏、机器人和自然过程模拟等领域的实际示例,并使用实际示例和数据集来帮助读者更好地理解所探索的概念。在通读完本书之后,读者将能够完成本书所演示的实验,并且举一反三,将神经进化方法应用于自己的工作和研究。
我们编写本书的目标是为读者提供前沿的技术知识,这是传统深度学习的重要替代方法。我们希望神经进化算法在项目中的实际应用能使读者以一种优雅且节能的方式解决当前棘手的问题。
本书读者
本书适用于希望从头开始实现神经进化算法的机器学习从业人员、深度学习研究人员和AI爱好者。读者将学习到如何将这些算法应用于各种实际问题,掌握神经进化方法优化训练人工神经网络的过程,熟悉神经进化的核心概念,并获得在工作和实验中使用它的必要实践技能。学习本书之前,读者必须具备一定的Python和深度学习以及神经网络基础知识。
内容介绍
本书共分4个部分。
? 第1部分为“进化计算算法和神经进化方法的基本原理”,包括第1章和第2章。
? 第1章“神经进化方法概述”,介绍了遗传算法的核心概念,如遗传算子和基因组编码方案。另外,还简要介绍了4种神经进化算法。
? 第2章“Python库和环境设置”,讨论了神经进化方法的实际操作。本章介绍了流行的Python库的优缺点,这些库提供了NEAT算法及其扩展的实现。
? 第2部分为“运用神经进化方法解决经典计算机科学问题”,包括第3~6章。
? 第3章“使用NEAT进行XOR求解器优化”,通过实现经典计算机科学问题的求解器开始尝试NEAT算法。
? 第4章“摆杆平衡实验”,介绍了与强化学习领域中计算机科学经典问题相关的小车-摆杆平衡实验。
? 第5章“自主迷宫导航”,尝试创建可以从迷宫中找到出口的求解器代理。读者将学习如何对具有多个传感器的机器人进行模拟,以检测障碍物并监控其在迷宫中的位置。
? 第6章“新颖性搜索优化方法”,使用在第5章的迷宫求解器创建过程中获得的实践经验来着手创建更高级的求解器。
? 第3部分为“高级神经进化方法”,包括第7~10章。
? 第7章“基于超立方体的NEAT和视觉辨别”,介绍了高级神经进化方法。读者将学习间接基因组编码方案,该方案使用复合模式生成网络(CPPN)来协助对较大的表现型ANN拓扑形态进行编码。
? 第8章“ES-HyperNEAT和视网膜问题”,介绍了如何选择适合特定问题空间的基板配置。
? 第9章“协同进化和SAFE方法”,讨论了在自然界中广泛发现的协同进化策略,并介绍了将共栖策略转移到神经进化领域的方法。
? 第10章“深度神经进化”,介绍了深度神经进化的概念,该概念可用于训练深度人工神经网络(DNN)。此外,本章进行了训练代理玩Frostbite游戏的实验。
? 第4部分为“复习和总结”,包括第11章和第12章。
? 第11章“实践和技巧提示”,指导读者如何着手解决当前遇到的问题,如何调整神经进化算法的超参数以及如何使用高级可视化工具等。此外,本章还介绍了可用于分析算法性能的指标和Python编码技巧等。
? 第12章“总结”,对读者在本书中学到的所有内容进行复习,并为读者提供了继续自学的一些资料。
充分利用本书
Python编程语言的实践知识对于使用本书中提供的示例至关重要。为了更好地理解源代码,好使用支持Python语法突出显示和代码引用位置的集成开发环境。如果读者尚未安装,本书推荐使用Microsoft Visual Studio Code。它是免费的跨平台开发工具,读者可以访问以下网址下载:
https://code.visualstudio.com
Python和我们在本书中讨论的大多数库都是跨平台的,并且与Windows、Linux和mac OS兼容。本书描述的所有实验都是从命令行执行的,因此应熟悉所选操作系统上安装的终端控制台应用程序。
要完成本书第10章“深度神经进化”中描述的实验,读者需要使用配备NVIDIA显卡GeForce GTX 1080 Ti或更高版本的性能较高的计算机。在Ubuntu Linux环境中运行该实验效果会更好。Ubuntu是一个免费的、功能强大的、基于Linux的现代操作系统。熟悉它,会为Python开发带来很多帮助。
下载示例代码文件
读者可以从www.packtpub.com下载本书的示例代码文件。具体步骤如下:
(1)登录或注册www.packtpub.com。
(2)在页面顶部的搜索框中输入图书名称Hands-On-NeuroEvolution-with-Python,如图P-1所示。
图P-1
(3)在出现本书搜索结果后,单击View Details(查看详情)按钮,如图P-2所示。
图P-2
(4)在本书详情页面中,找到并单击Download code files(下载代码文件)按钮,如图P-3所示。
图P-3
(5)在本书源代码页面中,单击右侧Code(代码)按钮,在弹出的下拉菜单中选择Download ZIP(下载压缩包),如图P-4所示。
图P-4
下载文件后,请确保使用版本解压缩或解压缩文件夹:
? WinRAR/7-Zip(Windows系统)
? Zipeg/iZip/UnRarX(Mac系统)
? 7-Zip/PeaZip(Linux系统)
该书的代码包也已经在GitHub上托管,网址如下,欢迎访问:
https://github.com/PacktPublishing/Hands-on-Neuroevolution-with-Python
如果代码有更新,则也会在现有GitHub存储库上更新。
下载彩色图像
我们还提供了一个PDF文件,其中包含本书中使用的屏幕截图、图表的彩色图像,读者可以通过以下网址下载:
https://static.packt-cdn.com/downloads/9781838824914_ColorImages.pdf
本书约定
本书使用了许多文本约定。
(1)CodeInText:表示文本中的代码字、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟URL、用户输入和Twitter句柄等。有关该实现的详细信息,请参阅以下网址的agent.py文件:
https://github.com/PacktPublishing/Hands-on-Neuroevolution-with-Python/blob/master/ Chapter5/agent.py
(2)有关代码块的设置如下:
if indices is None:
indices = np.arange(self.batch_size)
(3)任何命令行输入或输出都采用如下所示的粗体代码形式:
$ conda create -n deep_ne python=3.5
(4)术语或重要单词采用中英文对照形式,在括号内保留其英文原文。示例如下:
当从目标点到机器人中心的线落入其视野(Field Of View,FOV,也称为视场)内时,特定的雷达传感器将被激活。
(5)本书还使用了以下两个图标。
图标表示警告或重要的注意事项。
图标表示提示或小技巧。
关于作者
Iaroslav Omelianenko担任首席技术官和研究主管超过10年。他是机器学习研究领域的活跃成员,并在arXiv、ResearchGate平台以及Preprints等刊物上发表了若干篇研究论文。10多年前,他开发了用于手机游戏的自主代理,此后一直从事机器学习的应用。在过去的5年中,他积极参与有关将深度机器学习方法应用于身份验证、个人特征识别、协作机器人技术和合成智能等的研究。他还是一名活跃的软件开发人员,使用Go语言创建了开源神经进化算法的实现。
“我要感谢所有研究人员和开发人员在开源理想的启发下分享他们的工作。没有开放源代码社区,我们的世界将不会像今天这样绚丽多彩。”
关于审稿人
Alan McIntyre是CodeReclaimers公司的首席软件架构师,主要为计算应用程序提供定制软件设计和开发服务,包括计算几何、计算机视觉和机器学习等。他之前曾在通用电气、微软和多家初创公司担任软件工程师。
Unsal Gokdag,2017年以来一直在物流领域担任全职高级数据科学家,此前曾在2013年担任研发工程师。他目前正在攻读博士学位,研究方向是用于图像去斑和偏振SAR图像分类的机器学习算法的比较。他曾从事机器学习、计算机视觉和生物信息学方面的工作。在撰写本科学士学位论文时,他就曾经接触过NEAT算法,此后一直对神经进化算法很感兴趣。他目前居住在德国。
本书详细阐述了与神经进化网络开发相关的基本解决方案,主要包括神经进化方法概述、Python库和环境设置、使用NEAT进行XOR求解器优化、摆杆平衡实验、自主迷宫导航、新颖性搜索优化方法、基于超立方体的NEAT和视觉辨别、ES-HyperNEAT和视网膜问题、协同进化和SAFE方法、深度神经进化等内容。此外,本书还提供了相应的示例、代码,以帮助读者进一步理解相关方案的实现过程。 本书适合作为高等院校计算机及相关专业的教材和教学参考书,也可作为相关开发人员的自学教材和参考手册。
雅罗斯拉夫尔·连奥米恩科担任首席技术官和研究主管超过10年。他是机器学习研究领域的活跃成员,并在arXiv、ResearchGate平台以及Preprints等刊物上发表了若干篇研究论文。10多年前,他开发了用于手机游戏的自主代理,此后一直从事机器学习的应用。在过去的5年中,他积极参与有关将深度机器学习方法应用于身份验证、个人特征识别、协作机器人技术和合成智能等的研究。他还是一名活跃的软件开发人员,使用Go语言创建了开源神经进化算法的实现。
第1部分 进化计算算法和神经进化方法的基本原理
第1章 神经进化方法概述 3
1.1 进化算法和基于神经进化的方法 3
1.1.1 遗传算子 5
1.1.2 基因组编码方案 7
1.1.3 协同进化 9
1.1.4 模块化和层次结构 9
1.2 关于NEAT算法 10
1.2.1 NEAT编码方案 10
1.2.2 结构变异 12
1.2.3 使用创新数字交叉 13
1.2.4 物种形成 14
1.3 基于超立方体的NEAT 16
1.3.1 复合模式生成网络 16
1.3.2 基板配置 18
1.3.3 不断进化的连接CPPN和HyperNEAT算法 18
1.4 可进化基板HyperNEAT 20
1.4.1 超立方体中的信息模式 20
1.4.2 使用四叉树作为有效的信息提取器 21
1.4.3 ES-HyperNEAT算法 23
1.5 新颖性搜索优化方法 26
1.5.1 新颖性搜索与自然进化 26
1.5.2 新颖性度量 27
1.6 小结 29
1.7 延伸阅读 29
第2章 Python库和环境设置 31
2.1 适用于神经进化实验的Python库 31
2.1.1 NEAT-Python 31
2.1.2 NEAT-Python用法示例 32
2.1.3 PyTorch NEAT 33
2.1.4 PyTorch NEAT用法示例 34
2.1.5 MultiNEAT 35
2.1.6 MultiNEAT用法示例 36
2.1.7 深度神经进化 37
2.1.8 比较Python神经进化库 40
2.2 环境设定 41
2.2.1 Pipenv 41
2.2.2 Virtualenv 42
2.2.3 Anaconda 43
2.3 小结 44
第2部分 运用神经进化方法解决经典计算机科学问题
第3章 使用NEAT进行XOR求解器优化 47
3.1 技术要求 47
3.2 XOR问题基础知识 47
3.3 XOR实验的目标函数 49
3.4 超参数选择 50
3.4.1 NEAT部分 50
3.4.2 DefaultStagnation部分 51
3.4.3 DefaultReproduction部分 51
3.4.4 DefaultSpeciesSet部分 52
3.4.5 DefaultGenome部分 52
3.4.6 XOR实验超参数 54
3.5 运行XOR实验 56
3.5.1 环境设置 56
3.5.2 XOR实验源代码 57
3.5.3 运行实验并分析结果 60
3.6 练习 65
3.7 小结 67
第4章 摆杆平衡实验 69
4.1 技术要求 69
4.2 单杆平衡问题 69
4.2.1 单杆平衡器的运动方程 70
4.2.2 状态公式和控制动作 72
4.2.3 求解器与模拟器之间的交互 72
4.3 单杆平衡实验的目标函数 74
4.3.1 小车-摆杆装置模拟 74
4.3.2 模拟循环 75
4.3.3 基因组适应度评估 77
4.4 单杆平衡实验 78
4.4.1 超参数选择 78
4.4.2 工作环境设置 79
4.4.3 实验运行程序的实现 80
4.4.4 运行单杆平衡实验 82
4.5 练习1 85
4.6 双杆平衡问题 85
4.6.1 系统状态和运动方程 86
4.6.2 强化信号 89
4.6.3 初始条件和状态更新 89
4.6.4 控制动作 91
4.6.5 求解器与模拟器之间的相互作用 91
4.7 双杆平衡实验的目标函数 92
4.8 双杆平衡实验 93
4.8.1 超参数选择 93
4.8.2 工作环境设置 95
4.8.3 实验运行程序的实现 95
4.8.4 运行双杆平衡实验 96
4.9 练习2 100
4.10 小结 100
第5章 自主迷宫导航 103
5.1 技术要求 103
5.2 迷宫导航问题 103
5.3 迷宫模拟环境 105
5.3.1 迷宫导航代理 105
5.3.2 迷宫模拟环境的实现 107
5.3.3 传感器数据生成 108
5.3.4 代理位置更新 109
5.3.5 代理记录存储 111
5.3.6 代理记录可视化 113
5.4 使用适应度评分的目标函数定义 114
5.5 使用简单迷宫地形运行实验 115
5.5.1 超参数选择 116
5.5.2 迷宫配置文件 117
5.5.3 工作环境设置 118
5.5.4 实验运行程序的实现 118
5.5.5 基因组适应度评估 120
5.5.6 运行简单迷宫导航实验 121
5.5.7 代理记录可视化 125
5.6 练习1 126
5.7 使用难以解决的迷宫配置运行实验 126
5.7.1 超参数选择 127
5.7.2 工作环境设置和实验运行程序实现 127
5.7.3 运行困难级迷宫导航实验 127
5.8 练习2 130
5.9 小结 130
第6章 新颖性搜索优化方法 131
6.1 技术要求 131
6.2 新颖性搜索优化方法 131
6.3 新颖性搜索实现的基础 132
6.3.1 关于NoveltyItem 133
6.3.2 关于NoveltyArchive 133
6.4 适应度函数与新颖性评分 136
6.4.1 新颖性评分 136
6.4.2 新颖性度量指标 139
6.4.3 适应度函数 139
6.4.4 种群适应度评估函数 140
6.4.5 个体适应度评估函数 142
6.5 使用简单迷宫配置进行实验 145
6.5.1 超参数选择 145
6.5.2 工作环境设置 146
6.5.3 实验运行程序的实现 146
6.5.4 运行新颖性搜索优化的简单迷宫导航实验 150
6.5.5 代理记录可视化 153
6.5.6 练习1 155
6.6 使用难以解决的迷宫配置进行实验 155
6.6.1 超参数选择和工作环境设置 156
6.6.2 运行难以解决的迷宫导航实验 156
6.6.3 练习2 158
6.7 小结 159
第3部分 高级神经进化方法
第7章 基于超立方体的NEAT和视觉辨别 163
7.1 技术要求 163
7.2 使用CPPN对ANN进行间接编码 163
7.2.1 CPPN编码 164
7.2.2 基于超立方体的增强拓扑的神经进化 165
7.3 视觉辨别实验的基础知识 165
7.4 视觉辨别实验设置 167
7.4.1 视觉辨别器测试环境 168
7.4.2 可视域定义 168
7.4.3 视觉辨别器环境 170
7.4.4 实验运行程序 175
7.4.5 实验运行程序函数 175
7.4.6 基板生成器函数 179
7.4.7 适应度评估 180
7.5 视觉辨别实验 182
7.5.1 超参数选择 182
7.5.2 工作环境设置 183
7.5.3 运行视觉辨别实验 184
7.6 练习 188
7.7 小结 188
第8章 ES-HyperNEAT和视网膜问题 189
8.1 技术要求 189
8.2 手动建立的神经节点拓扑形态和基于进化配置的神经网
— 没有更多了 —
以下为对购买帮助不大的评价