知识表示与专家系统 符号AI内容概述 笔记由 Tomomi Imura 绘制 人工智能的追求基于对知识的搜索,以类似于人类的方式理解世界。但你该如何去做呢? 课前测验 在人工智能的早期阶段,创建智能系统的自上而下的方法(在前一课中讨论过)很受欢迎。其想法是从人们那里提取知识并将其转换为机器可读的形式,然后使用这些知识自动解决问题。这种方法基于两个主要思想: 知识表示 推理 知识表示 在符号AI中一个重要的概念是知识。重要的是要区分知识与信息或数据。例如,有人说书籍包含知识,因为通过研究书籍可以成为专家。然而,书籍实际包含的是数据,通过阅读书籍并将这些数据整合到我们的世界模型中,我们才能将数据转化为知识。 ✅ 知识是我们头脑中的某种东西,代表我们对世界的理解。

笔记由 Tomomi Imura 绘制
人工智能的追求基于对知识的搜索,以类似于人类的方式理解世界。但你该如何去做呢?
在人工智能的早期阶段,创建智能系统的自上而下的方法(在前一课中讨论过)很受欢迎。其想法是从人们那里提取知识并将其转换为机器可读的形式,然后使用这些知识自动解决问题。这种方法基于两个主要思想:
在符号AI中一个重要的概念是知识。重要的是要区分知识与信息或数据。例如,有人说书籍包含知识,因为通过研究书籍可以成为专家。然而,书籍实际包含的是数据,通过阅读书籍并将这些数据整合到我们的世界模型中,我们才能将数据转化为知识。
✅ 知识是我们头脑中的某种东西,代表我们对世界的理解。它是通过一个主动的学习过程获得的,这个过程将我们接收到的信息整合到我们对世界的动态模型中。
大多数时候,我们不会严格定义知识,而是通过DIKW金字塔将其与其他相关概念对齐。它包含以下概念:
图来自维基百科 CC BY-SA 4.0
因此,知识表示的问题在于找到一种有效的方法,在计算机中以数据形式表示知识,使其能够自动使用。这可以看作是一个光谱:

图片由 Dmitry Soshnikov 提供
✅ 想一想你是如何在头脑中表示知识并将其转化为笔记的。有没有一种特定的格式对你来说有助于记忆?
我们可以根据以下类别对不同的计算机知识表示方法进行分类:
| 对象 | 属性 | 值 |
|---|---|---|
| Python | 是 | 非类型语言 |
| Python | 发明者 | Guido van Rossum |
| Python | 块语法 | 缩进 |
| 非类型语言 | 不包括 | 类型定义 |
✅ 思考一下三元组如何用于表示其他类型的知识。
分层表示强调了我们经常在头脑中创建对象层次结构的事实。例如,我们知道金丝雀是一种鸟,所有鸟都有翅膀。我们还知道金丝雀通常是什么颜色的,以及它的飞行速度。
Python
| 槽 | 值 | 默认值 | 区间 |
|---|---|---|---|
| 名称 | Python | ||
| 是 | 非类型语言 | ||
| 变量大小写 | 骆驼式命名法 | ||
| 程序长度 | 5-5000行 | ||
| 块语法 | 缩进 |
过程表示基于通过执行某些条件发生时的动作列表来表示知识。
逻辑最初是由亚里士多德提出的,作为一种表示普遍人类知识的方式。
符号AI早期的成功之一是所谓的专家系统——计算机系统旨在作为某个有限问题领域的专家。它们基于从一名或多名人类专家提取的知识库,并且包含一个推理引擎,该引擎在其上执行一些推理。
![]() |
![]() |
|---|---|
| 简化的人类神经系统的结构 | 基于知识的系统架构 |
专家系统构建方式类似于人类的推理系统,该系统包含短期记忆和长期记忆。类似地,在基于知识的系统中,我们区分以下组件:
例如,让我们考虑以下根据动物的物理特征确定动物的专家系统:

