前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >面向初学者的人工智能教程(2)--知识表示与专家系统

面向初学者的人工智能教程(2)--知识表示与专家系统

作者头像
成江东
发布2023-07-07 09:24:49
5471
发布2023-07-07 09:24:49
举报
文章被收录于专栏:强人工智能之路
图片
图片

第一章见: 面向初学者的人工智能教程(1)--人工智能简介 对人工智能的追求基于对知识的探索,目标是让机器能像人类一样理解世界。但是,我们应该如何去实现这个目标呢?

课前测验

在人工智能的早期,自上而下的创建智能系统的方法(在上一课中讨论过)很流行。其想法是将人们的知识提取成某种机器可读的形式,然后用它来自动解决问题。这种方法基于两个大的想法:

  •  知识表示
  •  推理

知识表示

符号AI中的一个重要概念是知识。把知识与信息或数据区分开来很重要。例如,人们可以说书籍包含知识,因为一个人可以学习书籍,成为专家。然而,书籍所包含的东西实际上被称为数据,通过阅读书籍并将这些数据集成到我们的世界模型中,我们将这些数据转化为知识。

知识是包含在我们头脑中的东西,代表着我们对世界的理解。它是通过一个主动学习过程获得的,这个过程将我们接收到的信息片段整合到我们对世界的主动模型中。

大多数情况下,我们并不严格定义知识,而是使用DIKW金字塔将其与其他相关概念相结合。它包含以下概念:

  • 数据是以物理介质表示的东西,例如书面文本或口头文字。数据独立于人类而存在,可以在人与人之间传递。
  • 信息是我们在头脑中解释数据的方式。例如,当我们听到计算机这个词时,我们对它是什么有一定的理解。
  • 知识是整合到我们的世界模型中的信息。例如,一旦我们了解了什么是计算机,我们就开始对它的工作原理、成本、用途等有了一些想法。这个相互关联的概念网络形成了我们的知识。
  • 智慧是我们对世界的理解的另一个层次,它代表了元知识,例如。关于如何以及何时使用知识的一些概念。
图片
图片

图片来自维基百科,作者:Longliveheux

因此,知识表示的问题就是要找到一种有效的方式,将知识以数据的形式存储在计算机中,使其可以自动被使用。

图片
图片

摄影:Dmitry Soshnikov

如上图所示:

  • 在左边,有非常简单的知识表示类型,可以被计算机有效地使用。最简单的一种是算法,当知识由计算机程序表示时。然而,这不是表示知识的最佳方式,因为它不灵活。我们头脑中的知识通常是非算法的。
  • 在右边,存在诸如自然文本之类的表示。它是最强大的,但不能用于自动推理。

花一分钟思考你如何在头脑中表达知识,并将其转换为笔记。有没有一种特别的格式可以很好地帮助你保持记忆? 计算机知识表示的分类 我们可以将不同的计算机知识表示方法分为以下几类: 1. 网络表征是基于这样一个事实,即我们的头脑中有一个相互关联的概念网络。我们可以尝试在计算机中复制相同的网络,即所谓的语义网络。 2. 对象-属性-值三元组或属性-值对。由于图可以在计算机中表示为节点和边的列表,因此我们可以通过包含对象、属性和值的三元组列表来表示语义网络。例如,我们构建了以下关于编程语言的三元组:

  1. 层次表征强调了这样一个事实,即我们经常在头脑中创建对象的层次结构。例如,我们知道金丝雀是一种鸟,所有的鸟都有翅膀。我们也知道金丝雀通常是什么颜色,它们的飞行速度是多少。
    • 框架表示法是基于将每个对象或对象类别表示为一个包含插槽的框架。插槽有可能的默认值、值限制,或者可以调用的存储过程来获取插槽的值。所有的框架形成一个类似于面向对象编程语言中的对象层次结构。
    • 场景是一种特殊的框架,它表示可以随时间展开的复杂情况。
  1. 过程表示基于通过在特定条件发生时可以执行的动作列表来表示知识。
    • 产生式规则是允许我们得出结论的if-then语句。例如,医生可以有一个规则说,如果一个病人有高烧或血液测试中C反应蛋白水平高,那么他有炎症。一旦我们遇到其中一种情况,我们就可以得出关于炎症的结论,然后在进一步的推理中使用它。
    • 算法可以被认为是过程表示的另一种形式,尽管它们几乎从不直接用于基于知识的系统。
  2. 逻辑最初是由亚里士多德提出的,作为一种表示普遍人类知识的方式。
    • 谓词逻辑作为一种数学理论,其内容过于丰富,无法被计算机完全计算,因此通常使用其某个子集,例如在Prolog中使用的霍恩子句。
    • 描述逻辑是一个逻辑系统家族,用于表示和推理对象的层次结构,分布式知识表示,如语义网。

    专家系统 符号人工智能的早期成功之一是所谓的专家系统-计算机系统被设计为在某些有限的问题领域充当专家。它们基于从一个或多个人类专家提取的知识库,并且它们包含一个推理引擎,该推理引擎在其上执行一些推理。

