Artificial Intelligence 简明教程

Artificial Intelligence - Expert Systems

专家系统 (ES) 是人工智能的一个重要研究领域。它是由斯坦福大学计算机科学系的专家引入的。

What are Expert Systems?

专家系统是一种计算机应用程序,旨在解决特定领域的复杂问题,达到非凡的人类智力和专业知识水平。

Characteristics of Expert Systems

  1. High performance

  2. Understandable

  3. Reliable

  4. Highly responsive

Capabilities of Expert Systems

专家系统有能力 −

  1. Advising

  2. 指导和帮助人类决策

  3. Demonstrating

  4. Deriving a solution

  5. Diagnosing

  6. Explaining

  7. Interpreting input

  8. Predicting results

  9. Justifying the conclusion

  10. 为问题提出备选方案

它们无法 −

  1. Substituting human decision makers

  2. Possessing human capabilities

  3. 针对不足的知识库生成准确的输出

  4. Refining their own knowledge

Components of Expert Systems

专家系统的组成如下:

  1. Knowledge Base

  2. Inference Engine

  3. User Interface

让我们逐一简要了解它们:

expert system

Knowledge Base

包含领域特定且高质量的知识。

获得智能需要知识。任何专家系统的成功在很大程度上取决于其高度准确和精确的知识集合。

What is Knowledge?

数据是事实的集合。信息被组织为与任务领域相关的数据和事实。 Data, information,past experience 结合在一起称为知识。

Components of Knowledge Base

专家系统的知识库是事实和启发式知识的存储库。

  1. Factual Knowledge − 这是知识工程师和任务领域学者广泛接受的信息。

  2. Heuristic Knowledge − 这与实践、准确的判断、一个人的评估能力和猜测有关。

Knowledge representation

这是用来组织和规范知识库中的知识的方法。它采用 IF-THEN-ELSE 规则的形式。

Knowledge Acquisition

任何专家系统的成功在很大程度上取决于存储在知识库中的信息的质量、完整性和准确性。

知识库由来自各个专家、学者和 Knowledge Engineers 的读物组成。知识工程师是一个具有同理心、快速学习和案例分析技能的人。

他通过记录、访谈和观察专家在工作中的表现等方式从主题专家那里获取信息。然后,他以有意义的方式对信息进行分类和组织,采用 IF-THEN-ELSE 规则的形式,供干涉机器使用。知识工程师还监督专家系统的开发。

Inference Engine

推理引擎使用高效的过程和规则对于得到正确、无瑕疵的解决方案至关重要。

在基于知识的专家系统中,推理引擎获取知识库中的知识并对其进行操作以得出特定解决方案。

在基于规则的专家系统中,它:

  1. 重复对事实应用规则,这些事实是从早先的规则应用中获得的。

  2. 根据需要将新知识添加到知识库中。

  3. 在多条规则适用于特定情况时解决规则冲突。

为了推荐解决方案,推理引擎使用以下策略:

  1. Forward Chaining

  2. Backward Chaining

Forward Chaining

专家系统的一种策略是回答问题 “What can happen next?”

在此,推理引擎遵循条件和推导链,最终推导出结果。它考虑所有事实和规则,并在得出解决方案之前对它们进行排序。

该策略用于得出结论、结果或作用。例如,预测股票市场状态是利率变化的作用。

forward chaining

Backward Chaining

专家系统采用此策略可以发现问题的答案 “Why this happened?”

基于已经发生的情况,推理引擎尝试找出过去导致此结果的情况。该策略用于找出原因或理由。例如,人类血癌的诊断。

backward chaining

User Interface

用户界面提供了 ES 用户和 ES 本身之间的交互。它通常是自然语言处理,以便任务领域精通的用户使用。ES 的用户不必一定是人工智能专家。

它解释了 ES 如何得出特定建议。说明可能以以下形式出现−

  1. 屏幕上显示的自然语言。

  2. 自然语言中的口头叙述。

  3. 屏幕上显示的规则编号列表。

