章 概论 1
1.1 什么是人工智能? 1
1.2 人工智能的发展历史、现状及未来发展方向 2
1.2.1 人工智能的发展历史 2
1.2.2 人工智能的现状 3
1.2.3 人工智能发展趋势与展望 4
1.3 人工智能的主要学派 4
1.3.1 符号主义 4
1.3.2 连接主义 5
1.3.3 行为主义 6
1.3.4 三大学派的协同并进 6
1.4 开发工具 7
1.4.1 为什么使用Python 来开发人工智能 7
1.4.2 Python 简介 7
课后练习 10
第一部分 知识搜索011
第2 章 搜索的基本策略 12
2.1 搜索过程 12
2.2 盲目搜索策略 13
2.2.1 宽(广)度优先搜索策略 14
2.2.2 深度优先搜索策略 14
2.3 启发式搜索策略 15
2.3.1 有序搜索算法(A 算法) 15
2.3.2 A*算法 16
2.4 编程实践 16
2.4.1 八数码难题 16
2.4.2 自动驾驶运动规划 19
课后练习 21
第3 章 搜索的不错策略 23
3.1 群智能优化算法 23
3.1.1 蚁群算法 23
3.1.2 粒子群优化算法 25
3.2 动态规划 25
3.3 编程实践 28
3.3.1 蚁群算法求解路径优化问题 28
3.3.2 动态规划求解钢条切割效益优选化问题 31
课后练习 32
第二部分 知识发现035
第4 章 概念学习和决策树 36
4.1 概念学习 36
4.1.1 什么是概念学习 36
4.1.2 寻找极大特殊假设算法 37
4.1.3 候选消除算法 38
4.2 决策树学习 38
4.2.1 划分属性准则 39
4.2.2 决策树的生成 41
4.3 归纳学习假设 44
4.4 编程实践 44
4.4.1 寻找极大特殊假设算法解决概念学习 44
4.4.2 候选消除算法解决概念学习问题 45
4.4.3 使用决策树对贷款申请样本进行决策 45
4.4.4 使用决策树对鸢尾花数据集进行分类 47
课后练习 49
第5 章 线性回归和分类 51
5.1 线性回归 51
5.1.1 线性模型 51
5.1.2 多项式回归 53
5.1.3 正则化方法 53
5.2 线性分类 54
5.3 编程实践 56
5.3.1 使用线性回归预测波士顿房价 56
5.3.2 使用逻辑回归分类仿真数据 58
课后练习 60
第6 章 统计学习方法 62
6.1 贝叶斯方法 62
6.1.1 贝叶斯定理 63
6.1.2 朴素贝叶斯分类器 63
6.2 支持向量机 66
6.2.1 线性支持向量机 66
6.2.2 软间隔 69
6.2.3 核函数 70
6.3 编程实践 71
6.3.1 使用贝叶斯方法实现垃圾邮件过滤 71
6.3.2 使用支持向量机实现鸢尾花数据的分类 73
课后练习 75
第7 章 人工神经网络和深度学习 76
7.1 人工神经网络 76
7.1.1 基本单元 77
7.1.2 网络结构 78
7.1.3 典型的神经网络 80
7.2 深度学习 87
7.2.1 卷积神经网络 87
7.2.2 循环神经网络 89
7.3 编程实践 93
7.3.1 基于神经网络的双螺旋数据分类 93
7.3.2 手写数字识别 96
7.3.3 地球温度预测 99
课后练习 101
第8 章 聚类 104
8.1 聚类基础 104
8.2 K 均值聚类 106
8.2.1 算法 106
8.2.2 如何选择很优的聚类个数 108
8.3 基于密度的聚类算法 109
8.4 谱聚类 110
8.5 编程实践 111
8.5.1 K 均值实例 111
8.5.2 基于密度的聚类算法实例 114
8.5.3 谱聚类实例 117
课后练习 118
第三部分 知识推理121
第9 章 知识表示方法 122
9.1 什么是知识 122
9.2 人工智能所关心的知识 123
9.3 知识表示方法 124
9.3.1 状态空间法 124
9.3.2 问题规约法 125
9.3.3 谓词逻辑法 125
9.3.4 语义网络表示法 126
9.3.5 产生式表示法 126
9.3.6 框架表示法 127
9.3.7 面向对象的表示方法 127
9.4 编程实践 127
9.4.1 状态空间法解决野人过河问题 127
9.4.2 问题规约法解决梵塔问题 128
9.4.3 谓词逻辑法解决八皇后问题 129
课后练习 130
第10 章 经典逻辑推理 132
10.1 推理 132
10.2 命题和谓词 133
10.2.1 命题和命题逻辑 133
10.2.2 谓词与谓词逻辑 134
10.3 自然演绎推理 135
10.4 归结演绎推理 136
10.4.1 谓词公式化为子句集 136
10.4.2 等价式 138
10.4.3 永真蕴含式 139
10.4.4 置换和合一 139
10.4.5 归结原理(定理证明) 140
10.4.6 归结反演(问题求解) 141
10.5 与或型演绎推理 141
10.6 产生式系统 141
10.7 编程实践 142
10.7.1 自然演绎推理实例 142
10.7.2 动物识别系统 143
课后练习 148
第四部分 领域应用149
第11 章 专家系统 150
11.1 专家系统 150
11.2 专家系统的结构和建造步骤 152
11.2.1 专家系统的简化结构 152
11.2.2 专家系统的开发 153
11.3 基于规则的专家系统 154
11.4 编程实例 155
11.4.1 基于决策树的专家系统规则提取 155
11.4.2 Boston 数据集上的专家规则提取 156
课后练习 158
第12 章 人脸识别 159
12.1 人脸识别 159
12.1.1 Haar 特征 160
12.1.2 AdaBoost 160
12.2 编程实例 161
12.2.1 人脸检测 161
12.2.2 人脸识别 162
第13 章 自然语言处理 164
13.1 自然语言处理 164
13.1.1 自然语言处理的发展历程 165
13.1.2 自然语言处理的基本技术 166
13.2 编程实践 170
13.2.1 基于传统机器学习算法的文本分类 170
13.2.2 基于深度学习的文本分类 172
参考文献 175