这学期跟了某高校在线上课程平台开的《高级人工智能原理与技术》前五章的课后题我基本都刷了一遍。说句实话这门课被标成“高级”是有道理的——前半段看起来像在复习本科的搜索和机器学习但题目一上手全是推导、手算、概念辨析和设计题光靠背概念根本扛不住。我花了两周时间把1-5章的习题整理成了这份笔记覆盖每章的考点地图、典型计算题的手算过程、易错点以及我自己踩过的一些坑。如果你正在跟这门课或者准备补这部分基础这份笔记可以直接当复习提纲来用。先对齐一下内容范围。不同学校的章节划分有差异我这里按某高校《高级人工智能原理与技术》前五章来写第1章人工智能概述与智能体第2章搜索策略第3章经典机器学习基础第4章神经网络与深度学习基础第5章强化学习基础。后面我会把每一章最常见的题目类型拆开讲计算题尽量给出完整的手算流程。你拿到自己的教学大纲后对照着看就知道重点落在哪里了。1. 先摸清1-5章的“考点地图”再刷题1.1 课程框架从智能体、搜索一路走到强化学习很多同学一上来就陷入“背概念”的循环我觉得这是这门课最容易踩的坑。前五章其实是一条完整的逻辑链第1章先建立“智能体Agent在环境中感知-决策-行动”的框架第2章解决的是“已知规则和地图怎么找到一条最优路径”典型代表是A*搜索和博弈树第3章进入机器学习解决的是“没有明确规则但从历史数据里学习规律”的问题第4章用神经网络把“手工特征工程”变成“自动学特征”第5章则更进一步研究智能体怎么在动态环境里靠奖励信号学会策略。这个顺序不是随便排的。搜索是符号主义时代最经典的做法问题有明确的规则只是在解空间里费时间机器学习是数据驱动的方法靠统计规律做预测强化学习又回到“智能体与环境交互”的思路但数据不是一次性给全的而是边试错边学。理解这条线之后你会发现自己做课后题时更容易判断“出题人到底想考哪个层面”。1.2 一张考点地图看清题目优先级我刷题前先做了一件事把每一章的常考题型列成表格然后按频率和难度标注优先级。这份表是我自己的版本你可以直接复制后按课程实际内容微调章节核心概念高频题型优先级第1章智能体、图灵测试、PEAS描述名词解释、简答高第2章盲目搜索、A*、启发式、博弈树手算扩展顺序、性质判断高第3章决策树、信息增益、过拟合、模型评估手算、概念辨析高第4章BP反向传播、损失函数、优化器手算一轮更新、简述原理高第5章MDP、Q-learning、时序差分手算Q值更新、简答中高有了这张表我刷题的顺序就变成了“高频题优先”。比如第2章的A*手算几乎每次作业都有那就必须先练熟扩展顺序和可采纳性第5章如果课程只讲了概念那课后题以简答为主不必死磕复杂策略梯度推导。按题型分配时间比从头到尾平摊时间高效太多。2. 第1-3章习题搜索和机器学习的手算套路2.1 第1章概念题定义、机制、边界三段式回答第1章的课后题大多是名词解释和简答最常见的是“什么是智能体”“图灵测试是什么”“用PEAS描述一个智能体”。这类题看着简单但很多人丢分是因为只写了一句结论没有展开。我后来总结了一个三段式回答模板先给定义再讲机制或组成最后补一个边界条件或例子。举个例子问“什么是图灵测试”。标准答法可以写成图灵测试是衡量机器是否具备智能的一种实验方法测试者通过对话无法区分对方是机器还是人时就认为机器通过了测试。然后补充机制测试中包括人类询问者和被测试的机器隔开两者防止身份泄露。最后加上边界图灵测试存在争议比如它只考察行为层面的表现不涉及机器是否真正“理解”语义。这样答阅卷时能踩中的得分点明显比一句话答案多。PEAS描述题也常考。以扫地机器人为例PPerformance是清扫覆盖率和干净程度EEnvironment是室内地面环境可能有桌椅、电线AActuators是轮子、吸尘开关SSensors是碰撞传感器、灰尘传感器、电量计。关键是不要写空泛的“环境复杂”“传感器很多”要用课程里那几个标准维度对应具体实例。2.2 第2章 A*搜索一张表搞定扩展顺序A*是第2章的绝对核心课后计算题几乎必考。这类题要求你写出节点的扩展顺序并且判断启发式函数是否可采纳。最容易错的地方就是“f值相同的时候该扩展谁”以及“发现更小f值时怎么处理”。我拿一个自己改写的简化例子演示。假设从起点S出发目标G中间有A、B两个中间节点。边代价S到A为1S到B为2A到G为3B到G为1A到B为1。启发式h值h(S)3h(A)2h(B)1h(G)0。计算f值时f(S)3f(A)123f(B)213f(G)按路径S-A-G是1304按路径S-B-G是2103。扩展过程用表格记录更清晰步骤OPEN表CLOSED表扩展节点说明1S(3)空S初始节点2A(3), B(3)SA扩展S后加入A、B同f值按字母序先选A3B(3), G(4)S, AB从A扩展出Gf值为44G(3)S, A, BG从B扩展出Gf值为3小于原有4更新父指针5空S, A, B, G结束得到路径S-B-G代价3这个例子同时展示了两个考点一是A*用fgh选择扩展节点二是当发现更优路径时要对OPEN表里的旧节点做更新。另外要注意判断启发式是否可采纳时要求h(n)不超过从n到目标的最小实际代价。我习惯在答题时先写出h(S)3、实际最短代价也是3说明h(S)满足条件再逐个检查其他节点。2.3 第3章决策树信息增益计算别漏掉样本加权第3章最常见的计算题是决策树属性选择也就是算信息增益。很多人算第一个子集的熵没有问题但最后忘了把每个子集的熵按样本占比加权导致结果偏大。我构造一个6样本的小数据集来说明。样本按“天气”和“湿度”两个特征决策“是否出游”样本天气湿度出游1晴高否2晴中是3阴高是4阴中是5雨高否6雨中否总样本6个其中“是”3个、“否”3个所以总熵H(D)1。先按“天气”划分晴的2个样本是1正1负熵为1阴的2个样本全是“是”熵为0雨的2个样本全是“否”熵为0。条件熵等于(2/6)×1(2/6)×0(2/6)×01/3信息增益1-1/32/3。再看“湿度”高的3个样本里1正2负熵约0.918中的3个样本里2正1负熵也是约0.918条件熵约0.918信息增益约0.082。所以第一层应该选“天气”。手算的时候我建议把每个子集的样本数、正负数量、熵都写在草稿上这样即使最终结果算错中间步骤还能拿分阅卷也更友好。3. 第4-5章习题神经网络和强化学习的计算题拆解3.1 第4章反向传播手算一轮理清梯度怎么走第4章的一道经典课后题是“给定一个小网络手算一轮反向传播”。这种题最考验对链式法则的掌握。我练过的一道简化题很适合拿来演示输入层2个节点、隐藏层2个节点、输出层1个节点激活函数都用sigmoid损失用E0.5(t-out)^2。设定初始参数输入x(0.5,0.6)目标t0.7学习率η0.1。隐藏层权重w110.1、w120.2、w210.3、w220.4偏差都为0输出层权重v10.5、v20.6。前向传播先算隐藏层净输入net_h10.5×0.10.6×0.20.17h1sigmoid(0.17)≈0.5424net_h20.5×0.30.6×0.40.39h2sigmoid(0.39)≈0.5963。输出层net_o0.5424×0.50.5963×0.6≈0.6290outsigmoid(0.6290)≈0.6522。反向传播时输出层误差项δo(t-out)×out×(1-out)(0.7-0.6522)×0.6522×0.3478≈0.0108。更新输出权重Δv1η×δo×h1≈0.1×0.0108×0.5424≈0.00059所以v1更新为0.50059Δv2≈0.00065v2更新为0.60065。隐藏层误差项要乘激活导数δh1h1×(1-h1)×v1×δo≈0.5424×0.4576×0.5×0.0108≈0.00134更新w11时用Δw11η×δh1×x1≈0.1×0.00134×0.5≈0.000067。按同样方法更新其他权重。这种题常见的错误有三个一是忘记sigmoid导数out×(1-out)二是隐藏层误差计算时没有乘上对应连接权重三是漏掉学习率。我刷题时会把公式按“输出层误差→隐藏层误差→权重增量”的顺序列一遍再代入数字低级错误会少很多。3.2 第5章Q-learning看清TD target是rγmaxQ如果第5章讲强化学习最简单又有区分度的课后题就是Q-learning的数值更新。题目通常会给你一个小的状态-动作表让你做几次更新。关键要记住时序差分目标targetrγ×maxQ(s,a)学习率η只是决定“向这个目标靠近多少”。我设计一个两状态两动作的小环境状态S1、S2动作a1、a2任意动作执行后都转移到另一个状态。折扣因子γ0.9学习率α0.5初始Q表全为0。第一步从S1选择a1转移到S2奖励r1S2当前最大Q为0所以Q(S1,a1)00.5×(10.9×0-0)0.5。第二步从S2选择a1转移到S1奖励r0此时S1最大Q已经是0.5所以Q(S2,a1)00.5×(00.9×0.5-0)0.225。第三步从S1选择a2转移到S2奖励r1S2最大Q是0.225所以Q(S1,a2)00.5×(10.9×0.225-0)0.60125。每更新一步都要用“当前Q表里最新的最大值”而不是旧的。这里最坑的做法是直接把r当成target结果写成Qr完全忽略后续状态的价值。我见过很多同学在作业里犯这个错。简单说如果只有一步即时奖励Q可以等于r但强化学习的场景通常是多步决策后面还有折扣的未来回报所以必须带上γ×maxQ这一项。4. 把刷题效率翻倍的三个通用方法4.1 概念题用“定义-原理-例子/边界”回答第1、3、5章里有大量简答题比如“什么是过拟合”“简述偏差方差分解”“解释MDP的马尔可夫性质”。我发现用固定结构回答既不容易漏点也方便自己记忆。这个结构就是“定义-原理-例子/边界”。以“过拟合”为例定义是模型在训练集上误差很低、在测试集上误差偏高原理是模型容量过大或训练时间过长把训练数据里的噪声也学进去了例子是决策树不剪枝时深度过大或者神经网络迭代次数过多边界是用正则化、早停、交叉验证等手段缓解过拟合。这种结构答出来基本就是一个完整的小议论文得分点覆盖得比较全。有些同学担心这样答会不会太啰嗦。实际上简答题的答题空间通常给得比较大阅卷是按点给分宁可多写一些相关表达也不要只写一行结论。当然“相关”很重要不要为了凑字数把无关内容堆上去。4.2 公式卡片一个公式配一道例题前五章需要的公式不算多但每个都要会用。我整理公式卡片时坚持一个原则一个公式必须配一道自己在课后题里见过的小题。比如搜索部分的卡片写“f(n)g(n)h(n)h(n)≤h*(n)”旁边就配A*手算例题决策树卡片写“H(D)-Σp_k log2 p_k”旁边就配信息增益计算Q-learning卡片写“Q(s,a)←Q(s,a)α(rγmaxQ(s,a)-Q(s,a))”旁边就配两状态更新例题。这样做的原因是公式容易背但“什么场景用什么公式”才是做题的关键。如果只是把公式抄一遍遇到稍微变形的题目还是不会。我自己的体验是用例题反推公式的使用条件比单纯背诵牢固得多。4.3 错题本要记“错因”不是抄题目很多人的错题本最后变成了“抄题本”一本写完仍然不知道错在哪。我后来改成只记三列题号、错因标签、正确解法关键词。比如某道A*题我因为在OPEN表里没处理重复节点而算错就记“OPEN去重没做先查表里是否已有同节点再比较f值”。某道反向传播题我因为漏乘sigmoid导数而失分就记“误差反向传播要乘σ输出层是o(1-o)隐藏层在此基础上再乘v”。每周翻一次错题本不需要把原题重做只看错因标签和正确解法关键词回忆“这类题该怎么下手”。这个方法帮我节省了大量时间而且比反复抄题更有效。错题本的目标是识别自己的薄弱题型不是做一本精美的手账。5. 常见错误与线上自学的避坑实录5.1 习题里的共性易错点速查表我把自己和一起刷题的同学常犯的错误整理成了一张表刷完一章看一眼能避开很多低级失分易错场景典型错误表现正确处理A*计算把h(n)设得太大导致找不到最短路径h(n)必须小于等于真实剩余代价信息增益子集熵没有按样本占比加权条件熵Σ(反向传播隐藏层误差忘记乘激活函数导数δ_hh(1-h)×Σ(w×δ)Q-learning目标值直接写r忽略未来回报targetrγ×maxQ(s,a)概念简答只写结论不写原因用定义原理例子/边界作答最后一条其实最容易被低估。课后的简答题很多同学觉得“我理解了”但真写出来只有一句话分数自然不高。哪怕题目没要求解释我也会顺手补两句“因为……所以……”把因果关系写清楚。阅卷老师看到的是逻辑链不是孤零零的结论。5.2 线上自学视频、课后题、讨论区怎么配合前五章如果只靠看视频很容易产生“我都听懂了”的错觉。因为计算题老师演示的时候每一步都顺理成章自己动手就卡住。我的做法是每学完一章的当天或第二天就做课后题不隔太久。做不出也没关系带着问题回看视频中对应的计算演示效果比反复刷新课好很多。线上课程的讨论区是个被很多同学忽略的资源里面常有人整理答题模板或者分享易错点甚至有同学把某道手算题的完整过程拍照发出来。遇到题目卡壳先搜讨论区关键词再自己推导一遍不要直接看答案。另外可以找一个一起刷课的同学两个人做同一道计算题后互相对中间步骤很多自己看不出来的低级错误对方一眼就能发现。5.3 最后说一个我自己的小习惯刷完这五章的课后题我最大的感受是手算题的草稿一定要分步骤写清楚“我现在在算什么”。A的OPEN表、信息增益的每个子集熵、反向传播的前向输出、Q-learning的TD target这些中间量很容易混在一起。我第一次刷A题时也卡了很久不是不会算而是草稿纸上一团乱最后自己都不知道哪个f值对应哪个节点。后来每次动笔前先写一行“当前计算目标”再列式子正确率明显提升。如果你现在正被某道手算题卡住不妨试一下这个方法——把公式写在数字前面再代入计算比盯着题目发呆有效得多。