描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302661238丛书名: 高等学校计算机专业系列教材
本书共给出了21个人工智能实验案例,覆盖了人工智能课程涉及的主要内容,包括搜索求解、逻辑推理、贝叶斯网络、马尔可夫决策、监督学习、非监督学习、强化学习等各个方面,也包含了深度神经网络技术,并提供了相应的Python语言代码。
人工智能是一门实践性很强的学科,特别适合基于案例的新型教学形式。本书是为了引导学生深入
理解人工智能算法原理,提高学生对人工智能应用问题的研究、分析、解决能力而编写的。
本书是以实验案例方式组织的,全书共给出了21 个人工智能实验案例,覆盖了人工智能课程涉及
的主要内容,包括搜索求解、逻辑推理、贝叶斯网络、马尔可夫决策、监督学习、非监督学习、强化学
习等各方面,也包含了深度神经网络技术。为了便于教学,每个实验案例对实验的内容、背景和目标进
行了明确阐述,对所涉及的理论基础及算法也进行了详细介绍,并提供了相应的Python 语言代码。
本书可作为高等学校相关专业的人工智能案例课程教材,也可作为从事相关专业的技术人员的参考
用书。
第 1 章 启发式搜索:A* 算法 1
1.1 教学目标 1
1.2 实验内容与任务 1
1.3 实验过程及要求 1
1.4 相关知识及背景 2
1.5 实验教学与指导 3
1.5.1 判断连线是否穿过障碍物 3
1.5.2 邻接矩阵 3
1.5.3 AI 问题求解模型 4
1.5.4 A* 算法 4
1.5.5 A* 算法的最优性 6
1.5.6 Dijkstra 算法 6
1.6 实验报告要求 6
1.7 考核要求与方法 7
1.8 案例特色或创新 7
第 2 章 局部搜索:八皇后问题 8
2.1 教学目标 8
2.2 实验内容与任务 8
2.3 实验过程及要求 9
2.4 相关知识及背景 9
2.5 实验教学与指导 9
2.5.1 目标函数定义 9
2.5.2 邻居的定义 10
2.5.3 爬山法 10
2.5.4 爬山法的变形 12
2.5.5 模拟退火方法 13
2.6 实验报告要求 14
2.7 考核要求与方法 14
2.8 案例特色或创新 14
第 3 章 对抗与博弈:井字棋 15
3.1 教学目标 15
3.2 实验内容与任务 15
3.3 实验过程及要求 15
3.4 相关知识及背景 16
3.5 实验教学与指导 16
3.5.1 Minimax 决策 16
3.5.2 游戏模型 17
3.5.3 玩家 18
3.5.4 井字棋游戏的实现 19
3.6 实验报告要求 21
3.7 考核要求与方法 21
3.8 案例特色或创新 21
第 4 章 命题逻辑推理:怪兽世界 22
4.1 教学目标 22
4.2 实验内容与任务 22
4.3 实验过程及要求 23
4.4 相关知识及背景 23
4.5 实验教学与指导 23
4.5.1 命题逻辑 23
4.5.2 命题逻辑表达式 24
4.5.3 逻辑表达式真值判断 26
4.5.4 基于知识库的 AI 28
4.6 实验报告要求 29
4.7 考核要求与方法 29
4.8 案例特色或创新 29
第 5 章 贝叶斯网络:比赛结果预测 30
5.1 教学目标 30
5.2 实验内容与任务 30
5.3 实验过程及要求 30
5.4 相关知识及背景 31
5.5 实验教学与指导 31
5.5.1 贝叶斯网络 31
5.5.2 精确算法 32
5.5.3 拒绝采样方法 33
5.5.4 似然加权采样方法 33
5.5.5 Gibbs 采样方法 34
5.6 实验报告要求 34
5.7 考核要求与方法 35
5.8 案例特色或创新 35
第 6 章 隐马尔可夫模型:机器人定位 36
6.1 教学目标 36
6.2 实验内容与任务 36
6.3 实验过程及要求 37
6.4 相关知识及背景 37
6.5 实验教学与指导 38
6.5.1 HMM 38
6.5.2 滤波算法 38
6.5.3 平滑算法 39
6.5.4 最可能序列 40
6.6 实验报告要求 41
6.7 考核要求与方法 41
6.8 案例特色或创新 41
第 7 章 卡尔曼滤波器:运动跟踪 42
7.1 教学目标 42
7.2 实验内容与任务 42
7.3 实验过程及要求 43
7.4 相关知识及背景 43
7.5 实验教学与指导 43
7.5.1 卡尔曼滤波器原理 43
7.5.2 卡尔曼滤波器实现 44
7.6 实验报告要求 45
7.7 考核要求与方法 45
7.8 案例特色或创新 45
第 8 章 马尔可夫决策:机器人导航 46
8.1 教学目标 46
8.2 实验内容与任务 46
8.3 实验过程及要求 47
8.4 相关知识及背景 47
8.5 实验教学与指导 47
8.5.1 马尔可夫决策过程 47
8.5.2 环境模型 48
8.5.3 价值迭代算法 48
8.5.4 策略评估 49
8.5.5 策略迭代算法 49
8.6 实验报告要求 50
8.7 考核要求与方法 50
8.8 案例特色或创新 50
第 9 章 决策树学习:红酒分类 51
9.1 教学目标 51
9.2 实验内容与任务 51
9.3 实验过程及要求 52
9.4 相关知识及背景 52
9.5 实验教学与指导 53
9.5.1 决策树的学习算法 53
9.5.2 属性重要性度量:熵与基尼指数 53
9.5.3 决策树剪枝 54
9.5.4 sklearn 的决策树模型 55
9.5.5 应用 sklearn 进行决策树建模和评估 55
9.6 实验报告要求 57
9.7 考核要求与方法 57
9.8 案例特色或创新 57
第 10 章 线性回归:糖尿病病情预测 58
10.1 教学目标 58
10.2 实验内容与任务 58
10.3 实验过程及要求 58
10.4 相关知识及背景 59
10.5 实验教学与指导 59
10.5.1 线性回归 59
10.5.2 正则化 59
10.6 实验原理及方案 60
10.6.1 数据加载 60
10.6.2 分析计算 60
10.6.3 Keras 实现线性回归 61
10.6.4 拟合程度的评价 61
10.6.5 正则化 61
10.7 实验报告要求 61
10.8 考核要求与方法 62
10.9 案例特色或创新 62
第 11 章 线性分类:乳腺癌诊断 63
11.1 教学目标 63
11.2 实验内容与任务 63
11.3 实验过程及要求 63
11.4 相关知识及背景 64
11.5 实验教学与指导 64
11.5.1 硬阈值线性分类 64
11.5.2 Logistic 分类 65
11.6 实验原理及方案 65
11.6.1 数据加载 66
11.6.2 硬阈值线性分类 66
11.6.3 Logistic 分类计算 67
11.7 实验报告要求 67
11.8 考核要求与方法 68
11.9 案例特色或创新 68
第 12 章 非参数学习方法 KNN:病情诊断与预测 69
12.1 教学目标 69
12.2 实验内容与任务 69
12.3 实验过程及要求 69
12.4 相关知识及背景 69
12.5 实验教学与指导 70
12.5.1 KNN 分类和回归 70
12.5.2 距离与维度 70
12.5.3 算法时间性能 70
12.6 实验原理及方案 71
12.6.1 KNN 分类 71
12.6.2 KNN 回归 72
12.7 实验报告要求 73
12.8 考核要求与方法 73
12.9 案例特色或创新 73
第 13 章 支持向量机:乳腺癌诊断 74
13.1 教学目标 74
13.2 实验内容与任务 74
13.3 实验过程及要求 74
13.4 相关知识及背景 74
13.5 实验教学与指导 75
13.5.1 最大分离间隔 75
13.5.2 传统优化过程及意义 76
13.5.3 松弛问题 76
13.5.4 特征变换与核函数 77
13.5.5 现代观点 77
13.6 实验原理及方案 77
13.6.1 加载乳腺癌数据集,按 7 : 3 划分训练集和测试集 77
13.6.2 自定义 Loss 函数 78
13.6.3 建立神经网络模型并训练 78
13.6.4 评估模型 78
13.7 实验报告要求 79
13.8 考核要求与方法 79
13.9 案例特色或创新 79
第 14 章 Adaboost 集成学习:红酒分类 80
14.1 教学目标 80
14.2 实验内容与任务 80
14.3 实验过程及要求 80
14.4 相关知识及背景 80
14.5 实验教学与指导 81
14.5.1 样本加权 81
14.5.2 分类器加权 81
14.5.3 Adaboost 分类算法 81
14.6 实验原理及方案 82
14.6.1 加载 wine 数据集,按 7 : 3 划分训练集和测试集 82
14.6.2 定义加权投票函数 82
14.6.3 Adaboost 训练函数 83
14.6.4 Adaboost 预测函数 83
14.6.5 Adaboost 性能评估 83
14.7 实验报告要求 84
14.8 考核要求与方法 84
14.9 案例特色或创新 84
第 15 章 聚类:K-Means 算法划分鸢尾花类别 85
15.1 教学目标 85
15.2 实验内容与任务 85
15.3 实验过程及要求 85
15.4 相关知识及背景 86
15.5 实验教学与指导 86
15.5.1 数据加载 86
15.5.2 K-Means 算法原理 87
15.5.3 K-Means 算法实现 87
15.5.4 训练并显示聚类结果 88
15.5.5 聚类结果和原始标记进行对比 89
15.6 实验报告要求 89
15.7 考核要求与方法 90
15.8 案例特色或创新 90
第 16 章 聚类:EM 算法估计混合高斯分布 91
16.1 教学目标 91
16.2 实验内容与任务 91
16.3 实验过程及要求 91
16.4 相关知识及背景 92
16.5 实验教学与指导 92
16.5.1 EM 算法 92
16.5.2 混合高斯分布的参数计算 93
16.5.3 算法实现参考 93
16.6 实验报告要求 95
16.7 考核要求与方法 95
16.8 案例特色或创新 95
第 17 章 强化学习:机器人导航 96
17.1 教学目标 96
17.2 实验内容与任务 96
17.3 实验过程及要求 97
17.4 相关知识及背景 97
17.5 实验教学与指导 98
17.5.1 环境模型 98
17.5.2 被动学习:时序差分方法 TD Learning 98
17.5.3 主动学习:Q Learning 99
17.5.4 价值函数的线性逼近 100
17.6 实验报告要求 101
17.7 考核要求与方法 101
17.8 案例特色或创新 102
第 18 章 强化学习:策略梯度法 103
18.1 教学目标 103
18.2 实验内容与任务 103
18.3 实验过程及要求 104
18.4 相关知识及背景 104
18.5 实验教学与指导 104
18.5.1 环境模型 104
18.5.2 策略梯度法原理 105
18.5.3 策略函数的神经网络设计与训练 106
18.6 实验报告要求 107
18.7 考核要求与方法 108
18.8 案例特色或创新 108
第 19 章 卷积神经网络:手写体数字识别 109
19.1 教学目标 109
19.2 实验内容与任务 109
19.3 实验过程及要求 109
19.4 相关知识及背景 110
19.5 实验教学与指导 110
19.5.1 神经网络与层 110
19.5.2 激活函数 111
19.5.3 损失函数与优化计算 111
19.5.4 图像处理与卷积层 111
19.5.5 池化层 112
19.5.6 丢弃处理 Dropout 113
19.5.7 基于 Keras 的卷积神经网络处理框架 113
19.6 实验报告要求 114
19.7 考核要求与方法 114
19.8 案例特色或创新 114
第 20 章 循环神经网络:电影评论情感分析 115
20.1 教学目标 115
20.2 实验内容与任务 115
20.3 实验过程及要求 116
20.4 相关知识及背景 116
20.5 实验教学与指导 116
20.5.1 循环神经网络 116
20.5.2 LSTM 网络 117
20.5.3 词向量与 embedding 层 118
20.5.4 基于 Keras 的 LSTM 网络处理框架 118
20.6 实验报告要求 119
20.7 考核要求与方法 120
20.8 案例特色或创新 120
第 21 章 生成模型:VAE 生成手写体数字 121
21.1 教学目标 121
21.2 实验内容与任务 121
21.3 实验过程及要求 121
21.4 相关知识及背景 122
21.5 实验教学与指导 122
21.5.1 VAE 模型推导 122
21.5.2 算法实现参考 123
21.5.3 模型应用:观察 q(z|x) 125
21.5.4 模型应用:观察 p(x|z) 126
21.6 实验报告要求 127
21.7 考核要求与方法 127
21.8 案例特色或创新 128
第 22 章 案例 Python 实现代码 129
22.1 启发式搜索:A* 算法 Python 实现代码 129
22.2 局部搜索:八皇后问题 Python 实现代码 135
22.3 对抗与博弈:井字棋 Python 实现代码 138
22.4 命题逻辑推理:怪兽世界 Python 实现代码 142
22.5 贝叶斯网络:比赛结果预测 Python 实现代码 146
22.6 隐马尔可夫模型:机器人定位 Python 实现代码 149
22.7 卡尔曼滤波器:运动跟踪 Python 实现代码 151
22.8 马尔可夫决策:机器人导航 Python 实现代码 153
22.9 决策树学习:红酒分类 Python 实现代码 156
22.10 线性回归:糖尿病病情预测 Python 实现代码 157
22.11 线性分类:乳腺癌诊断 Python 实现代码 158
22.12 非参数学习方法 KNN:病情诊断与预测 Python 实现代码 159
22.13 支持向量机:乳腺癌诊断 Python 实现代码 161
22.14 Adaboost 集成学习:红酒分类 Python 实现代码 162
22.15 聚类:K-means 算法划分鸢尾花类别 Python 实现代码 163
22.16 聚类:EM 算法估计混合高斯分布 Python 实现代码 165
22.17 强化学习:机器人导航 Python 实现代码 168
22.18 强化学习:策略梯度法 Python 实现代码 171
22.19 卷积神经网络:手写体数字识别 Python 实现代码 173
22.20 循环神经网络:电影评论情感分析 Python 实现代码 175
22.21 生成模型:VAE 生成手写体数字 Python 实现代码 176
参考文献 180
人工智能是目前发展迅速的学科,是新一轮科技革命和产业变革的重要驱动力量,各高校纷纷开设了相关专业及课程。人工智能学科知识体系庞大,以数学知识为基础,也非常重视应用,因此在教学的过程中,算法案例和实验极其重要。
本书一共提供了21 个人工智能实验教学案例,涉及基于搜索求解、逻辑推理、贝叶斯网络、马尔可夫决策、监督学习、非监督学习、强化学习等各方面。所有的案例按教学方案的方式表述,从实验任务、实验过程、相关知识、教学目标、教学指导、考核要求等各方面进行说明。
本书实验算法及参考代码用Python 语言完成,学生在学习过程中还会用到keras、sklearn、numpy 等常用的软件库。通过对本书的学习,可以培养学生深入理解人工智能算法原理,提高学生对人工智能应用问题的研究、分析及解决能力。
本书可作为高等学校相关专业的人工智能案例课程教材。其内容配合了Stuart J. Russell 和Peter Norvig 的《人工智能–一种现代方法》这本流行的教材,可作为其配套实验书使用。
本书配套教学视频参见https://space.bilibili.com/21418302。
由于人工智能技术发展迅速,以及编著者水平限制,本书难免存在缺点和疏漏,恳请使用者不吝指正,以便修改。感谢三峡大学研究生课程建设项目(SDKC 202112)的资助。
评论
还没有评论。