目录 第 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