Categories: 信息技术

知识表达和推理

知识表达和推理(Knowledge representation and reasoning, KR,KR²,KR&R)是人工智能(AI)领域,致力于以计算机系统可用于解决复杂任务(如诊断医疗状况或进行对话)的形式表示有关世界的信息。用自然语言。 知识表示结合了心理学关于人类如何解决问题和表达知识的发现,以便设计使复杂系统更容易设计和构建的形式。 知识表示和推理还结合了逻辑的结果,以自动化各种推理,例如规则的应用或集合和子集的关系。

知识表示形式的示例包括语义网,系统架构,框架,规则和本体。 自动推理引擎的示例包括推理引擎,定理证明器和分类器。

KR会议系列旨在分享这一具有挑战性领域的想法和进展。

历史
计算机化知识表示中最早的工作集中在一般问题求解器上,例如Allen Newell和Herbert A. Simon在1959年开发的通用问题求解器(GPS)系统。这些系统具有用于规划和分解的数据结构。 该系统将以目标开始。 然后它会将该目标分解为子目标,然后开始构建可以完成每个子目标的策略。

在AI的早期阶段,还开发了诸如A *的通用搜索算法。 然而,诸如GPS之类的系统的无定形问题定义意味着它们仅适用于非常受约束的玩具域(例如“块世界”)。 为了解决非玩具问题,Ed Feigenbaum和Frederick Hayes-Roth等AI研究人员意识到有必要将系统集中在更多受限制的问题上。

正是这些努力的失败导致了心理学的认知革命,并导致人工智能的阶段聚焦于导致20世纪70年代和80年代专家系统的知识表示,生产系统,框架语言等。而不是一般的问题解决者,人工智能将其重点转向专家系统,该系统可以在特定任务(如医疗诊断)上匹配人的能力。

专家系统为我们提供了当今仍在使用的术语,其中人工智能系统被划分为知识库,其中包含有关世界和规则的事实,以及将规则应用于知识库以便回答问题和解决问题的推理引擎。 在这些早期系统中,知识库往往是一个相当扁平的结构,基本上是关于规则使用的变量值的断言。

除了专家系统,其他研究人员在20世纪80年代中期开发了基于框架的语言的概念。 框架类似于对象类:它是描述世界中的事物,问题和潜在解决方案的类别的抽象描述。 框架最初用于面向人类交互的系统,例如理解自然语言和社会环境,其中各种默认期望(例如在餐馆中订购食物)缩小搜索空间并允许系统选择对动态情况的适当响应。

不久之后,框架社区和基于规则的研究人员意识到他们的方法之间存在协同作用。 框架适用于表示现实世界,描述为具有可能值的各种约束的类,子类,槽(数据值)。 规则有利于表示和利用复杂的逻辑,例如进行医学诊断的过程。 开发了综合系统,将框架和规则结合起来。 其中最强大和众所周知的是Intellicorp的1983年知识工程环境(KEE)。 KEE有一个完整的规则引擎,具有前向和后向链接。 它还具有完整的基于框架的知识库,包括触发器,插槽(数据值),继承和消息传递。 虽然消息传递起源于面向对象的社区而不是AI,但它很快就被人工智能研究人员以及KEE等环境以及来自Symbolics,Xerox和Texas Instruments的Lisp机器操作系统所接受。

框架,规则和面向对象编程的集成受到诸如KEE和Symbolics等各种研究项目分离的商业企业的显着推动。 在这种情况发生的同时,还有另一种研究模式,其商业焦点较少,并受数学逻辑和自动化定理证明的驱动。 这项研究中最有影响力的语言之一是80年代中期的KL-ONE语言。 KL-ONE是一种框架语言,具有严格的语义,对诸如Is-A关系等概念的正式定义。 KL-ONE和受其影响的语言(例如Loom)有一个基于形式逻辑而不是IF-THEN规则的自动推理引擎。 这个推理器被称为分类器。 分类器可以分析一组声明并推断新的断言,例如,将一个类重新定义为一个未正式指定的其他类的子类或超类。 通过这种方式,分类器可以用作推理引擎,从现有知识库中推导出新的事实。 分类器还可以在知识库上提供一致性检查(在KL-ONE语言的情况下也称为本体论)。