用户界面可以轻松追踪推论的可信度。

Requirements of Efficient ES User Interface

  1. 它应该帮助用户以最短的方式实现目标。

  2. 它应该设计为适用于用户现有或理想的工作实践。

  3. 其技术应该适应用户的需求,而不是相反。

  4. 它应该有效利用用户输入。

Expert Systems Limitations

没有一项技术可以提供简单而完整的解决方案。大型系统成本高昂,需要大量开发时间和计算机资源。ES 有其局限性,包括 −

  1. Limitations of the technology

  2. Difficult knowledge acquisition

  3. ES 难以维护

  4. High development costs

Applications of Expert System

下表显示了可以应用 ES 的位置。

Application

Description

Design Domain

照相机镜头设计、汽车设计。

Medical Domain

从观察到的数据中推断出疾病原因,在人类身上实施医疗操作的诊断系统。

Monitoring Systems

例如,对长石油管道进行泄漏监测,将数据与观察到的系统或规定的行为持续比较。

Process Control Systems

基于监测控制物理过程。

Knowledge Domain

找出车辆和计算机中的故障。

Finance/Commerce

检测可能的欺诈、可疑交易、股票市场交易、航空公司排班,货运排班。

Expert System Technology

有几项 ES 技术可供使用。专家系统技术包括 −

  1. Expert System Development Environment − ES 开发环境包括硬件和工具。它们是 −工作站、小型机、大型机。高级符号编程语言,例如 *L*表 *P*rogrammation (LISP) 和 *P*rogrammation en *LOG*ique (PROLOG)。大型数据库。

  2. Tools − 它们很大程度上减少了开发专家系统的精力和成本。多窗口的强大编辑器和调试工具。它们提供快速原型制作,具有模型、知识表示和推理设计的内置定义。

  3. Shells − Shell 不过是无知识库的专家系统。Shell 向开发者提供知识获取、推理引擎、用户界面和解释程序。例如,下面给出了一些 Shell −Java Expert System Shell (JESS) 为创建专家系统提供了完全开发的 Java API。Vidwan,1993 年在孟买国家软件技术中心开发的一个 Shell。它能够以 IF-THEN 规则的形式对知识进行编码。

Development of Expert Systems: General Steps

ES 开发的过程是迭代的。ES 开发的步骤包括 −

Identify Problem Domain

  1. 该问题必须适合专家系统来解决。

  2. 为 ES 项目找到任务域中的专家。

  3. 建立系统的成本效益。

Design the System

  1. Identify the ES Technology

  2. 了解和建立与其他系统和数据库的集成度。

  3. 认识到如何以最佳方式表示领域知识的概念。

Develop the Prototype

从知识库来看:知识工程师的工作是 −

  1. 从专家那里获得领域知识。

  2. 以 If-THEN-ELSE 规则的形式表示它。

Test and Refine the Prototype

  1. 知识工程师使用示例案例来测试原型,以发现性能中的不足。

  2. 最终用户对 ES 的样机进行测试。

Develop and Complete the ES

  1. 测试并确保 ES 与其环境中的所有元素(包括最终用户、数据库和其他信息系统)进行互动。

  2. 恰当地记录 ES 项目。

  3. 培训用户使用 ES。

Maintain the System

  1. 通过定期审查和更新使知识库保持最新状态。

  2. 满足其他信息系统的新接口,随着这些系统的发展。

Benefits of Expert Systems

  1. Availability − 由于软件批量生产,它们很容易获得。

  2. Less Production Cost − 生产成本合理。这使它们具有可负担性。

  3. Speed − 它们提供极高的速度。它们减少了个人投入工作的数量。

  4. Less Error Rate − 与人为错误相比,错误率低。

  5. Reducing Risk − 它们可以在对人类危险的环境中工作。

  6. Steady response − 它们稳定工作,不会出现情绪化、紧张或疲劳。