人工智能导论概念汇总:从搜索算法到神经网络的考点关系网 简介这份山东大学人工智能导论概念汇总面向人工智能相关专业学生及期末备考者系统梳理了课程核心概念。内容覆盖绪论中的智能与人工智能定义、知识表示与知识图谱含一阶谓词逻辑、产生式、框架、语义网络、确定性推理方法等关键章节同时也将机器学习、搜索策略、遗传算法等标签主题融入整体脉络帮助快速搭建知识框架。资源包整体小巧仅含 1 个 PDF 文件压缩包大小 2.28MB方便移动端直接查阅。作者基于期末考试可能性对原版内容进行了针对性删减明确标注非重点内容如代码框适合考前集中回顾与查缺补漏。目前已有 433 人学习使用参考价值经过其他学习者验证。1. 某高校《人工智能导论》概念汇总它不是名词库而是考点关系网很多人以为人工智能导论概念汇总就是把名词解释背一遍结果上了考场才发现判断题真正考的是概念之间的边界DFS 到底完不完备A* 的 h 函数为什么不能随便取过拟合为什么不是普通的“算错了”。这份“概念汇总”不是名词词典而是把搜索、知识表示、机器学习、神经网络这几大块按“解决什么问题 → 核心思想 → 边界条件 → 常见考法”串起来的复习笔记。适合正在备考这门课的在校生也适合转行做 AI 但基础不牢、想快速建立学科框架的人。目标只有一条让概念能答题、能换算、能让你在开卷考试时第一时间定位到要用哪个定义。2. 搜索策略从盲目搜索到启发式搜索的核心概念与考点2.1 搜索问题的形式化定义与回溯导论课讲搜索第一件事不是让你写递归而是让你学会把一个问题“形式化”。搜索问题的四个要素是状态、动作、转移模型、目标测试有的教材还会加上路径代价。考试里经常给一个“农夫过河”或者“八数码”场景让你写出状态表示是什么、动作集合怎么定义。状态表示不唯一但要让目标测试和转移函数都容易写。树搜索和图搜索是这节最容易混的一对概念。树搜索不考虑历史状态同一个节点会被反复扩展优点是实现简单缺点是复杂问题容易指数爆炸图搜索用 closed 表记录已访问状态能剪掉重复路径但需要额外空间。导论课的判断题常问“BFS 在图搜索里完备吗”——答案是完备的因为有限状态图不扩到无穷。回溯是 DFS 的一种实现方式可以理解成“走不通就回到上一个岔路口”。很多同学直接背“DFS 用栈”但回溯真正重要的是撤销动作。下面这段结构考试不用默写但能帮你答对“回溯搜索和 DFS 是什么关系”的简答题def backtrack(state, path): if is_goal(state): return path for action in actions(state): next_state transition(state, action) # 当前这条分支上走过的状态不再走避免原地打转 if next_state in path: continue result backtrack(next_state, path [action]) if result is not None: return result return None这段代码里is_goal是目标判断actions返回所有合法动作transition返回执行动作后的新状态。path保存的是动作序列不是状态集合所以判断重复用的是“当前分支路径上的状态”而不是全局已访问表。这个细节在考试里容易被拿出来做文章回溯只需要局部去重图搜索需要全局去重。2.2 盲目搜索BFS、DFS 与迭代加深盲目搜索是不借助问题额外信息的搜索。常考的是三张对比表BFS 用队列、DFS 用栈、迭代加深用深度限制循环。BFS 在单位代价下既完备又最优DFS 如果允许重复状态在有限图中完备但解不一定最优迭代加深牺牲一点重复扩展时间换回 BFS 的最优性和 DFS 的空间优势。策略数据结构完备性最优性单位代价空间复杂度BFS队列是是O(b^d)DFS栈有限图是否O(bm)迭代加深栈是是O(bd)其中 b 是分支因子d 是最浅解深度m 是搜索树最大深度。考试最容易丢分的是“DFS 不完备”这个表述只有在无限状态空间或图中有环且不加去重时DFS 才不完备加了 closed 表后有限图里它是完备的只是不保证最短路径。BFS 的最优性也要加限定词——单位代价如果边权不一样BFS 找到的第一条路径不一定是代价最小的这时要用一致代价搜索。2.3 启发式搜索A* 算法与可采纳性A* 是导论课搜索章节的压轴考点。评价函数 f(n) g(n) h(n)g 是从起点到当前节点的实际代价h 是当前节点到目标的估计代价。常见的 h 设计是八数码里的“曼哈顿距离”也就是每个数字当前位置到目标位置的横向纵向距离之和。一个好 h 要尽量接近真实代价又不能超过真实代价。代码不是考默写但理解实现能帮你记住优先级队列里到底按什么排序import heapq def astar(start, goal, h): # 优先队列元素f, g, state, path open_pq [(h(start), 0, start, [])] closed set() while open_pq: f, g, state, path heapq.heappop(open_pq) if state goal: return path if state in closed: continue closed.add(state) for action, next_state, cost in neighbors(state): if next_state in closed: continue new_g g cost new_f new_g h(next_state) heapq.heappush(open_pq, (new_f, new_g, next_state, path [action])) return None这里元组排序按第一个元素 f所以堆顶是当前估计总代价最小的节点。neighbors返回三个值动作名、新状态、单步代价。如果 h 是可采纳的即 h(n) 不大于真实最短代价那么 A* 第一次到达目标时一定是最优解。这个结论是导论课的常考判断题很多人只记住了“A* 最优”忘了前提条件。还需注意图搜索版的 A* 里 h 必须满足一致性否则同一个节点可能被重复扩展若用树搜索只需要可采纳性。3. 知识表示与推理命题逻辑、产生式系统与不确定性3.1 三种常见知识表示方法知识表示这一章导论课主要讲产生式、语义网络、框架三种。产生式就是“如果-那么”规则适合过程性知识比如医疗诊断规则“如果发烧且咳嗽那么可能感冒”。语义网络用节点和弧表达概念与关系适合概念分类和属性继承。框架是带槽位和默认值的结构体适合描述一类对象的固定属性和可变属性。表示方式核心结构最适合的问题常见缺点产生式系统IF-THEN 规则规则明确的推理规则冲突时难维护语义网络节点 弧概念分类、属性继承不善于表达否定与量化框架槽位 默认值结构化对象例外情况处理麻烦考试中常见的画图题是“用语义网络表示麻雀是鸟鸟有翅膀麻雀会飞企鹅是鸟但不会飞”。正确做法是画出“麻雀”“企鹅”“鸟”三个节点用 is-a 弧连接给“鸟”挂一个 has-wing 属性弧给“麻雀”和“企鹅”分别挂 can-fly 和 cannot-fly 弧而不是把“会飞”直接挂在父类上再覆盖。因为语义网络默认属性沿 is-a 链继承把“会飞”挂在“鸟”节点上企鹅就会错误继承到会飞必须通过子类自身的例外弧来阻断。3.2 推理方式正向推理、反向推理与归结原理正向推理从已知事实出发反复匹配规则前件把结论加入事实库直到目标出现或无法继续。反向推理从目标反推需要的子目标适合诊断类应用因为系统只需要沿着与目标相关的规则搜索。判定规则冲突时常见消解策略是先到先得、规则优先级、前提更具体优先。归结原理是自动定理证明的基础。思路是把要证明的结论取反连同已知知识写成子句集反复消去互补文字如果得到空子句说明假设矛盾原结论成立。例如已知“¬A∨B”和“A”要证“B”先把“B”取反加入子句集得到三个子句¬A∨B、A、¬B。前两个子句归结出 BB 再与 ¬B 归结出空子句证明完成。考场上写出这条推演链就能拿分不需要写完整证明过程。3.3 不确定性推理CF 模型与贝叶斯网络现实问题里规则往往不是绝对的所以课程引入了可信度和概率。可信度方法用 CF(H,E) 表示证据 E 对假设 H 的支持程度取值在 [-1, 1]。多条规则组合时要按规则合并公式计算考试重点是会套公式。贝叶斯公式则是从后验概率角度做推理P(H|E) P(E|H) * P(H) / P(E)贝叶斯网络把多个变量之间的依赖关系画成有向无环图每个节点附一张条件概率表。导论课不要求手动推理复杂网络但必须能说出两个概念条件独立可以简化联合概率计算网络结构不能有环否则因果依赖会矛盾。常见计算题是“已知患病率、检测准确率、误报率求检测阳性时真实患病概率”。这类题的坑是漏算“没患病但误报”的概率分母必须是 P(E) 的全概率展开。4. 机器学习基础监督、无监督与强化学习概念辨析4.1 学习框架与损失函数机器学习章节不需要你手推复杂公式但必须能把概念放进统一的框架里。一组带标签的样本构成训练集模型学习的是输入到输出的映射损失函数衡量预测值和真实值的差距训练就是让这个差距不断变小。导论课最常考的是给定场景判断学习类型垃圾邮件分类是监督学习用户分群是无监督学习下棋智能体是强化学习。类型训练信号典型任务例子监督学习标签分类、回归房价预测、图片分类无监督学习无标签聚类、降维用户画像、特征压缩强化学习奖励信号序贯决策游戏、机器人控制损失函数是这里的边界。回归常配均方误差分类常配交叉熵。均方误差对离群点敏感交叉熵配合 softmax 输出能更好表达类别概率。很多同学会把“学习”理解成模型上线后还会自己进化其实训练是离线过程推理阶段参数已经固定强化学习里的“在线更新”是另一个框架。4.2 决策树与信息增益决策树是入门必讲的监督学习模型。核心问题是每步选哪个属性划分数据导论课用信息增益来选。信息增益 划分前的熵 - 划分后的加权熵。熵越低数据越“纯”。计算熵的代码很短但细节容易错import math def entropy(labels): total len(labels) if total 0: return 0.0 counts {} for label in labels: counts[label] counts.get(label, 0) 1 result 0.0 for count in counts.values(): p count / total result - p * math.log2(p) return result这里要跳过 p0 的情况因为 log2(0) 没有定义结果单位是“比特”。最大熵出现在各类别数量完全相等时最小熵为 0说明样本已经是单一类别。信息增益偏好取值较多的属性比如“学号”这个属性每个样本一个值信息增益最大但不能泛化。ID3 用信息增益C4.5 用信息增益率CART 用基尼指数这个演进路线是常考填空题。4.3 贝叶斯分类器与 KNN朴素贝叶斯分类器假设特征之间相互独立然后计算后验概率取最大类别。导论课考试漏洞通常在“独立性假设不成立会怎样”模型会把相关特征的可信度重复放大导致分类结果过度自信。解决办法之一是拉普拉斯平滑给每个类别的特征计数加一个小常数避免某个概率为 0 导致整体乘积为 0。KNN 算法不训练而是保存所有训练样本预测时找出距离最近的 k 个样本投票。一个最小实现帮助理解def knn_predict(x, X_train, y_train, k): dists [(distance(x, x_i), label) for x_i, label in zip(X_train, y_train)] dists.sort(keylambda item: item[0]) neighbors [label for _, label in dists[:k]] return max(set(neighbors), keyneighbors.count)distance常用欧氏距离如果特征量纲差别大必须先归一化否则距离会被数值大的特征支配。k 取 1 时决策边界很复杂容易过拟合k 取太大又会被多数类淹没。考试填空题经常问“KNN 为什么适合小数据集”——因为它不需要显式训练但预测时要比较全部样本成本高。5. 从神经网络到深度学习导论课的后期重点5.1 感知机与 BP 反向传播感知机是最简单的神经网络模型输出是输入和权重的线性组合再过符号函数。它能解决线性可分问题但解决不了异或问题。导论课经常用这个案例引出“为什么要引入隐藏层和非线性激活函数”。加了隐藏层后模型不再是线性分类器但权重学习需要反向传播。BP 反向传播的本质是链式法则把损失函数对最终输出的梯度逐层传回每一层权重。手工推导虽然繁琐但理解的核心是“误差从输出往输入流动”。下面是一个标量二分类网络的单步更新过程突出每一步梯度的来源import math def sigmoid(z): return 1.0 / (1.0 math.exp(-z)) def tanh(z): return math.tanh(z) x, y 0.5, 1.0 w1, b1, w2, b2, lr 0.1, 0.0, 0.2, 0.0, 0.1 # 前向计算 z1 w1 * x b1 a1 tanh(z1) # 隐藏层输出 z2 w2 * a1 b2 pred sigmoid(z2) # 最终预测 # 反向输出层先算再传给隐藏层 d_loss_d_pred -(y - pred) / (pred * (1 - pred)) d_pred_d_z2 pred * (1 - pred) grad_b2 d_loss_d_pred * d_pred_d_z2 # 实际等于 pred - y grad_w2 grad_b2 * a1 d_a1 grad_b2 * w2 d_z1 d_a1 * (1 - a1 ** 2) # tanh 导数 grad_b1 d_z1 grad_w1 grad_b1 * x w1 - lr * grad_w1 b1 - lr * grad_b1 w2 - lr * grad_w2 b2 - lr * grad_b2这个例子里sigmoid 和交叉熵组合后输出层梯度会简化成pred - y即预测与真实值的差。这个简化在深度学习框架里到处可见也是面试常问的推导点。导论课不要求你背完整链式法则但必须知道“反向传播是求梯度的方法梯度下降是用梯度更新参数的方法”两者不能划等号。5.2 CNN 与 RNN卷积神经网络和循环网络CNN 适合图像等网格结构数据。核心是卷积核在输入上滑动局部连接、参数共享。卷积层输出尺寸有固定公式考试常常直接给输入尺寸 32×32、卷积核 3×3、步长 1、填充 0让你算输出是 30×30。公式为output_size (W - F 2P) / S 1其中 W 是输入尺寸F 是卷积核尺寸P 是填充S 是步长。池化层用来降低分辨率常见最大池化和平均池化它没有可学习参数所以不会被梯度更新。RNN 适合序列数据比如文本和语音。它在每个时间步共享一组权重隐藏状态把前面的信息往后传。理论上是能记忆长期信息实践里会遇到梯度消失也就是前面时间步的权重几乎学不到更新所以有了 LSTM 和 GRU。导论课最爱考“为什么 RNN 不用来处理图像”答“它按顺序建模无法有效利用二维空间的局部相关性和位置不变性”即可。5.3 Transformer 与 NLP、CV 的应用导论课后期会提一嘴 Transformer核心是自注意力机制。输入序列经过矩阵映射得到 Q、K、V 三个向量注意力权重由 Q 与 K 的点积经过 softmax 得到再用这个权重加权 V。这个结构能直接建模任意两个位置之间的依赖比 RNN 更适合并行计算。Transformer 最初用在机器翻译后来在 NLP 领域催生大规模预训练模型视觉方向则出现了把图片切成 patch 输入 Transformer 的思路。导论课不要求推公式但要能回答“为什么说 Transformer 解决了 RNN 长距离依赖和并行性不足的问题”。另外还要知道注意力权重计算里面为什么要除以一个缩放因子通常解释是防止点积数值过大导致 softmax 梯度过小。6. 概念复习避坑指南5 个最容易丢分的理解误区6.1 误区一把“学习”和“训练”混为一谈现象考试判断题写“机器学习模型在上线后遇到新数据会自动更新参数”很多同学判断为正确。原因日常说话里经常说“模型在持续学习”但导论课严格区分训练和推理两个阶段。训练是离线过程模型参数在这里更新推理时参数固定新数据只会被预测不会影响模型。解决只要题目里没有明确写“在线学习”或“强化学习”默认学习都是离线训练。6.2 误区二忽略 A* 的可采纳性条件现象有人把任何用了启发函数 h 的搜索都叫 A*甚至觉得 h 越大搜索越快所以可以随便取。原因A* 有明确定义h 必须不大于真实代价否则不能保证第一次目标出队时是最优解。解决做题时先检查 h 是否满足可采纳性即便 h 很粗糙只要不超过真实代价A* 就能保证最优只是扩展节点多一些。6.3 误区三混淆知识表示与知识存储现象简答题问“知识表示有哪些方法”有人回答“数据库、文件、Excel 表格”。原因把“用什么容器保存知识”和“用什么样的结构形式化描述知识”混在一起。产生式、语义网络、框架都是表示方式重点在于它们能参与推理而数据库只是存储介质不能直接表达规则。解决看到“表示”两个字往“符号、规则、语义结构”方向想而不是“存哪里”。6.4 误区四把 BP 反向传播当成梯度下降现象填空题问“神经网络如何学习”有人直接写“用 BP 算法增加权重”。原因BP 和梯度下降经常一起出现但一个是梯度计算方式一个是参数更新策略。解决严谨表达是“通过反向传播计算损失对各权重的梯度再用梯度下降更新权重”。就算导论课考试只要求简述也要把这个顺序写完整。6.5 误区五把过拟合当成普通测试错误现象看到训练集准确率很高、测试集准确率很低就说“模型测试时算错了”。原因没有抓住过拟合的定义——模型把训练数据里的噪声也记住了泛化能力变差。解决看到“训练好、测试差”就答过拟合看到“训练差、测试也差”是欠拟合。缓解过拟合的常见手段是正则化、早停、数据增强、增加更多训练数据这些名词也是高频考点。7. 最后用“概念 → 关系 → 应用”三步法完成考前自查临考前不用再抄一遍定义我习惯把每个核心概念过三个问题这个概念解决的是什么问题它和相邻概念有什么区别在哪里会用到它用这个方法可以把散装名词装进一张关系网。以“过拟合”为例它能解决的问题是“模型泛化能力差”它和“欠拟合”对比一个是对噪声敏感一个是模型容量不够它应用在训练策略选择上对应正则化、早停。再比如“A* 算法”它解决的是带启发信息的最优路径搜索它和 BFS 的区别在于用 f 函数排序且要求 h 可采纳它落地的场景是地图导航、游戏寻路。能把这个过程写在纸上说明概念真的串起来了。我当年的复习习惯是打印一份概念清单然后在每章空白处画箭头正向推理指向产生式系统产生式系统又和专家系统关联朴素贝叶斯指向条件独立条件独立又出现在贝叶斯网络里。画完三张 A4 纸很多以前背完就忘的术语突然能自然说出边界。这个方法也适合开卷考试因为你不需要翻整本教材你心里已经有一张概念地图每道题都能快速定位到对应章节。如果你现在离考试还有几天不要再去追求背下每一个公式先把这份概念地图画出来。希望帮到你。本文还有配套的精品资源点击获取