人类神经系统的简化结构                            基于知识的系统的体系结构

专家系统的构建类似于人类的推理系统,它包含短期记忆和长期记忆。同样,在基于知识的系统中,我们区分以下组件:

  • 内存问题:包含关于当前正在解决的问题的知识,即病人的体温或血压,他是否有炎症等。这种知识也被称为静态知识,因为它包含了我们当前所知道的问题的快照,即所谓的问题状态。
  • 知识库:代表了关于一个问题领域的长期知识。它是从人类专家那里手动提取的,并且不会因咨询而改变。因为它允许我们从一个问题状态导航到另一个问题状态,所以也被称为动态知识。
  • 推理引擎:协调在问题状态空间中搜索的整个过程,必要时向用户提出问题。它还负责找到适用于每个问题的正确规则。

作为示例,让我们考虑以下基于动物的物理特征确定动物的专家系统:

图片: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树!

正向推理与反向推理 上述过程称为前向推理。它从工作内存中可用的问题的一些初始数据开始,然后执行以下推理循环:

  1. 如果目标属性存在于工作内存中-停止并给予结果
  2. 查找当前满足条件的所有规则-获取冲突规则集。
  3. 执行冲突解决-选择将在此步骤中执行的一个规则。可能有不同的冲突解决策略:
    • 选择知识库中的第一个适用规则
    •  选择随机规则
    • 选择更具体的规则,即在“左手边”(LHS)中满足最多条件的一个
  4. 应用所选规则并将新知识插入问题状态
  5.  从步骤1开始重复。