知识表示研究的另一个领域是常识推理的问题。 从尝试制作可以使用人类自然语言运行的软件中学到的第一个实现之一就是人类经常利用我们认为理所当然的现实世界的广泛知识基础,但这对人工智能体来说并不明显。 。 常识物理,因果关系,意图等的基本原则。一个例子是框架问题,在事件驱动的逻辑中,需要有公理,即状态事物从一个时刻到下一个时刻保持位置,除非它们被一些外力所感动。 为了建立一个真正的人工智能代理,可以使用自然语言与人交谈,并且可以处理有关世界的基本陈述和问题,因此必须代表这种知识。 解决这个问题的最雄心勃勃的计划之一是Doug Lenat的Cyc项目。 Cyc建立了自己的Frame语言,并且有大量的分析师记录了该语言中常识推理的各个方面。 记录在Cyc中的知识包括时间,因果关系,物理,意图等许多常识模型。

知识表示的出发点是Brian C. Smith在1985年首次形式化的知识表示假设:

任何机械化的智能过程都将由以下结构成分组成:a)我们作为外部观察者自然地用来表示整个过程所展示的知识的命题说明,以及b)独立于这种外部语义归因,发挥正式但因果关系在产生表现知识的行为中发挥重要作用。

目前,知识表示研究中最活跃的领域之一是与语义网相关的项目。 语义网试图在当前的Internet上添加一层语义(含义)。 语义网不是通过关键字索引网站和页面,而是创建大型概念本体。 搜索概念比传统的纯文本搜索更有效。 框架语言和自动分类在未来语义网的愿景中发挥着重要作用。 自动分类为开发人员提供技术,以便在不断发展的知识网络上提供订单。 定义静态且无法动态演进的本体对于基于Internet的系统将是非常有限的。 分类器技术提供了处理因特网的动态环境的能力。

最近由国防高级研究计划局(DARPA)资助的项目已经将框架语言和分类器与基于XML的标记语言集成在一起。 资源描述框架(RDF)提供了定义对象的类,子类和属性的基本功能。 Web Ontology Language(OWL)提供了更多级别的语义,并支持与分类引擎集成。

概观
知识表示是人工智能领域,专注于设计计算机表示,捕获可用于解决复杂问题的世界信息。

知识表示的理由是传统的程序代码不是用于解决复杂问题的最佳形式。 知识表示使复杂软件比程序代码更容易定义和维护,并且可以在专家系统中使用。

例如,在业务规则而不是代码方面与专家交谈会减少用户和开发人员之间的语义差距,并使复杂系统的开发更加实用。

知识表示与自动推理密切相关,因为明确表示知识的主要目的之一是能够推理该知识,进行推理,断言新知识等。事实上,所有知识表示语言都有推理或推理引擎作为系统的一部分。

设计知识表示形式主义的关键权衡是表达性和实用性之间的关系。 在表达能力和紧凑性方面的终极知识表示形式是一阶逻辑(FOL)。 没有比数学家用来定义关于世界的一般命题更强大的形式主义。 然而,FOL作为知识表示形式主义有两个缺点:易用性和实现的实用性。 即使对于许多软件开发人员来说,一阶逻辑也是令人生畏的。 不具备FOL完整形式功能的语言仍然可以通过用户界面提供接近相同的表达能力,这对于普通开发人员来说更加实用。 实施的实用性问题是FOL在某些方面过于富有表现力。 使用FOL,可以创建语句(例如,无限集上的量化),这会导致系统在尝试验证它们时永不终止。

因此,FOL的子集可以更容易使用并且更实用。 这是基于规则的专家系统背后的驱动动力。 IF-THEN规则提供FOL的子集,但是非常有用的规则也非常直观。 大多数早期AI知识表示形式的历史; 从数据库到语义网到定理证明和生产系统,可以看作是关于是否强调表达能力或可计算性和效率的各种设计决策。

在关于该主题的1993年关键论文中,麻省理工学院的Randall Davis概述了分析知识表示框架的五个不同角色:

知识表示(KR)最基本上是一种替代品,是事物本身的替代品,用于使实体通过思考而不是行动来确定后果,即通过推理世界而不是在其中采取行动。
这是一系列本体论承诺,即对问题的回答:我应该以什么方式思考这个世界?
它是一个关于智能推理的零碎理论,用三个部分来表达:(i)表征的智能推理的基本概念; (ii)代表制裁的一组推论; (iii)它推荐的一组推论。
它是实用高效计算的媒介,即完成思考的计算环境。 这种实用效率的一个贡献是由表达提供组织信息的指导,以便于做出推荐的推论。
它是人类表达的媒介,也就是我们讲述世界事物的语言。