图片由 Dmitry Soshnikov 提供
这个图表称为AND-OR树,它是生产规则集的图形表示。绘制树在从专家提取知识的初期很有用。为了在计算机中表示知识,使用规则更方便:
IF the animal eats meat OR (animal has sharp teeth AND animal has claws AND animal has forward-looking eyes ) THEN the animal is a carnivore
你可以注意到规则左边的每个条件和动作本质上都是对象-属性-值(OAV)三元组。工作内存包含与当前正在解决的问题相对应的OAV三元组集合。规则引擎查找满足条件的规则并应用它们,向工作内存添加新的知识片段。
✅ 写出一个你自己喜欢主题的AND-OR树!
上述过程称为正向推理。它从工作内存中关于问题的一些初始数据开始,然后执行以下推理循环:
然而,在某些情况下,我们可能希望从对问题的知识为空开始,并提出有助于我们得出结论的问题。例如,在医学诊断中,我们通常不会在开始诊断患者之前进行所有医疗分析。我们更希望在需要做出决定时才进行分析。
这个过程可以通过反向推理建模。它由目标驱动——我们要寻找的属性值:
✅ 在什么情况下正向推理更合适?反向推理呢?
专家系统可以使用不同的工具实现:
请参阅Animals.ipynb了解如何实现正向和反向推理专家系统示例。
注意:这个例子相当简单,只是为了展示专家系统的样子。一旦开始创建这样一个系统,只有当达到大约200条规则左右时,你才会开始注意到一些智能行为。在某种程度上,规则变得太复杂以至于无法记住所有内容,此时你可能会开始怀疑系统为何会做出某些决定。然而,基于知识的系统的重要特征是你总是可以解释任何决策是如何做出的。
在20世纪末,有一个倡议利用知识表示来注解互联网资源,以便能够找到对应于非常具体查询的资源。这一运动被称为语义网,它依赖于几个概念:
基于**描述逻辑**(DL)的特殊知识表示。它类似于框架知识表示,因为它构建了一个具有属性的对象层次结构,但它具有正式的逻辑语义和推理。有一整套DL平衡表达能力和推理算法复杂性。
分布式知识表示,其中所有概念都由全局URI标识符唯一表示,这使得创建跨越互联网的知识层次结构成为可能。
一组基于XML的语言用于知识描述:RDF(资源描述框架)、RDFS(RDF模式)、OWL(本体论网络语言)。
语义网的核心概念是本体论。它指的是使用某种形式的知识表示对问题领域进行显式说明。最简单的本体论可以只是一个问题领域的对象层次结构,但更复杂的本体论将包括可用于推理的规则。
在语义网中,所有表示都基于三元组。每个对象和每种关系都由URI唯一标识。例如,如果我们想要声明这个AI课程是在2022年1月1日由Dmitry Soshnikov开发的,我们可以使用以下三元组:
http://github.com/microsoft/ai-for-beginners http://www.example.com/terms/creation-date “Jan 13, 2007” http://github.com/microsoft/ai-for-beginners http://purl.org/dc/elements/1.1/creator http://soshnikov.com
✅ 这里
http://www.example.com/terms/creation-dateandhttp://purl.org/dc/elements/1.1/creator是一些众所周知且普遍接受的URI,用于表达创作者和创建日期的概念。
在更复杂的情况下,如果我们想定义一个创建者列表,我们可以使用RDF中定义的数据结构。
上述图表由 Dmitry Soshnikov 提供
由于搜索引擎和自然语言处理技术的成功,语义网的建设进展在一定程度上放缓了,这些技术允许从文本中提取结构化数据。然而,在某些领域,仍有一些重大努力来维护本体论和知识库。一些值得注意的项目:
#defaultView:BubbleChart SELECT ?eyeColorLabel (COUNT(?human) AS ?count) WHERE { ?human wdt:P31 wd:Q5. # human instance-of homo sapiens ?human wdt:P1340 ?eyeColor. # human eye-color ?eyeColor SERVICE wikibase:label { bd:serviceParam wikibase:language "en". } } GROUP BY ?eyeColorLabel
✅ 如果你想尝试构建自己的本体论或打开现有的本体论,有一个很棒的可视化本体编辑器叫做Protégé。下载它或在线使用。
Web Protégé编辑器打开罗马诺夫家族本体。截图由 Dmitry Soshnikov 提供
请参阅FamilyOntology.ipynb了解如何使用语义网技术推理家庭关系。我们将一个以常见GEDCOM格式表示的家庭树和家庭关系本体结合起来,为给定的一组个体建立一个家庭关系图。
通常,本体论是由人工精心创建的。然而,也可以从非结构化数据中挖掘本体论,例如,从自然语言文本中。
微软研究院就进行了这样一次尝试,最终产生了微软概念图。
这是一个大型实体集合,使用is-a继承关系组合在一起。它允许回答诸如“微软是什么?”的问题——答案可能是“公司概率为0.87,品牌概率为0.75”。
该图可以作为REST API访问,也可以作为列出了所有实体对的大文本文件下载。
尝试MSConceptGraph.ipynb笔记本,看看我们如何使用微软概念图将新闻文章分为几个类别。
如今,AI经常被认为是机器学习或神经网络的同义词。然而,人类也表现出明确的推理,这是目前神经网络无法处理的。在实际项目中,明确的推理仍然用于需要解释的任务,或者能够以受控方式修改系统的行为。
在与本课相关的家庭本体论笔记本中,有机会尝试其他家庭关系。试着发现家族树中新的联系。
在网上做一些研究,发现人类试图量化和编码知识的领域。研究一下布卢姆的分类法,并回到历史,了解人类如何试图理解他们的世界。探索林奈如何创建生物分类法,观察德米特里·门捷列夫如何创造了一种描述和分组化学元素的方法。你能找到其他哪些有趣的例子?
作业:构建一个本体论
声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。