← 全部课程
COMP5511

Artificial Intelligence Concepts

期末 70% · 期中 8% · 个人 Project 17%。3 小时笔试。

逐讲

L01 第 1 周 · 9-02

L01 Introduction to AI:三个同心圆,最外圈叫 AI,最里面才是深度学习

划清 AI、机器学习、深度学习的边界,再把机器学习切成三类。

T01 习题课 第 1 周 · 9-02

T01 Tutorial 1:论文怎么找、怎么读、怎么从别人的缺口里长出自己的题

这节课不讲知识点讲方法,兑现场景是期末 project——当 checklist 用,选题时回来照着走一遍。

L02 第 2 周 · 9-09

L02 Search Techniques:在陌生大楼里找出口,从瞎推门到看着指南针走

把问题写成从起点到终点的找路,再比五种找法的完备性、最优性、时间和空间。

T02 习题课 第 2 周 · 9-09

T02 Tutorial 2:BFS 与 DFS 手算,把访问顺序和解路径分开

Open/Close 怎么填,孩子按什么顺序取,以及去掉查重之后 DFS 为什么停不下来。

L03a 第 3 周 · 9-16

L03a Uncertainty:灵敏度 99% 的检验,阳性里只有 2% 真有病

把不确定变成可计算:条件概率、贝叶斯公式,以及用图把联合分布拆小的贝叶斯信念网络。

T03 习题课 第 3 周 · 9-16

T03 Tutorial 3:四份 PyTorch notebook,一套训练骨架

张量、autograd、nn.Module、训练循环——先把这四件事跑通,assignment 和 project 才动得了。

L03b 第 3 周 · 9-16

L03b Knowledge Representation:岛民说「我是骗子」,这句话在逻辑上不可能被说出来

把知识写成符号:命题逻辑的语法、语义,以及前向链接、后向链接、归结三种证明方法。

期末复习怎么用

期末 3 小时笔试占 70%,课件没注明开卷与否,按闭卷准备更稳。前半的搜索、逻辑、贝叶斯网络有标准解法、判分客观,刷题的边际收益最高;深度学习那几讲更可能考概念辨析,复习方式不同。

  1. 1 按讲把页尾「必背」过一遍,卡住的条目回到那一讲的「概念卡」重看,别停在「看着眼熟」。
  2. 2 每讲的「完整例题」跟着算一遍,然后合上页面做「变式题」,对不上判分点就回头补那一条。
  3. 3 最后扫「课件里的坑」:标了 [课件有误] 的按笔记里的更正记,标了 [口径差异] 的按课件写。

要能动笔算的题型

这几类没有思考余量,练到不看提示就能做。

A* 展开顺序
给带权图和启发式表,写出展开顺序与每步 f 值
αβ 剪枝
给 minimax 树,标出被剪掉的分支和根的值
贝叶斯网络
给网络结构和条件概率表,算联合概率或后验概率
信息增益
给数据表,算按某属性划分的增益,选出根节点
k-means
给点集和初始中心,手算两轮迭代
网络参数量
全连接层、卷积层各有多少参数

复习的产物:自己填的表

填表本身就是复习,抄一份现成的没有用。

  • 搜索算法对照表:评价函数、完备性、最优性、时间与空间复杂度
  • 不确定性方法对照表:核心机制、成立假设、主要缺陷
  • 机器学习范式对照表:反馈形式、典型任务、代表算法
  • 符号主义 vs 连接主义:知识来源、可解释性、主要瓶颈

累计考点表

各讲页尾「必背」的汇总,随讲次增长。复习时按讲回看,点讲次跳到那一页。

L01 · L01 Introduction to AI:三个同心圆,最外圈叫 AI,最里面才是深度学习
  1. AI ⊃ 机器学习 ⊃ 深度学习;AI 定义句 the science and engineering of making intelligent machines 出自 John McCarthy,学科诞生于 1956 年 Dartmouth 会议
  2. 两条路线:专家系统手工编码规则,可解释但卡在 knowledge acquisition bottleneck;机器学习从数据学规则,性能强但难解释
  3. Mitchell 1998 的 `<T, P, E>`:程序在任务 T 上由指标 P 度量的表现随经验 E 提升;Samuel 1959 强调 without being explicitly programmed
  4. 深度学习 = 多层非线性信息处理,「深」指隐藏层的数量,核心优势是自动学习层级特征
  5. 大数据 4V:Volume / Velocity / Variety / Veracity,最容易漏掉的是 Veracity
  6. 机器学习三分类的判据是标签的有无与来源:有标准答案是监督,只有数据是无监督,环境给奖励是强化
  7. 监督学习按输出再分:回归输出数值常用 MSE,分类预测类别常用交叉熵;通用骨架是模型 → 损失函数 → 优化
  8. 历史三锚点:1950 图灵测试 / 1956 达特茅斯会议 / 1988–93 AI 寒冬
