知识获取研究伴随人工智能的兴起而逐渐升温,它是人工智能和知识工程的基本技术之一,也是主要问题之一。特别是20世纪70年代以来,基于知识工程的人工智能发展,形成了人工智能的3个中心问题:知识表示、知识应用和知识获取。人工智能的研究不仅让机器有解决问题的能力,而且应使机器具有自学习能力,使机器能像智慧生物一样积累生活经验和不断总结教训,改正错误,提高性能,适应不断变化的环境,并有发现和发明的能力。知识获取能解决机器知识的来源和补充问题。所有先进、完善的人工智能系统都必须具备学习能力,知识获取是设计和实现各种人工智能和知识工程的关键。
什么是知识获取呢?一般而言,知识获取可以简单地表述为从与领域专家的交互中获取知识。事实上,知识获取的提出与形成是和知识紧密联系在一起的。费根鲍姆(Feigenbaum)认为:“知识获取是人工智能应用的一项技能。它运用人工智能的原理和方法,为处理只有具备专家知识才能解决的难题提供便捷途径。恰当运用专家知识的获取、推理和表达过程中的方法,是设计基于知识系统的重要技术。”
知识获取的方法是多种多样的,如与专家会谈、观察专家的问题求解过程、使用文本理解系统等。依据在知识获取过程中自动化程度的高低,可把知识获取方法分为3种类型:人工知识获取、半自动知识获取和自动知识获取。
人工知识获取是指处于中间指导环节的知识工程师,通过知识源和计算机系统,经过抽取、组织和归纳后最终将知识以某种形式存入知识库。
半自动知识获取是指在知识工程师的干预指导下,借助知识获取工具来完成知识获取的过程。此种方法主要通过交流等一系列方式,例如采取提示、指导或问答的方式,利用专门的知识获取系统把专家描述的内容翻译成所需的知识形式并记入知识库。此种方法又被称为交互式知识获取。
自动知识获取是指由领域专家直接提供知识、数据和有关资料,知识获取过程完全由知识获取工具或知识库系统自动完成,知识工程师仅仅协调知识获取过程,如维护系统运行、教会领域专家使用计算机系统等。自动知识获取具有从已有知识中发掘新知识的能力,因此又被称为具有推理能力的知识获取方法。自动知识获取分为两种形式:一种是系统在运行过程中自动总结经验,修改和扩充自己的知识库,本身具有自学习能力;另一种形式是开发专门的机器学习系统,让机器自动从实际问题中获取知识,并填充知识库。
在人工智能或知识工程系统中,机器获取知识的方法和途径可分为以下3类。
人工移植依靠人工智能系统的设计师、知识工程师、程序员、专家或用户,通过系统设计、程序编制及人机交互或辅助工具,将人的知识移植到机器的知识库中,使机器获取知识。
人工移植的方式可分为以下两种。
(1)静态移植。在系统设计过程中,通过知识表示、程序编制、建立知识库,进行知识存储、编排和管理,使系统获取所需的先验知识或静态知识。
(2)动态移植。在系统运行过程中,通过常规的人机交互方法(如“键盘-显示器”的输入输出交互方式)或辅助知识获取工具(如知识编辑器),利用知识同化技术和知识顺应技术,对机器的知识库进行人工的增加、删除、修改、扩充和更新,使系统动态获取所需的知识。
机器学习是指在人工智能系统运行过程中,机器通过学习获取知识,进行知识积累,对知识库进行增加、删除、修改、扩充与更新。
机器学习的方式可分为以下两种。
(1)示教式学习。在机器学习过程中,由人作为示教者或监督者,给出评价准则或判断标准,对系统的工作效果进行检验,选择或控制“训练集”,对学习过程进行指导和监督。这种学习方式可以是离线或在线的、非实时或实时的。
(2)自觉式学习。在机器学习过程中,不需要人作为示教者或监督者,而由系统本身的监督器实现监督功能,对学习过程进行监督,提供评价准则和判断标准,通过反馈进行工作效果检验,控制选例和训练。这种学习方式通常是在线、实时的。
在上述两种学习方式中,机器可以采用各种学习方法,如强记、指导、示例、类比等。
所谓机器感知是指人工智能系统在调试或运行过程中,通过机器视觉、机器听觉、机器触觉等途径,直接感知外部世界、输入自然信息、获取感性知识和理性知识。
机器感知主要有以下3种途径。
(1)机器视觉。在系统调试或运行过程中,通过文字识别、图像识别和物景分析等,直接从外部世界输入相应的文字、图像和物景的自然信息,获取感性知识,并经过识别、分析和理解,获取有关的理性知识。
(2)机器听觉。在系统调试或运行过程中,通过声音识别、语音识别和语言理解等,直接从外部世界输入相应的声音、语言等自然信息,获取感性知识,并经过识别、分析和理解,获取有关的理性知识。
(3)机器触觉。机器触觉是指通过触觉传感器与被识物体相接触或相互作用来完成对物体表面特征和物理性能(如硬度、弹性、粗糙度、材质等)的感知。它可实现视觉等其他感觉无法实现的功能,例如可以识别出物体是否要滑出或预测抓取物体成功的可能性等。
在人工智能的研究层面上,知识获取遇到的主要问题来自以下6个方面。
(1)知识获取是一个科学建模的过程。它并不是简单地将知识从一种表示方式转换为另一种表示方式的过程,而是在计算机专家知识系统中将根据专家求解问题的方法建立的求解模型表示出来的过程。
(2)知识表示的不一致性。由于知识在转换过程中会遗失一部分原有的知识,同时引入新的“知识杂质”,因此知识源中的知识和知识库系统中的知识在表示法上存在不同。
(3)在专家头脑中有一部分知识是凭经验产生的,如涉及一些操作技能的知识。专家往往能恰当地处理某个领域中的问题,但说不清楚处理所依据的原则。因此,许多专家知识只可意会而难以言传。
(4)知识的形式是多种多样的,不同形式的知识在不同研究领域中有其对应的表示方式和获取方法。目前,还不存在比较统一和规范的知识获取方法。
(5)专家资源问题。为了获取某个领域的知识,特别是一些用于提高问题求解效率的启发性知识,就不可避免地要与一些该领域的优秀专家交流。但专家们往往没有充裕的时间与知识工程师充分讨论相关领域具体问题的求解方法,这可能使相关领域知识失去权威性。
(6)测试和完善知识库系统的复杂性。知识工程师的任务之一是将专家知识表示为计算机系统所能接受的方法。而知识表示方法直接关系到知识库系统的性能。另外,知识库中的知识是否一致、是否完备和有无冗余也是知识工程师要考虑的问题。目前在这些方面的技术还有相当的局限性。
知识获取技术最近几年发展迅速,但其毕竟属于新兴领域,发展时间比较短且技术难题很多。一直以来,机器学习能力是人工智能领域研究的一个关键点。机器学习能力的不足限制了人工智能的发展,但同时其他领域在学习算法和学习形式等方面的发展,也推动了机器学习领域的发展。