算法是人工智能技术的核心,大自然是人工智能算法的重要灵感来源。本书介绍了受到基因、鸟类、蚂蚁、细胞和树影响的算法,这些算法为多种类型的人工智能场景提供了实际解决方法。全书共10章,涉及种群、交叉和突变、遗传算法、物种形成、粒子群优化、蚁群优化、细胞自动机、人工生命和建模等问题。书中所有算法均配以具体的数值计算来进行讲解,每章都配有程序示例,读者可以自行尝试。
1.实例讲解易于理解的人工智能基础算法:本书介绍了基于基因、鸟类、蚂蚁、细胞和树的算法,这些算法可用于查找最佳路径、识别模式、查找数据背后的公式,甚至 模拟简单的生命等;
2.丰富的示例代码和在线资源,方便动手实践与拓展学习;
3.提供在线实验环境,源代码下载;
4.全彩印刷。
5.《人工智能算法 卷2 受大自然启发的算法》是系列图书第二本,卷1《人工智能算法 卷1 基础算法》已在人民邮电出版社出版;
大自然为人类的发明创造提供了源源不断的灵感。本书介绍了一些在人工智能场景提供解决方案的算法,涉及交叉和突变、遗传算法、粒子群优化、细胞自动机等问题——它们无一不受到基因、鸟类、蚂蚁、细胞或树的启发。虽然算法的灵感来源是大自然,但读者不必具备生物学知识也能读懂本书。
“人工智能算法”系列图书的目标读者是那些对人工智能感兴趣,但苦于没有良好的数学基础的人。读者只需要对大学代数课程有基本了解即可,而微积分、线性代数、微分方程等课程中的复杂公式都会在必要时介绍。本书为读者提供配套的示例程序代码,目前已有Java、C#、Python和Scala版本。
[美] 杰弗瑞·希顿(Jeffery Heaton),一位活跃的技术博主、开源贡献者,也是十多本图书的作者。他的专业领域包括数据科学、预测建模、数据挖掘、大数据、商务智能和人工智能等。他拥有华盛顿大学信息管理学硕士学位,是IEEE的高级会员、Sun认证Java程序员、开源机器学习框架Encog的首席开发人员。
第 1 章 种群、计分和选择 1
1.1 理解种群 2
1.1.1 初始种群 3
1.1.2 种群成员之间的竞争 4
1.1.3 种群成员之间的合作 4
1.1.4 表型和基因型 5
1.1.5 岛屿种群 5
1.2 对种群计分 6
1.3 从种群中选择 7
1.4 截断选择 8
1.5 联赛选择 9
1.6 如何选择轮数 12
1.7 适应度比例选择 13
1.8 随机遍历抽样 15
选择一种选择算法 17
1.9 本章小结 18
第 2 章 交叉和突变 20
2.1 演化算法 21
2.2 解编码 22
2.3 交叉 23
2.3.1 拼接交叉 24
2.3.2 无重复拼接交叉 26
1
2.3.3 其他突变和交叉策略 27
2.4 突变 28
2.4.1 改组突变 29
2.4.2 扰动突变 31
2.5 为什么需要精英 33
2.6 本章小结 34
第 3 章 遗传算法 35
3.1 离散问题的遗传算法 35
3.1.1 旅行商问题 36
3.1.2 为旅行商问题设计遗传算法 38
3.1.3 旅行商问题在遗传算法中的应用 40
3.2 连续问题的遗传算法 42
3.3 遗传算法的其他应用 45
3.3.1 标签云 45
3.3.2 马赛克艺术 47
3.4 本章小结 49
第 4 章 遗传编程 50
4.1 程序作为树 50
4.1.1 后缀表示法 52
4.1.2 树表示法 54
4.1.3 终端节点和非终端节点 55
4.1.4 对树求值 55
4.1.5 生成树 58
2
4.1.6 满树初始化 59
4.1.7 生长树初始化 61
4.1.8 混合初始化 62
4.1.9 蓄水池采样 63
4.2 树突变 67
4.3 树交叉 68
4.4 拟合公式 70
4.5 本章小结 73
第 5 章 物种形成 75
5.1 物种形成实现 76
5.1.1 阈值物种形成 76
5.1.2 聚类物种形成 77
5.2 遗传算法中的物种 79
5.3 遗传编程中的物种 79
5.4 使用物种形成 80
5.5 本章小结 81
第 6 章 粒子群优化 83
6.1 群聚 83
6.2 粒子群优化 86
6.2.1 粒子 87
6.2.2 速度计算 88
6.2.3 实现 89
6.3 本章小结 91
3
第 7 章 蚁群优化 93
7.1 离散蚁群优化 95
7.1.1 ACO 初始化 97
7.1.2 蚂蚁移动 98
7.1.3 信息素更新 102
7.2 连续蚁群优化 103
7.2.1 初始候选解 106
7.2.2 蚂蚁移动 106
7.3 本章小结 110
第 8 章 细胞自动机 111
8.1 基本细胞自动机 112
8.2 康威的《生命游戏》 116
8.2.1 《生命游戏》的规则 117
8.2.2 有趣的生命图案 118
8.3 演化自己的细胞自动机 121
理解合并物理学 125
8.4 本章小结 129
第 9 章 人工生命 130
9.1 里程碑 1:绘制植物 131
9.2 里程碑 2:创建植物生长动画 134
9.2.1 植物的物理特征 135
9.2.2 植物生长 138
4
9.3 里程碑 3:演化植物 140
给植物计分 141
9.4 本章小结 142
第 10 章 建模 144
10.1 Kaggle 竞赛 145
10.2 里程碑 1:整理数据 148
10.3 里程碑 2:建立模型 152
10.4 里程碑 3:提交测试回复 156
10.5 本章小结 157
附录 A 示例代码使用说明 159
参考资料 166