T01 · T01 Tutorial 1:论文怎么找、怎么读、怎么从别人的缺口里长出自己的题
  1. 引用先看相关性与证据质量,再核发表和评审状态;预印本未必评审,workshop 是否评审要查具体征稿规则,排名和引用量都不是质量保证
  2. 三个检索工具分工不同:Scholar 搜得广并能顺着 Cited by 往后追,DBLP 出处最准且直接给 BibTeX,学校图书馆负责下到正版全文
  3. 论文八个部分里 Introduction 信息密度最高,其中「现在还缺什么」那一句直接就是选题线索
  4. 读 Method 要读 why 不只读 what:每个设计选择在解决什么问题,比模型有几层更值得写进笔记
  5. 看实验盯两处:baseline 是不是选得太弱太旧,以及有没有做消融实验说明提升来自哪个部件
  6. 四遍读法的本质是给放弃留出口:第一遍只读标题摘要图,用来判断要不要继续;第三、四遍明确允许跳过数学和看不懂的部分
  7. 读完记录「这个我自己能用在哪」或「为什么不适用」;排除不合适的方法同样是有效收获
  8. 找题两步从宽到窄:先读近期综述拿 future directions,再读子领域顶会论文找 research gaps;目标是在别人的 limitations 上前进一步,不是找无人区
L02 · L02 Search Techniques:在陌生大楼里找出口,从瞎推门到看着指南针走
  1. 搜索问题五要素:当前状态 / 目标状态 / 动作 / 代价 / 解;解是一条路径,不是一个状态
  2. 评价一个搜索算法只看四条:完备性、最优性、时间、空间
  3. 本课件符号:d = 搜索树深度,b = 分支因子,m = 最浅解的深度,且 d 可以远大于 m
  4. Open 是待展开、Close 是已展开;Open 用队列(FIFO)就是 BFS,用栈(LIFO)就是 DFS,两个算法只差这一处
  5. 有限分支、有有限深解时 BFS 完备且找到边数最少的路径,时间与空间同为 O(b^(m+1));不保存全局 Close 表的树式 DFS 空间为 O(d·b),但不完备、不最优,最坏时间 O(b^d)
  6. 爬山法只看一步、只留最好的一个孩子、不记历史,三种典型失败地形是局部最大、高原、山脊
  7. f(n) = g(n) + h(n):g 是从起点已付出的实际代价,h 是到目标的估计
  8. h(n) ≤ h\*(n) 不高估是 A\* 的定义条件,按课件定理的前提 A\* 能保证最优;图搜索还需一致启发式或允许重新打开节点;手算时碰到目标不能立刻停,要等它被选出来展开
T02 · T02 Tutorial 2:BFS 与 DFS 手算,把访问顺序和解路径分开
  1. 同一棵树上 BFS 与 DFS 的访问顺序完全不同:BFS 兄弟先于孩子,DFS 孩子先于兄弟
  2. 展开一个节点时,指向已在 Open 或 Close 里的节点的那些边不重复加入;漏掉这一步 Open 会长出重复项,后面整张表全乱
  3. 访问顺序与解路径是两回事:访问顺序里的节点未必在解路径上,答题时两样都要写清楚
  4. DFS 的结果取决于孩子的排列顺序,做题前先确认题目要求升序还是降序;用栈实现时,想先访问谁就让谁最后入栈
  5. 同一张图上 DFS 比 BFS 少展开几个节点,只说明目标恰好在先选的那条分支上,推不出 DFS 更快
  6. DFS 靠栈里保留的、路径上每个节点尚未展开的兄弟回溯,这是它空间复杂度 O(d·b) 而非 O(d) 的来源
  7. 有环的图上去掉重复状态检查,DFS 会沿着环无限循环、永远到不了目标;有限有环图需要重复状态检查保证终止;树或无环图不必依赖 Close 表
  8. BFS 逐层推进,不会顺着环一路往下钻,所以它同样需要查重,但有限分支且有有限深解时仍可找到解,无解时也可能不终止
