추론 엔진

Inference engine

인공지능 분야에서 추론 엔진은 새로운 정보를 추론하기 위해 지식 기반에 논리적 규칙을 적용하는 시스템의 구성요소이다.첫 번째 추론 엔진은 전문가 시스템의 구성요소였다.전형적인 전문가 시스템은 지식 기반과 추론 엔진으로 구성되었다.지식 기반은 세계에 대한 사실들을 저장했다.추론 엔진은 기술 자료와 추론된 새로운 지식에 논리적 규칙을 적용합니다.기술 자료에서 새로운 사실이 나올 때마다 추론 엔진에서 추가 규칙을 트리거할 수 있기 때문에 이 과정이 반복됩니다.추론 엔진은 주로 정방향 체인과 역방향 체인의 두 가지 모드 중 하나로 작동합니다.전진 체인은 알려진 사실에서 시작하여 새로운 사실을 주장합니다.역방향 체인은 목표에서 시작하여 목표를 [1]달성하기 위해 주장해야 하는 사실을 결정하기 위해 역방향으로 작용합니다.

아키텍처

추론 엔진이 사용하는 논리는 일반적으로 IF-THEN 규칙으로 나타납니다.이러한 규칙의 일반적인 형식은 IF <논리식> THEN <논리식>입니다.전문가 시스템과 추론 엔진이 개발되기 전에, 인공지능 연구원들은 1차 논리의 훨씬 더 완전한 구현을 제공하는 더 강력한 정리 검증 환경에 초점을 맞췄다.예를 들어, 보편적 수량화(모든 X에 대해 일부 진술이 참)와 실존적 수량화(일부 진술이 참일 정도로 일부 X가 존재한다)를 포함하는 일반적인 진술이 이에 해당한다.연구자들이 발견한 것은 이러한 정리 증명 환경의 힘 또한 그들의 결점이었다는 것이다.1965년 당시에는 논리적인 표현을 만드는 것이 너무 쉬워서 끝내는 데 무한정 시간이 걸릴 수 있었습니다.예를 들어, 모든 자연수의 집합과 같은 무한 집합을 설명하는 것은 보편적 정량화에서 일반적입니다.이러한 진술은 완전히 타당하고 심지어 수학적인 증명에서도 요구되지만, 컴퓨터에서 실행되는 자동 정리 프로버에 포함되면 컴퓨터가 무한 루프 상태에 빠질 수 있습니다.IF-THEN 스테이트먼트(논리학자들이 모더스 포넨이라고 부르는 것)에 초점을 맞추는 것은 여전히 개발자들에게 논리를 표현하기 위한 매우 강력한 일반적인 메커니즘을 제공하지만 계산 자원으로 효율적으로 사용될 수 있는 메커니즘을 제공하였다.게다가 인간은 복잡한 [2]지식을 저장할 때 IF-THEN 표현을 선호하는 경향이 있다는 것을 보여주는 심리학적 연구도 있다.

논리 입문서에 자주 사용되는 모더스 포넨의 간단한 예는 "만약 당신이 인간이라면 당신은 필멸자"이다.는 의사 코드로 다음과 같이 나타낼 수 있습니다.

규칙 1: 인간(x) => 모탈(x)

추론 엔진에서 이 규칙이 어떻게 사용되는지에 대한 간단한 예는 다음과 같습니다.전진 사슬에서 추론 엔진은 지식 기반에서 인간(x)과 일치하는 사실을 찾고 발견된 각 사실에 대해 새로운 정보 Mortal(x)을 지식 기반에 추가할 것이다.그래서 만약 소크라테스라는 사람이라는 물체를 발견한다면 소크라테스는 죽을 것이라고 추론할 것이다.역방향 사슬에서, 시스템은 목표가 주어질 것이다. 예를 들어 소크라테스는 필멸인가라는 질문에 대답하라.그것은 지식 기반을 뒤져 소크라테스가 인간인지 아닌지를 결정하고 만약 그렇다면 그도 인간이라고 주장할 것이다.그러나, 역방향 체인에서 공통적인 기술은 추론 엔진을 사용자 인터페이스와 통합하는 것이었다.이렇게 하면 시스템이 단순히 자동화되는 것이 아니라 인터랙티브하게 될 수 있습니다.이 사소한 예에서, 만약 시스템이 소크라테스가 인간인지 아직 알지 못하는지에 대한 질문에 대답하는 목표를 부여받았다면, 그것은 사용자에게 "소크라테스는 인간인가?"라는 질문을 할 수 있는 창을 만들어, 그 정보를 그에 따라 사용할 것이다.

추론 엔진을 사용자 인터페이스와 통합하는 이러한 혁신은 전문가 시스템의 두 번째 초기 발전, 즉 설명 능력으로 이어졌다.지식을 코드가 아닌 규칙으로 명시적으로 표현함으로써 사용자에게 설명을 생성할 수 있었습니다. 즉, 실시간과 사후 모두 설명입니다.그래서 시스템이 사용자에게 "소크라테스가 인간인가?"라고 묻는다면, 사용자는 왜 그녀가 그 질문을 받았는지 궁금할 것이고, 시스템은 왜 현재 그 지식을 확인하려고 노력했는지 설명하기 위해 일련의 규칙을 사용할 것이다: 즉, 소크라테스가 인간인지 아닌지를 판단하기 위해 필요한 것이다.처음에 이러한 설명은 개발자가 시스템을 디버깅할 때 다루는 표준 디버깅 정보와 크게 다르지 않았습니다.그러나 자연어 기술을 활용하여 컴퓨터 형식이 [3]아닌 자연어를 사용하여 질문과 설명을 만들어 내는 연구가 활발했습니다.

