描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302611608丛书名: 中外学者论AI
通过本书,读者可以:
·了解如何使用Python工具创建基于遗传算法的应用程序。
·利用遗传算法优化函数,并解决规划和调度问题。
·提升机器学习模型的性能,优化深度学习网络结构。
·基于工具包Open AI Gym将遗传算法应用于强化学习。
·探索其他生物启发方法,包括遗传规划和粒子群优化等。
遗传算法是受自然进化启发的搜索、优化和学习算法家族中的一员。通过模拟进化过程,遗传算法较传统搜索算法具有更多优势,可为各式问题提供高质量的解决方案。本书基于Python语言将遗传算法应用于各种任务,提供在人工智能和其他很多领域应用遗传算法的实践经验。同时,本书涵盖了人工智能领域的新进展。
第1部分遗传算法基础
第1章遗传算法简介
1.1遗传算法的概念
1.1.1达尔文进化论
1.1.2遗传算法分析
1.2遗传算法背后的理论
1.3与传统算法的区别
1.3.1种群基础
1.3.2基因编码
1.3.3适应度函数
1.3.4概率行为
1.4遗传算法的优点
1.4.1全局优化
1.4.2处理复杂问题
1.4.3处理缺少数学模型的问题
1.4.4抗噪声能力
1.4.5并行处理
1.4.6持续学习
1.5遗传算法的局限性
1.5.1特殊定义
1.5.2超参数优化
1.5.3计算密集型操作
1.5.4过早收敛
1.5.5无绝对最优解
1.6遗传算法的适用情形
小结
拓展阅读
第2章理解遗传算法的关键要素
2.1遗传算法的基本流程
2.1.1创建初始种群
2.1.2计算适应度值
2.1.3应用选择、交叉和变异算子
2.1.4迭代停止的条件
2.2选择算子
2.2.1轮盘赌选择
2.2.2随机通用抽样
2.2.3基于排序的选择
2.2.4适应度缩放
2.2.5锦标赛选择
2.3交叉算子
2.3.1单点交叉
2.3.2两点交叉和k点交叉
2.3.3均匀交叉法
2.3.4有序列表的交叉
2.3.5顺序交叉
2.4变异算子
2.4.1反转变异
2.4.2交换变异
2.4.3逆序变异
2.4.4重组变异
2.5实数编码的遗传算法
2.5.1混合交叉
2.5.2模拟二进制交叉
2.5.3实数变异
2.6理解精英保留策略
2.7小生境和共享
2.8遗传算法解决问题的应用方法
小结
拓展阅读
第2部分使用遗传算法解决问题
第3章DEAP框架的使用
3.1技术要求
3.2DEAP简介
3.3使用creator模块
3.3.1创建Fitness类
3.3.2创建Individual类
3.4使用Toolbox类
3.4.1创建遗传算子
3.4.2创建种群
3.4.3计算适应度
3.5OneMax问题
3.6使用DEAP解决OneMax问题
3.6.1选择染色体
3.6.2计算适应度值
3.6.3选择遗传算子
3.6.4设置停止条件
3.7使用DEAP实现算法
3.7.1准备工作
3.7.2演化求解
3.7.3运行程序
3.8使用内置算法
3.8.1Statistics对象
3.8.2算法
3.8.3logbook对象
3.8.4运行程序
3.8.5添加名人堂
3.9算法参数设置实验
3.9.1种群规模与代数
3.9.2交叉算子
3.9.3变异算子
3.9.4选择算子
小结
拓展阅读
第4章组合优化
4.1技术要求
4.2搜索问题和组合优化
4.3求解背包问题
4.3.1Rosetta Code 01背包问题
4.3.2解的表示
4.3.3Python问题表示
4.3.4遗传算法的解
4.4求解TSP问题
4.4.1TSPLIB基准文件
4.4.2解的表示
4.4.3Python问题表示
4.4.4遗传算法的解
4.4.5使用强化探索和精英保留来改进结果
4.5求解VRP问题
4.5.1解的表示
4.5.2Python问题表示
4.5.3遗传算法的解
小结
拓展阅读
第5章约束满足
5.1技术要求
5.2搜索问题中的约束满足
5.3求解N皇后问题
5.3.1解的表示方式
5.3.2Python对问题的表示方式
5.3.3遗传算法求解N皇后问题
5.4求解护士排班问题
5.4.1解的表示方式
5.4.2硬约束与软约束
5.4.3基于Python的问题表示
5.4.4遗传算法求解护士排班问题
5.5求解图着色问题
5.5.1解的表示方式
5.5.2使用硬约束和软约束解决图着色问题
5.5.3基于Python的问题表示
5.5.4遗传算法求解
小结
拓展阅读
第6章连续函数优化
6.1技术要求
6.2实数染色体与实数遗传算子
6.3连续函数下的DEAP应用
6.4优化Eggholder函数
6.4.1利用遗传算法优化Eggholder函数
6.4.2增加变异率来提高速度
6.5优化Himmelblau函数
6.5.1用遗传算法优化Himmelblau函数
6.5.2利用小生境和共享来寻找多个解
6.6Simionescu函数与约束优化
6.6.1基于遗传算法的约束优化
6.6.2用遗传算法优化Simionescu函数
6.6.3使用约束寻找多个解
小结
拓展阅读
第3部分遗传算法的人工智能应用
第7章使用特征选择改善机器学习模型
7.1技术要求
7.2有监督机器学习
7.2.1分类
7.2.2回归
7.2.3有监督学习算法
7.3有监督学习中的特征选择
7.4Friedman1选择特征问题
7.4.1解的表示
7.4.2Python问题表示
7.4.3遗传算法求解
7.5分类数据集Zoo的特征选择
7.5.1Python问题表示
7.5.2遗传算法求解
小结
拓展阅读
第8章机器学习模型的超参数优化
8.1技术要求
8.2机器学习中的超参数
8.2.1超参数优化
8.2.2Wine数据集
8.2.3自适应增强分类器
8.3基于遗传算法的网格搜索来优化超参数
8.3.1测试分类器的默认性能
8.3.2运行常规的网格搜索
8.3.3运行基于遗传算法的网格搜索
8.4直接使用遗传算法优化超参数
8.4.1超参数表示
8.4.2评估分类器的准确性
8.4.3使用遗传算法优化超参数
小结
拓展阅读
第9章深度学习网络的结构优化
9.1技术要求
9.2人工神经网络与深度学习
9.2.1多层感知器
9.2.2深度学习和卷积神经网络
9.3优化深度学习分类器的架构
9.3.1鸢尾花数据集
9.3.2表示隐藏层的配置
9.3.3评估分类器的准确性
9.3.4使用遗传算法优化 MLP 架构
9.4将架构优化与超参数优化相结合
9.4.1解的表示
9.4.2评估分类器的准确性
9.4.3使用遗传算法优化 MLP 的组合配置
小结
拓展阅读
第10章基于遗传算法的强化学习
10.1技术要求
10.2强化学习
10.3OpenAI Gym
10.4处理MountainCar环境问题
10.4.1解的表示
10.4.2解的评估
10.4.3基于Python的问题表示
10.4.4遗传算法求解
10.5处理CartPole环境问题
10.5.1用神经网络控制CartPole
10.5.2解的表示和评估
10.5.3基于Python的问题表示
10.5.4遗传算法求解
小结
拓展阅读
第4部分相关方法
第11章遗传图像重建
11.1技术要求
11.2用多边形重建图像
11.3Python中的图像处理
11.3.1Python图像处理库
11.3.2用多边形绘制图像
11.3.3测量图像之间的差异
11.4利用遗传算法重建图像
11.4.1解的表示与评价
11.4.2基于Python的问题表示
11.4.3遗传算法的实现
11.4.4图像重建结果
小结
拓展阅读
第12章其他进化和生物启发计算方法
12.1技术要求
12.2进化计算和生物启发计算
12.3遗传编程
12.3.1遗传编码示例——偶校验
12.3.2遗传编程实现
12.3.3简化的解
12.4粒子群优化算法
12.4.1PSO实例——函数优化
12.4.2粒子群优化实现
12.5其他相关方法
12.5.1进化策略
12.5.2差分进化算法
12.5.3蚁群算法
12.5.4人工免疫系统
12.5.5人工生命
小结
拓展阅读
受查尔斯·达尔文的自然进化论的启发,遗传算法被例证为是解决搜索、优化和学习问题的最引人关注的算法之一,特别是当传统算法无法在合理的时间范围内提供足够好的结果时。
本书将带您踏上掌握这一极其强大但简便的方法的旅程,并将其应用到各种各样的任务中,最终通向人工智能应用。
通过本书可以了解多种遗传算法的工作原理及应用。此外,本书还结合当前流行的Python编程语言,提供遗传算法在各个领域的应用实践。
本书读者对象
本书旨在帮助软件开发人员、数据科学家和人工智能爱好者利用遗传算法解决其工程应用中相关学习、搜索和优化问题,以及提升现有智能应用程序的性能和准确性。
本书同样适用于每一个承担着实际工程任务的人,用于解决传统算法难以处理的,或无法在限定时间内提供高质量结果的难题。本书展示了遗传算法如何作为一种强大而简便的方法来解决各种复杂问题。
本书包含内容
第1章介绍了遗传算法及其基本理论和基本工作原理,探索遗传算法与传统方法之间的差异,并了解一些遗传算法的最佳应用场景。
第2章理解遗传算法的关键要素,深入研究了遗传算法的关键组成部分和实现细节。在概述了基本的遗传算法流程之后,您将了解它们的不同要素以及每个要素的各种实现。
第3章介绍强大而灵活的进化计算框架DEAP,它能够用遗传算法解决现实生活中的问题。通过编写Python程序解决OneMax问题(即遗传算法领域的“Hello World”问题),了解如何使用DEAP框架。
第4章介绍了组合优化问题,如背包问题、旅行商问题和车辆路径问题,以及如何使用遗传算法和DEAP框架编写Python程序来解决这些问题。
第5章介绍了约束满足问题,如N皇后问题、护士排班问题、图着色问题。同时阐述如何使用遗传算法和DEAP框架编写Python程序解决这些问题。
第6章介绍了连续优化问题以及如何用遗传算法解决这些问题。本章使用的示例包括Eggholder函数、Himmelblau函数和Simionescu函数的优化,同时探讨小生境、共享和约束处理的概念。
第7章运用特征选择改善机器学习模型,主要讨论有监督机器学习模型,并解释如何使用遗传算法从所提供的输入数据中选择最佳特征子集来提高这些模型的性能。
第8章为机器学习模型的超参数优化。解释了遗传算法如何通过调整模型的超参数来提高有监督机器学习模型的性能,可以采用基于遗传算法的网格搜索方法,也可以直接采用遗传搜索。
第9章是深度学习网络的结构优化,重点研究人工神经网络,并探索遗传算法如何通过优化神经网络模型的网络架构来提高其性能,以及如何将网络体系结构优化与超参数调整结合起来。
第10章为基于遗传算法的强化学习,并解释了遗传算法如何应用于强化学习任务,同时使用OpenAI Gym工具包解决了MountainCar和CartPole两个基准环境。
第11章为遗传图像重建。通过遗传算法,使用一组半透明的多边形对一幅名画进行重建实验。在此过程中,可以了解有关图像处理和相关Python库的实用经验。
第12章为其他进化和生物启发计算方法。旨在开阔视野,介绍其他启发于生物智能的问题解决方法,并基于DEAP的Python程序对其中两种方法(遗传编程和粒子群优化)进行演示。
如何充分学习本书
为了充分掌握本书,应具备一定的Python语言编程基础以及数学和计算机科学的基础知识。因为本书已经涵盖了机器学习必要概念的简单介绍,对这些基本概念有一定的了解将有助于理解本书。
要运行本书附带的编程示例,建议安装Python 3.7版本或更高版本。书中提到的一些Python模块包,推荐使用PyCharm或Visual Studio Code等Python 集成开发环境。
资源分享
本书提供了全部示例代码文件,读者可以扫描二维码获取。
示例代码
惯例
本书中使用了许多文本惯例。
CodeInText: 表示文本中的代码段、数据库表名、文件夹名、文件名、文件扩展名、路径名、虚拟URL、用户输入的字符和Twitter账户等。下面是一个例子: 用类的__init__()方法来创建数据集。
代码设置如下:
self.X,self.y = datasets.make_friedman1(n_samples=self.numSamples,
n_features=self.numFeatures,
noise=self.NOISE,
random_state=self.randomSeed)
当提醒注意代码块的特定部分时,相关行或项目将设置为粗体:
self.regressor=GradientBoostingRegressor(random_state=
self.randomSeed)
命令行的输入或输出写成如下样式:
pip install deap
粗体: 表示一个新的术语、一个重要的单词或屏幕上显示的单词。例如,菜单或对话框中的单词(从管理面板中选择系统信息)。
评论
请留下评论,不吝赐教。如果您阅读和使用了本书,请在购买它的网站上留下评论,以便其他潜在的读者可以看到并基于您反馈的客观观点做出购买决定,同时也帮助我们了解您对产品的看法,本书的作者也可以获知您的反馈。非常感谢您!
评论
还没有评论。