知识表示和推理是语义网的关键使能技术。 基于具有自动分类的Frame模型的语言在现有Internet之上提供了一层语义。 不是像现在这样通过文本字符串进行搜索,而是可以定义逻辑查询并查找映射到这些查询的页面。 这些系统中的自动推理组件是称为分类器的引擎。 分类器关注知识库中的包含关系而不是规则。 分类器可以推断新类,并在新信息可用时动态更改本体。 此功能非常适用于互联网不断变化和不断发展的信息空间。

语义Web将来自知识表示和推理的概念与基于XML的标记语言集成在一起。 资源描述框架(RDF)提供了使用诸如Is-A关系和对象属性等基本功能在Internet上定义基于知识的对象的基本功能。 Web Ontology Language(OWL)增加了额外的语义,并与自动分类reasoners集成。

特点
1985年,Ron Brachman将知识表示的核心问题分类如下:

原语。 用于表示知识的基础框架是什么? 语义网络是最早的知识表示原语之一。 此外,用于一般快速搜索的数据结构和算法。 在这一领域,计算机科学中的数据结构和算法研究存在很大的重叠。 在早期系统中,以lambda演算为模型的Lisp编程语言经常被用作功能知识表示的一种形式。 框架和规则是下一种原始的。 帧语言具有各种机制来表达和实施对帧数据的约束。 帧中的所有数据都存储在插槽中。 插槽类似于实体关系建模中的关系以及面向对象建模中的对象属性。 原语的另一种技术是定义在一阶逻辑(FOL)之后建模的语言。 最着名的例子是Prolog,但也有许多特殊目的定理证明环境。 这些环境可以验证逻辑模型,并可以从现有模型中推导出新的理论。 从本质上讲,它们可以自动化逻辑学家在分析模型时所经历的过程。 定理证明技术在软件工程领域有一些特定的实际应用。 例如,可以证明软件程序严格遵守正式的逻辑规范。

元表示。 这也被称为计算机科学中的反思问题。 它指的是形式主义能够获得有关其自身状态的信息。 一个例子是Smalltalk和CLOS中的元对象协议,它为开发人员提供了对类对象的运行时访问,并使他们能够动态地重新定义知识库的结构,即使在运行时也是如此。 元表示意味着知识表示语言本身就是用该语言表达的。 例如,在大多数基于帧的环境中,所有帧都是帧类的实例。 可以在运行时检查该类对象,以便对象可以理解甚至更改其内部结构或模型其他部分的结构。 在基于规则的环境中,规则通常也是规则类的实例。 规则的元协议的一部分是优先规则触发的元规则。

Related Post

不完全性。 传统逻辑需要额外的公理和约束来处理现实世界而不是数学世界。 此外,将置信度与语句相关联通常很有用。 也就是说,不仅仅是说“苏格拉底是人类”,而是“苏格拉底是人类充满信心的50%”。 这是专家系统研究的早期创新之一,它转移到一些商业工具,将确定性因素与规则和结论联系起来的能力。 后来在这方面的研究被称为模糊逻辑。

定义和普遍性与事实和默认值。 普遍性是关于世界的一般性陈述,例如“所有人都是凡人”。 事实是普遍性的具体例子,例如“苏格拉底是人类,因此是凡人”。 在逻辑上,定义和普遍性是关于普遍量化,而事实和默认是关于存在量化。 所有形式的知识表示都必须处理这个方面,并且大多数都使用集合论的一些变体,将通用集合作为集合和子集以及定义作为这些集合中的元素。

非单调推理。 非单调推理允许各种假设推理。 系统将断言的事实与用于证明它们的规则和事实相关联,并且这些事实也改变了相关知识的更新。 在基于规则的系统中,此功能称为真值维护系统。

表达充分。 Brachman和大多数AI研究人员用来衡量表达充分性的标准通常是一阶逻辑(FOL)。 理论上的限制意味着完全实施FOL是不切实际的。 研究人员应该清楚他们想要表达的表达能力(完全FOL表达能力的多少)。

推理效率。 这指的是系统的运行时效率。 知识库更新的能力以及在合理的时间段内开发新推论的推理者。 在某些方面,这是表达充分性的另一面。 一般来说,表示越强大,表达充分性越高,其自动推理引擎的效率就越低。 效率通常是一个问题,特别是对于知识表示技术的早期应用。 它们通常在诸如Lisp之类的解释环境中实现,与当时更传统的平台相比,它们很慢。

知识的形式化
用于表示复杂知识的更正式的工具是例如概念图或语义网络。

在新技术领域,知识的正式表现在人工智能领域得到发展。 在形式表示中,知识由属性,公理和规则连接的逻辑对象表示。 这种表示用于专家系统。