L03a · L03a Uncertainty:灵敏度 99% 的检验,阳性里只有 2% 真有病
  1. 概率的真正定义是三条公理:0 ≤ P(E) ≤ 1、P(S) = 1、互斥事件可加;可加性只对互斥成立
  2. 课件用 EF 表示交集(同时发生),看到几个大写字母连在一起一律读成「同时」
  3. P(E|F) = P(EF)/P(F),直观是把样本空间从 S 缩小到 F
  4. 独立是 P(EF) = P(E)P(F),互斥是 P(EF) = 0;两个概率都不为零的事件,互斥就一定不独立
  5. 贝叶斯公式 P(F|E) = P(E|F)P(F) / [P(E|F)P(F) + P(E|F^c)P(F^c)],分母来自全概率公式;P(F) 是先验,P(F|E) 是后验
  6. 疾病检测题答案 ≈ 0.0194——先验极小时假阳性的绝对数量压倒真阳性,忽略这种基础率影响才叫 base rate fallacy
  7. 条件独立 P(AB|C) = P(A|C)P(B|C) 可推出 P(A|BC) = P(A|C);它和独立互不蕴含
  8. 孤立三节点图中,串行和发散在中间节点已知时阻断;汇聚在自身或后代被观测时可打开(explaining away)
T03 · T03 Tutorial 3:四份 PyTorch notebook,一套训练骨架
  1. 训练循环的五步顺序是 zero_grad → 前向 → 算损失 → backward → step,四份 notebook 的训练函数全是它的变体
  2. 梯度是累加进 .grad 的不是覆盖的,不清零第二个 batch 的梯度会叠在第一个上;手写原地参数更新用 torch.no_grad();普通 optimizer.step() 已处理这一点
  3. 无 padding、stride 为 1 时卷积输出边长等于输入边长减核边长加一,本例 2×2、stride=2 的池化边长减半;LeNet 里 16×5×5 = 400 要能自己推出来
  4. nn.Linear 的 weight 形状是 (out_features, in_features),与构造函数的参数顺序相反,手写线性回归写 w.t() 就是为了补这个转置
  5. CrossEntropyLoss 内部自带 LogSoftmax,网络最后一层应输出裸 logits;网络里已经有 LogSoftmax 就配 NLLLoss,推荐这两种配对,别把概率误当 logits
  6. 材料两例分别用 1e-6 和 1e-3;归一化有助于优化,但不能据不同模型断言学习率必提高千倍
  7. 循环层漏掉 batch_first=True 不会报错,模型会把时间维当成 batch 维处理,属于典型的不报错的错
  8. 自回归外推把预测值滚回输入窗口,误差逐步累积,长程结果是题目要求的输出长度而不是模型的有效预测能力
L03b · L03b Knowledge Representation:岛民说「我是骗子」,这句话在逻辑上不可能被说出来
  1. 一个逻辑系统 = 语法(结构)+ 语义(含义)+ 推理规则;只看符号形状的是语法,要代入真值判断的是语义
  2. 连接词优先级 ¬ > ∧ > ∨ > ⇒ > ⇔,恰好是它们在课件符号表里出现的顺序
  3. S1 ⇒ S2 在 S1 为假时为真(空真),且 S1 ⇒ S2 ≡ ¬S1 ∨ S2——这条等价是转 CNF 的关键
  4. 解释 = 给每个原子赋真值,n 个原子有 2ⁿ 个解释;模型 = 让句子为真的解释
  5. satisfiable ≥ 1 个模型,unsatisfiable 0 个,valid 全部 2ⁿ 个;Valid ⊂ Satisfiable,且 α 有效等价于 ¬α 不可满足
  6. Horn 子句的正文字不超过 1 个;本讲链接法用恰有 1 个正文字的 definite clause(事实或「合取 ⇒ 符号」)
  7. 前向链接是数据驱动、后向链接是目标驱动;命题 definite-clause KB 配合查重、缓存等实现可线性求解,朴素回溯不自动享有此界
  8. 归结用反证法:S = KB ∪ {¬Q} 全转 CNF 反复归结,推出空子句则 Q 成立;推不出新子句只说明 KB ⊭ Q,不代表 Q 为假