《人工智能现代方法(第4版)》 第10章 知识表示 学习笔记
前面的章节展示了具有知识库的智能体如何进行推断,以便能采取正确的行动。本章我们回答要把什么样的内容放进这种智能体的知识库中,也就是如何表示关于世界的事实。
·
🎯 从“会算”到“懂理”:知识表示的终极挑战
第9章结尾留下的问题:
逻辑引擎很强大,但需要“喂”给它结构良好的知识。
现实世界的知识可不是:
1. 所有人都会死
2. 苏格拉底是人
3. 因此...
而是:
“那个穿红色卫衣、昨天在电梯里问我‘吃了没’的同事,
今天请假了,可能是感冒,
但上周三他也请假了,那天其实是去体检...”
本章核心任务:
如何把人类常识和专业领域知识,
组织成机器能理解、能推理的结构化形式?
这就是知识表示(Knowledge Representation,KR)—— AI的“基建工程”。
一、本体论工程:给万物“上户口”
🤔 什么是本体论(Ontology)?
不是哲学里“世界的本质”,而是:
“某个领域里,有哪些东西、它们怎么分类、有什么关系”
生活比喻:
- 图书馆分类法:文学→小说→武侠→金庸
- 生物分类:界门纲目科属种
- 电商商品分类:电子产品→手机→智能手机→品牌
🔧 构建本体论的四大任务
1. 定义核心概念(类别)
图书领域:书、作者、出版社、ISBN、章节...
医药领域:疾病、症状、药品、剂量、副作用...
2. 建立分类体系(继承关系)
动物
├── 哺乳动物
│ ├── 猫科
│ │ ├── 猫
│ │ └── 老虎
│ └── 犬科
└── 鸟类
继承的好处:
- 父类的属性自动传给子类
- “哺乳动物都喂奶” → 猫、老虎都自动继承这个属性
3. 定义关系网络
不仅仅是“属于”(is-a)关系:
- 部分关系(part-of):车轮是汽车的一部分
- 组成关系(made-of):桌子由木头制成
- 空间关系(in):书在书架上
- 时间关系(before):早饭在午饭前
- 因果关系(causes):淋雨导致感冒
4. 制定约束规则
- 一个人不能同时在两个地方(物理约束)
- 员工工资不能为负数(业务约束)
- 三角形内角和=180°(数学约束)
🏗️ 本体论工程实践指南
好的本体论像“城市规划”:
- 模块化:不同领域分开建(交通、医疗、教育)
- 可扩展:随时加新概念(新增“电动车充电桩”)
- 一致性:不能矛盾(“鱼类”不能同时是“哺乳动物”)
- 重用性:尽量用标准本体(如WordNet、Schema.org)
二、类别与对象:世界的“乐高积木”
🔍 核心问题:什么是“一个东西”?
桌子上有一杯水:
- 是一个“物体”(物理对象)
- 也是“物质”(水)
- 还能分成“杯子”和“水”两部分
📦 表示层次:从原子到结构
层次1:原子对象(独立个体)
对象:我的手机(iPhone13_张三)
属性:颜色=黑色,电量=78%,所有者=张三
特点:每个都是独一无二的实例
层次2:类别(类的概念)
类别:智能手机
属性:有屏幕,能安装APP,需要充电
成员:我的手机,你的手机,所有手机实例
层次3:物质(不可数名词的表示)
挑战:水、空气、沙子...没有天然“个体单位”
表示方法:
- 引入“量词”:一杯水,一立方米空气
- 用“物质+容器”:瓶中的水,房间里的空气
📏 量度:让AI“心中有数”
不仅要知道“有”,还要知道“有多少”:
- 尺寸:长20cm,宽10cm
- 重量:500g
- 温度:25℃
- 时间:持续3小时
关键:单位换算和一致性!
“房间面积20平方米” + “地板用了30块瓷砖”
→ 每块砖约0.67平方米 ✓
🧩 物理组成:整体与部分
复杂对象如何表示?
方法1:列举所有部分
汽车 = {引擎,轮胎×4,方向盘,座椅...}
方法2:结构化表示
type 汽车
parts: {
引擎: 1,
轮胎: 4,
方向盘: 1,
座椅: [驾驶员座椅, 乘客座椅...]
}
constraints: 轮胎数 >= 4
经典问题:忒修斯之船(AI版)
船A的木板被逐渐替换,所有木板换完后:
- 物理上:所有物质都是新的
- 功能上:还是“那条船”
- 法律上:登记号没变,所以是同一艘
AI怎么表示?
需要区分:
1. 物理实体(具体的物质集合)
2. 功能实体(实现特定功能的对象)
3. 法律实体(有身份标识的对象)
三、事件:当知识“动起来”
⏰ 时间表示:给世界加上时间轴
静态知识:桌子是木头做的
动态知识:张三昨天买了桌子,今天搬到办公室
挑战:
1. 时间点 vs 时间段
“会议在14:00开始”(点)
“会议持续了2小时”(段)
2. 相对时间
“早饭在午饭前”
“下雨后地变湿”
时间表示方法
方法1:时间戳(绝对时间)
事件(买桌子, 主体:张三, 时间:2023-10-01 10:00)
方法2:区间代数(Allen区间代数,13种关系)
before(A,B): A在B之前
meets(A,B): A刚结束B就开始
overlaps(A,B): A和B重叠
during(A,B): A在B期间发生
...
流和对象:变化中的恒常
“河流”既是:
- 物质:水分子不断流动更新
- 对象:我们仍然叫它“长江”
表示策略:
长江 {
type: 河流,
位置: 从青海到上海,
当前水量: 实时变化,
标识: 固定的地理标识
}
🎬 事件的结构化表示
一个事件包含:
1. 类型:吃早饭
2. 参与者:
- 施事者(Agent):张三
- 受事者(Patient):面包
- 工具(Instrument):刀叉
3. 时间:7:00-7:30
4. 地点:厨房
5. 结果:面包被吃完,张三饱了
形式化:
事件(e1,
类型: 吃,
施事者: 张三,
受事者: 面包,
时间: 区间(t1,t2),
地点: 厨房,
结果: 状态(张三, 饱, true)
)
四、精神对象与模态逻辑:AI的“内心世界”
🧠 表示“知道”、“相信”、“想要”
物理世界:桌子上有苹果
精神世界:张三相信桌子上有苹果
李四知道张三相信...
嵌套问题(俄罗斯套娃式):
我知道你以为我不知道你知道...
这在博弈、谈判、侦探推理中很常见
🔐 模态逻辑:给逻辑加上“模式”
普通逻辑:P是真的
模态逻辑:□P(必然真),◇P(可能真)
扩展到认知:
Believes(张三, P):张三相信P
Knows(李四, Believes(张三, P)):李四知道张三相信P
模态逻辑的种类
1. 认知逻辑(Epistemic Logic):关于“知道”
- 公理:如果知道P,那么P为真
- 公理:如果知道P→Q,且知道P,那么知道Q
2. 道义逻辑(Deontic Logic):关于“应该”
- Obligatory(P):应该做P
- Permitted(P):允许做P
- Forbidden(P):禁止做P
3. 时态逻辑(Temporal Logic):关于“时间”
- F(P):将来某个时刻P为真
- G(P):将来所有时刻P为真
- P(P):过去某个时刻P为真
4. 信念逻辑(Doxastic Logic):关于“相信”
- 比“知道”弱:相信的可能为假
可能世界语义学
“张三相信猪会飞”是什么意思?
模型:
- 现实世界:猪不会飞
- 但存在一些“可能世界”(在张三的信念里)
- 在这些世界里,猪会飞
- 张三相信的世界集包含这些世界
这样就能形式化表示“错误信念”
💡 实际应用场景
1. 安全协议验证:
“用户知道密码” → “系统相信用户知道密码”
2. 法律推理:
“当事人应当知道合同条款”
3. 游戏AI:
“我方知道敌方不知道我方的位置”
五、类别的推理系统:让知识“活”起来
🕸️ 语义网络:用“节点-边”画知识图
最早的知识表示方法(1960s)
像思维导图:
动物
│
├───有皮毛
│
哺乳动物
│
├───喂奶
│
├───猫科────猫───实例───小花
│ │
│ └───属性:颜色=橘色
│
└───犬科────狗
语义网络的核心关系
1. is-a(继承):猫 is-a 猫科动物
2. part-of(部分):轮子 part-of 汽车
3. has-property(属性):猫 has-property 可爱
4. member-of(成员):小花 member-of 猫
推理机制
1. 继承推理:
猫科动物→吃肉
猫 is-a 猫科动物
→ 猫吃肉(自动继承)
2. 传递推理:
轮子 part-of 汽车
汽车 part-of 车队
→ 轮子 part-of 车队
3. 交叉分类推理:
小花 is-a 猫
猫 is-a 宠物
宠物 has-owner 人类
→ 小花有主人(且是人类)
语义网络的问题
1. 歧义性:
“苹果”节点——是水果?还是公司?
2. 推理不可控:
可能推出荒谬结论:
尼克松 is-a 共和党人
共和党人 is-a 人
尼克松 is-a 人 ✓
但:
共和党人 is-a 保守派
保守派 is-a 右翼
→ 尼克松 is-a 右翼? (过于简化)
3. 缺乏形式语义:
不同系统解释不同
📐 描述逻辑:语义网络的“严谨版”
描述逻辑(Description Logic,DL):
- 有严格的数学定义
- 是语义网络的子集(但更规范)
- OWL(Web本体语言)的基础
描述逻辑的构建块
概念(类): Student, Teacher
角色(关系): teaches, enrolledIn
个体(实例): 张三, CS101课程
构造算子:
- ∩(交):Student ∩ Athlete(学生运动员)
- ∪(并):Male ∪ Female(男性或女性)
- ¬(非):¬Undergraduate(非本科生)
- ∃(存在):∃hasChild.Male(有儿子)
- ∀(全称):∀hasChild.Doctor(所有孩子都是医生)
例子:定义“好教授”
用描述逻辑:
GoodProfessor ≡ Professor ∩
(∀teaches.InterestingCourse) ∩
(∃teaches.PopularCourse) ∩
(≤3 teaches) ∩ // 最多教3门课
(∃researchArea.AI)
翻译:
好教授 = 是教授 且
教的每门课都有趣 且
至少教一门热门课 且
最多教3门课 且
研究领域包括AI
描述逻辑推理服务
1. 一致性检查:
“一个方的圆形” → 不一致!
2. 分类:
自动把实例归到最具体的类
张三:{教AI课,研究机器学习}
→ 系统推断:张三是“AI教授”
3. 子类推断:
定义:父亲 ≡ 男性 ∩ 有孩子
母亲 ≡ 女性 ∩ 有孩子
家长 ≡ 父亲 ∪ 母亲
系统自动推出:父亲 ⊆ 家长
母亲 ⊆ 家长
4. 实例检查:
张三:{男性,有孩子}
→ 张三是父亲? ✓
实际应用:医疗本体
SNOMED CT(医学术语系统):
- 11个层级,35万+概念
- 用描述逻辑定义:
糖尿病 ≡ 疾病 ∩
∃病因.血糖异常 ∩
∃影响.血管 ∩
...
推理:
病人P:有血糖异常,血管病变
→ 可能患有糖尿病(建议检查)
六、用缺省信息推理:当世界不“完美”
🤷 现实世界的特点
1. 信息不完整:
“鸟会飞”(但鸵鸟、企鹅不会)
2. 有例外:
“车停路边会被贴条”(但消防车例外)
3. 通常成立:
“大学生通常年轻”(但也有中年大学生)
🔧 传统逻辑的局限
传统逻辑:要么真,要么假
现实:通常真,可能有例外
用传统逻辑:
“鸟会飞”写成:∀x (Bird(x) → Flies(x))
企鹅是鸟,但不会飞 → 矛盾!
🧠 解决方案:非单调推理
1. 限定(Circumscription)
核心思想:最小化例外
“鸟通常都会飞,除非有相反证据”
形式化:
默认规则:Bird(x) ∧ ¬Abnormal(x) → Flies(x)
异常谓词:Abnormal(x) 尽可能少
当知道企鹅是鸟时:
需要显式声明:Penguin(x) → Abnormal(x)
2. 缺省逻辑(Default Logic)
提出者:Reiter(1980)
形式:A : B / C
读作:如果A已知,且B与当前知识一致,则默认C
例子:
鸟会飞:Bird(x) : Flies(x) / Flies(x)
企鹅例外:Penguin(x) : ¬Flies(x) / ¬Flies(x)
推理过程:
已知:Tweety是鸟
应用默认规则:Bird(Tweety)成立
Flies(Tweety)与已知不冲突
→ 推出:Tweety会飞
新增知识:Tweety是企鹅
应用例外规则:¬Flies(Tweety)
→ 撤回“会飞”结论
3. 真值维护系统(TMS)
像推理的“版本控制”
记录:
- 每个结论如何得来(依据)
- 当依据失效时,自动撤销结论
结构:
节点(陈述) + 理由(justification)
理由类型:
1. 支持理由:{A,B} → C
2. 条件理由:{A,¬B} → C
TMS工作流程:
初始状态:
节点1:鸟(Tweety) [输入]
节点2:企鹅(Tweety) [未知]
节点3:飞(Tweety) [理由:{节点1,默认规则}]
新增证据:
节点2变为真 [观察:Tweety是企鹅]
检查一致性:节点3的理由冲突!
撤销节点3
添加节点4:¬飞(Tweety) [理由:{节点2,例外规则}]
4. 实际应用场景
1. 法律推理:
“默认无罪,除非证明有罪”
2. 诊断系统:
“设备通常工作正常,除非有故障迹象”
3. 常识推理:
“鱼通常生活在水中”
(但知道是“飞鱼”时,调整预期)
七、知识表示的实际考量
📊 表示方法选择指南
| 需求场景 | 推荐表示 | 关键原因 |
|---|---|---|
| Web数据互联 | OWL(基于描述逻辑) | 标准,支持推理,适合语义网 |
| 快速原型 | 语义网络 | 直观,易可视化,开发快 |
| 医疗术语 | 描述逻辑 + 分类体系 | 严谨,支持自动分类 |
| 常识推理 | 缺省逻辑 + 框架 | 处理例外,接近人类思维 |
| 法律条款 | 道义逻辑 + 案例框架 | 表达“应然”,处理判例 |
| 时空推理 | 时态逻辑 + 空间本体 | 处理变化和位置关系 |
⚖️ 永恒的权衡
表达力 vs 计算效率:
- 一阶逻辑:表达力强,但推理难(可能不可判定)
- 描述逻辑:平衡较好,推理可判定
- 命题逻辑:简单高效,但表达力弱
简洁性 vs 显式性:
- 隐式知识:短小,但机器不懂“言外之意”
- 显式知识:冗长,但机器能直接使用
🌉 知识表示的边界
即使最好的知识表示系统:
1. 无法捕捉“言外之意”:
“会议室能坐10个人” ≠ “会议室只能坐10个人”
2. 无法理解“隐喻”:
“时间是金钱”——不是真能买卖
3. 难以形式化“模糊概念”:
“年轻人”、“有点咸”、“很快”
4. 常识的“冰山问题”:
写出来的只是冰山一角,水下是海量默认知识
🚀 现代发展:知识图谱
当今热点:知识图谱 =
本体论(Schema) +
实例数据(Knowledge Base) +
推理引擎
例子:Google知识图谱:
- 本体:人物、地点、组织、事件...
- 实例:特朗普是美国前总统,生于纽约...
- 推理:特朗普是美国人(因为美国总统必须是美国公民)
🧠 第10章思维升华
从“数据”到“知识”到“智能”
数据:原始的符号(“25”,“北京”,“C”)
信息:有意义的数据(“温度25℃”,“北京是首都”)
知识:信息+关联+约束(“北京是中国的政治中心”)
智能:运用知识解决问题(“去北京出差要带正装”)
本章位置:
- 第8章:逻辑语言(给了AI“说话方式”)
- 第9章:逻辑推理(给了AI“思考能力”)
- 本章:知识表示(给AI“思考内容”——组织良好的知识库)
知识工程的教训
1. 没有“万能表示”:
不同领域需要不同表示(医疗vs法律vs常识)
2. 构建成本极高:
Cyc项目(1984-至今):试图编码人类常识
投入:500人年,百万美元级
结果:有限成功,证明难度极大
3. 维护比构建更难:
知识会过时(“手机”的含义从“大哥大”变到“智能手机”)
需要持续更新
连接人工智能大图景
知识表示是“符号主义AI”的核心
但现代AI更多是:
- 连接主义:神经网络从数据中学习表示
- 统计方法:概率模型处理不确定性
- 混合系统:符号+神经结合
未来方向:
1. 神经符号AI:用NN学习表示,用符号系统推理
2. 知识增强的LLM:给大模型注入结构化知识
3. 自动化知识获取:从文本自动构建知识库
最后一句大实话:
知识表示就像给AI编写“百科全书”——
不仅要定义每个词条,还要说明词条间的关系。
最难的往往不是“爱因斯坦的相对论”,
而是“人伤心时会哭”这样的日常常识。
人类用一生积累这些常识,
而要让AI理解,我们仍需漫长的“知识基建”。
更多推荐



所有评论(0)