然而,在某些情况下,我们可能希望从一个空洞的知识开始,并提出一些有助于我们得出结论的问题。例如,在进行医学诊断时,我们通常不会在开始诊断患者之前提前执行所有医学分析。我们更希望在需要做出决策时进行分析。 该过程可以使用反向推理来建模。它是由目标驱动的-我们正在寻找的属性值:

  1. 选择所有可以为我们提供目标值的规则(即目标位于RHS(“右手边”)-冲突集
  2. 如果这个属性没有规则,或者有一个规则说我们应该向用户请求值-请求它,否则:
  3. 使用冲突解决策略选择一条规则作为假设-我们将尝试证明它
  4. 对规则的LHS中的所有属性重复这个过程,试图将它们证明为目标
  5. 如果过程在任何时候失败-在步骤3使用另一个规则。

在哪些情况下向前推理更合适?反向推理怎么样?

实施专家系统 专家系统可以使用不同的工具实现:

  • 直接用高级编程语言编程。这不是最好的想法,因为基于知识的系统的主要优点是知识与推理分离,潜在的问题领域专家应该能够编写规则而不了解推理过程的细节
  • 使用专家系统外壳,即一种专门设计成使用某种知识表示语言由知识填充的系统。

练习️:动物推理 关于实现正向和反向推理专家系统的示例,请参见Animals.ipynb。 注意:这个例子相当简单,只给出了专家系统的外观。一旦你开始创建这样一个系统,你只会注意到一些智能行为,一旦你达到一定数量的规则,大约200+。在某种程度上,规则变得太复杂,以至于无法记住所有规则,此时您可能开始想知道为什么系统会做出某些决策。然而,基于知识的系统的重要特征是,您总是可以准确地解释任何决策是如何做出的。

本体论与语义网 在20世纪末,有一个倡议,使用知识表示来注释互联网资源,这样它将有可能找到对应于非常具体的查询的资源。这个运动被称为语义网,它依赖于几个概念:

  • 一种基于描述逻辑(DL)的特殊知识表示。它类似于框架知识表示,因为它建立了具有属性的对象的层次结构,但它具有形式化的逻辑语义和推理。有一整个家族的DL在表达性和推理的算法复杂性之间取得平衡。
  • 分布式知识表示,其中所有概念都由全局URI标识符表示,使得创建跨越互联网的知识层次结构成为可能。
  • 基于XML的知识描述语言家族:RDF(Resource Description Framework)、RDFS(RDF Schema)、OWL(Ontology Web Language)。

语义网的核心概念是本体的概念。它指的是使用某种形式的知识表示的问题域的显式规范。最简单的本体可以只是问题域中的对象的层次结构,但更复杂的本体将包括可用于推理的规则。 在语义网中,所有的表示都基于三元组。每个对象和每个关系都由URI唯一标识。例如,如果我们想说明这个AI课程是由Dmitry Soshnikov于2022年1月1日开发的,下面是我们可以使用的三元组:

这里 http://www.example.com/terms/creation-date 和 http://purl.org/dc/elements/1.1/creator 是一些众所周知的和普遍接受的URI来表达创建者和创建日期的概念。 在更复杂的情况下,如果我们想定义一个创建者列表,我们可以使用RDF中定义的一些数据结构。

图片:Dmitry Soshnikov 搜索引擎和自然语言处理技术的成功使得语义网的建设进程在某种程度上放慢了,这些技术允许从文本中提取结构化数据。然而,在一些领域,仍然有显着的努力来维护本体和知识库。值得注意的几个项目:

  • WikiData是与维基百科相关的机器可读知识库的集合。大部分数据都是从Wikipedia InfoBoxes中挖掘出来的,这是维基百科页面中的结构化内容。您可以使用SPARQL查询维基数据,SPARQL是一种用于语义Web的特殊查询语言。下面是一个示例查询,它显示了人类中最流行的眼睛颜色:

#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

  • DBpedia是另一个类似于WikiData的工作。

如果你想尝试构建自己的本体,或者打开现有的本体,有一个很棒的可视化本体编辑器叫做Protégé。下载或在线使用。

Web Protégé编辑器打开罗曼诺夫家族本体。导演:Dmitry Soshnikov

练习️:家庭本体论 请参阅FamilyOntology.ipynb获得使用语义Web技术来推理家庭关系的示例。我们将采取一个家庭树表示在通用的GEDCOM格式和家庭关系的本体,并建立一个图表的所有家庭关系为给定的一组个人。

Microsoft概念图 在大多数情况下,本体是手工精心创建的。然而,也可以从非结构化数据(例如,从自然语言文本)中挖掘本体。 微软研究院曾做过这样一个尝试,并导致了微软概念图。 它是使用继承关系组合在一起的实体的大型集合 is-a 。它允许回答诸如“什么是微软?答案是“一家公司的概率为0.87,一家品牌的概率为0.75”。 Graph既可以作为REST API使用,也可以作为一个列出所有实体对的大型可下载文本文件使用。

练习️:概念图 试试MSConceptGraph.ipynb笔记本,看看我们如何使用MicrosoftConceptGraph将新闻文章分成几个类别。

结论部分 如今,人工智能通常被认为是机器学习或神经网络的同义词。然而,人类也表现出显式推理,这是目前神经网络无法处理的事情。在真实的世界的项目中,显式推理仍然用于执行需要解释的任务,或者能够以受控的方式修改系统的行为。

 🚀 挑战 在与本课相关的家庭本体笔记本中,有机会对其他家庭关系进行实验。试着发现家谱中人之间的新联系。

课后测验 复习与自学 在互联网上做一些研究,发现人类试图量化和编纂知识的领域。看看布鲁姆的分类学,回到历史,了解人类是如何试图理解他们的世界的。探索Linnaeus创建生物分类学的工作,并观察Dmitri Mendeleev创建化学元素描述和分组的方式。你还能找到哪些有趣的例子?

任务:构建本体


更多一手体验文章请关注公众号“强人工智能之路”,可永久免费对话GPT3.5,关注后回复“AI”可以领取精心整理的AI知识图谱一份。

知识星球推荐:

目前全国最大的关于AI的知识星球和社区,刚突破2.5万成员,2个月时间,已发布了11个专栏、67+课程,产生了5K+篇帖子,日均95+篇;精华帖子122+篇,日均2.5篇。并组织了北京、深圳等多个城市的线下交流会。扫下面的优惠卷加入星球可优惠69元,对内容不满意72小时可无条件退款

本文系外文翻译,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系外文翻译前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 课前测验
  • 知识表示
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档