추론 엔진은 일치 규칙, 선택 규칙실행 규칙의 세 가지 단계를 차례로 순환합니다.규칙을 실행하면 새로운 사실이나 목표가 지식 기반에 추가되어 반복 사이클이 트리거되는 경우가 많습니다.이 주기는 일치하는 새 규칙이 없을 때까지 계속됩니다.

첫 번째 단계인 일치 규칙에서 추론 엔진은 기술 자료의 현재 내용에 의해 트리거된 모든 규칙을 찾습니다.전진 체인의 경우 엔진은 선행 요소(왼쪽)가 기술 자료와 일치하는 규칙을 찾습니다.후방 체인에서 엔진은 현재 목표 중 하나를 충족할 수 있는 선행 요소를 찾습니다.

두 번째 단계 선택 규칙에서 추론 엔진은 일치된 다양한 규칙에 우선순위를 부여하여 규칙을 실행할 순서를 결정한다.마지막 단계인 규칙을 실행하면 엔진은 순서 2에서 결정된 순서대로 일치된 각 규칙을 실행한 후 다시 순서 1로 돌아갑니다.새 규칙이 [4]일치하지 않을 때까지 주기가 계속됩니다.

실장

초기 추론 엔진은 주로 전진 체인에 초점을 맞췄다.이러한 시스템은 보통 리스프 프로그래밍 언어로 구현되었습니다.리스프는 상징적 조작 능력이 강해 초기 AI 연구의 단골 플랫폼이었다.또한 통역 언어로서 복잡한 프로그램 디버깅에 적합한 생산적인 개발 환경을 제공했습니다.이러한 편익의 필연적인 결과는 리스프 프로그램이 C와 같은 당시의 컴파일 언어보다 느리고 덜 견고한 경향이 있다는 것이다.초기의 일반적인 접근법은 전문가 시스템 애플리케이션을 사용하여 다른 연구자가 다른 전문가 시스템의 개발에 사용할 수 있는 재사용 가능한 도구로 해당 시스템에 사용된 추론 엔진을 다시 패키징하는 것이었다.예를 들어, MYCIN은 의학 진단을 위한 초기 전문가 시스템이었고, EMYCIN은 MYCIN에서 외삽되어 다른 [1]연구자들이 이용할 수 있게 된 추론 엔진이었다.

전문가 시스템이 연구 프로토타입에서 배치된 시스템으로 이동함에 따라 속도와 견고성과 같은 문제에 더욱 초점을 맞추게 되었습니다.최초의 가장 일반적인 전송 체인엔진 중 하나는 OPS5로, 규칙 기동 효율을 최적화하기 위해 Rete 알고리즘을 사용했습니다.개발된 또 다른 매우 인기 있는 기술은 프롤로그 로직 프로그래밍 언어였다.Prolog는 주로 역방향 체인에 중점을 두고 있으며 효율성과 [5]견고성을 위해 다양한 상용 버전과 최적화 기능을 갖추고 있습니다.

엑스퍼트 시스템즈는 다양한 기업들로부터 상당한 관심을 불러일으키면서, 많은 기업들이 저명한 AI 연구자들이 시작하거나 지도하여 제품화된 버전의 추론 엔진을 만들었다.예를 들어, Intellicorp은 처음에 Edward Feigenbaum에 의해 안내되었습니다.이러한 추론 엔진 제품도 처음에는 리스프에서 종종 개발되었습니다.그러나 보다 저렴하고 상업적인 플랫폼에 대한 요구는 결국 퍼스널 컴퓨터 플랫폼을 매우 인기 있게 만들었습니다.

오픈 소스 구현

Clips Rules and RefPerSys (CAIA와 Jacques Pitrat의 작품에서 영감을 얻었다)Frama-C 스태틱소스 코드아나라이저에서는 몇 가지 추론 엔진테크놀로지도 사용됩니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ a b Hayes-Roth, Frederick; Donald Waterman; Douglas Lenat (1983). Building Expert Systems. Addison-Wesley. ISBN 0-201-10686-8.
  2. ^ Feigenbaum, Edward; Avron Barr (September 1, 1986). The Handbook of Artificial Intelligence, Volume I. Addison-Wesley. p. 195. ISBN 0201118114.
  3. ^ Barzilayt, Regina; Daryl McCullough; Owen Rambow; Jonathan DeCristofaro; Tanya Korelsky; Benoit Lavoie. "A New Approach to Expert System Explanations" (PDF). USAF Rome Laboratory Report. Archived from the original on July 5, 2016.
  4. ^ Griffin, N.L., A Rule-Based Inference Engine which is Optimal and VLSI Implementable, University of Kentucky.
  5. ^ Sterling, Leon; Ehud Shapiro (1986). The Art of Prolog. Cambridge, MA: MIT. ISBN 0-262-19250-0.
  6. ^ Pitrat, Jacques (2009). Artificial Beings, the conscience of a conscious machine. Wiley. ISBN 978-1848211018.