Web的发展,特别是语义Web的观点,通过引入有争议的本体论术语来更新这一领域。 从这个角度来看,已经开发了许多语言,作为W3C的标准RDFS,SKOS和OWL或ISO标准主题地图。

知识表示技术
知识排序和表示有不同的系统。 根据他们的力量大致订购,这些是:

目录,词汇表,分类学(简单控制词汇),
分类,词库(通常没有继承关系的有限数量的关系),
语义网络,本体,框架,生产规则,
公理系统,谓词逻辑也是如此
多层扩展语义网络(MultiNet)。
如果没有正式的表示或可能,则必须找到其他方法进行调解,例如在信息可视化领域。

代表质量的标准
选择知识表示系统的重要标准是:

正确性
如何确保正确的语法和正确的语义?

充分性/表现力/厚度
该语言是否清晰,灵活地代表了所需的本体组件?

效率
如何有效地得出结论?

复杂
知识地图和知识检索的学习曲线有多陡峭?

对其他语法格式或语言的可译性

知识与推理之间的联系
知识(或信仰)的正式表示使得有可能对这些信息进行自动化处理。 这是符号人工智能研究领域之一:基于信息的“智能”推理模拟。

最常用的正式框架之一是命题逻辑。 实际上,可以通过命题逻辑编码以及在SAT问题研究的背景下开发的算法技术的使用来解决大量问题。 例如,各种游戏可以被编码为命题公式。

其他正式框架使得表示特定结构的信息成为可能,例如论证系统,贝叶斯网络或可能性逻辑。

已经建模了大量类型的人类推理,包括推理(例如可以从知识库中得出结果)或信念动态(AGM框架的修订,收缩和扩展)。

本体工程
在知识型系统的早期阶段,知识库相当小。 旨在真正解决实际问题的知识库而不是概念验证演示需要关注明确定义的问题。 因此,例如,不仅仅是医学诊断作为一个整体主题,而是某些疾病的医学诊断。

随着基于知识的技术的扩大,对更大的知识库和可以相互通信和集成的模块化知识库的需求变得明显。 这产生了本体工程学科,设计和构建可供多个项目使用的大型知识库。 该领域的一个主要研究项目是Cyc项目。 Cyc试图建立一个庞大的百科知识库,不仅包含专业知识,还包含常识知识。 在设计人工智能代理时,人们很快意识到,代表常识知识,人类认为理所当然的知识,对于制作可以使用自然语言与人类进行交互的人工智能至关重要。 Cyc旨在解决这个问题。 他们定义的语言称为CycL。

在CycL之后,已经开发了许多本体语言。 大多数是声明性语言,或者是框架语言,或者是基于一阶逻辑。 模块化 – 定义特定领域和问题空间边界的能力 – 对于这些语言至关重要,因为正如汤姆格鲁伯所说,“每个本体论都是一个条约 – 一个共同共同动机的人之间的社会协议。” 总有许多竞争和不同的观点使得任何通用本体都不可能。 通用本体必须适用于任何领域,并且需要统一不同的知识领域。

尝试为各种任务领域构建本体有很长的工作历史,例如,液体本体,广泛用于表示电子电路的集总元件模型(例如),以及时间,信念和本体的本体。甚至编程本身。 这些都提供了一种观察世界某些地方的方法。

例如,集总元件模型表明,我们根据元件之间的连接来考虑电路,信号沿着连接瞬间流动。 这是一个有用的视图,但不是唯一可能的视图。 如果我们需要关注器件中的电动力学,就会出现不同的本体:这里信号以有限的速度传播,现在可能需要考虑以前被视为具有I / O行为的单个元件的物体(如电阻器)作为电磁波流过的扩展介质。

当然,本体可以用各种语言和符号(例如,逻辑,LISP等)写下来; 基本信息不是那种语言的形式,而是内容,即作为思考世界的一种方式提供的概念。 简单地说,重要的部分是连接和组件之类的概念,而不是将它们写为谓词或LISP结构之间的选择。

选择一个或另一个本体的承诺可以产生对手头任务截然不同的看法。 考虑选择电路的集总元件视图而不是相同器件的电动视图时出现的差异。 作为第二个例子,根据规则(例如,MYCIN)观察的医学诊断看起来与根据帧(例如,INTERNIST)观察的相同任务显着不同。 在MYCIN认为医学界由连接症状与疾病的经验关联组成的地方,INTERNIST看到一组原型,特别是原型疾病,与手头的案例相匹配。

Share