프로그래밍[Univ]/인공지능

[인공지능] 추론 기법

Cloud Travel 2012. 10. 19. 16:53

* 일치-점화를 통한 추론 엔진 싸이클

 - 일치 : 주어진 규칙과 지식베이스의 사실이 일치하는 가를 파악하는 과정

 - 점화 : 일치된 규칙에서 도출되는 결론을 지식베이스에 추가하는 과정

    


 - 추론 엔진은 순방향 연결 추론(forward inference chaining)과 역방향 연결 추론(backward inference chaining)이 있다.

 - 규칙의 IF 부분과 사실과의 일치는 추론 사슬(inference chains)을 생성한다.

  ex) 지식베이스에 A, B, C가 사실이라는 것이 존재.

  rule 1) 

   If Y is true and C is true then Z is true.

  rule 2)

   If B is true then X is true.

  rule 3) 

   If X is true and A is true then Y is true.

  > Inference chains

   


* 순방향 연결 추론(forward inference chaining)

 - 데이터 지향 추론

 - 알려진 데이터에서 추론을 시작하여, 순방향으로 진행

 - 한번에 사실에 맞는 규칙 하나만 실행되며, 규칙이 점화되면 그 규칙을 지식 베이스에 추가시킨다.

 - 점화하는데 사용된 규칙은 또 다시 수행되지 않는다.

 - 규칙을 모두 탐색하는 것을 하나의 사이클이라고 한다. 

 - 더 이상 점화할 규칙이 없으면 중단되며, 요청한 사실이 참인지를 탐색한후, 결론을 도출한다.

 ex) 지식베이스에 A, B, C가 사실이라는 것이 존재. Z가 사실인지를 탐색.

  rule 1) 

   If Y is true and C is true then Z is true.

  rule 2)

   If B is true then X is true.

  rule 3) 

   If X is true and A is true then Y is true.

  rule 4)

   If A is true and B is true then D is true.

  rule 5)

   If W is true then K is true.

   



   > 싸이클을 2번 돌고 나면 더이상 점화시킬 규칙이 없다. 지식베이스에 Z가 있는지를 확인. 있으므로 사실로 판정.

 - 단점 : 정해진 목표와 관련 없는 많은 규칙들이 수행될 가능성이 있다. 

            위와 같이 하나의 특정한 사실을 추론하는 것이라면 순방향 연결 추론 기법은 효과적이지 못하다고 할 수 있다.


* 역방향 연결 추론(backward inference chaining)

- 목표 지향 추론

 - 목표(가정해)를 정하고, 이를 증명하기 위한 증거를 찾는 방식

 - 규칙의 IF부분을 증명하기 위해 작업 중이던 규칙(사용될 여부가 존재하는 규칙/Then 부분에 목표가 있는 경우)은

   스택(stack)에 쌓아두며, 새로운 목표를 설정한다.

 - 더 이상 목표를 역추론하는데 필요한 새로운 목표가 없다면, Pop을 시키면서 규칙을 점화시킨다. 

 ex) 지식베이스에 A, B, C가 사실이라는 것이 존재. Z가 사실인지를 탐색.

  rule 1) 

   If Y is true and C is true then Z is true.

  rule 2)

   If B is true then X is true.

  rule 3) 

   If X is true and A is true then Y is true.

  rule 4)

   If A is true and B is true then D is true.

  rule 5)

   If W is true then K is true.

   

   > stack이 모두 Pop 된 후 지식베이스에 Z가 있는지를 확인. 있으므로 사실로 판정.

 - 장점 : short-term memory 사용이 적을 수 있다.

            필요한 rule은 사용하지 않아도 된다.

 - 특정한 사실 하나를 추론하는 경우에는 역방향 연결 추론 기법이 더 효과적


* 전문가 시스템에서의 추론 기법

 - 정보를 수집한 후 그 정보로부터 특정해를 추론하는 방법이 많이 사용되는 경우는 순방향 연결 추론 엔진 사용

 - 특정해를 가정한후 이를 증명하기 위해 필요한 사실을 찾으려는 것에서는 역방향 연결 추론 엔진 사용

 - 많은 전문가 시스템은 순방향과 역방향 연결 추론 엔진을 모두 적용하고 있다. 즉, 특별히 어떤 것이 좋다고 할 수는 없다.


* 규칙의 충돌 및 충돌 해법

 - 어떠 한 경우에는 IF에 오는 조건이 같은 두가지의 규칙이 있을 수 있다. 이경우 2가지의 규칙은 충돌했다고 한다.

  ex)  rule 1) IF A is true then B is true.

         rule 2) IF A is true then B is false.

         // 이 경우 규칙 1과 규칙 2는 충돌 했다고 할 수 있다.

 - 충돌은 피할 수 없는 경우가 많으며, 이러한 경우에 대비해서 최소한의 규칙만 생성하는 것을 권장한다.

 - 이러한 상황에서 어떤 것을 점화시킬지 정하는 것을 충돌 해법이라고 한다.

  ⓐ 각각의 규칙에 우선순위를 주는방법

   > 이 경우는 규칙에 우선순위를 정함으로써 중요한 순서에 따라 데이터를 처리하게 하는 것이다.

   > 충돌이 되는 경우 우선순위가 높은 것을 점화시킨다.

  ⓑ 최장 일치 전략

   > 이경우는 가장 특수한 규칙을 점화시킨다.

   > 가장 특수한 규칙이란, 조건절에 많은 정보를 닮고 있는 것을 의미한다.

   > 이 경우 한번에 더 많은 정보를 처리 할 것이라는 가정이 깔려 있다.

  ⓒ 가장 최근에 입력된 데이터를 선택하는 방법

   > 각각의 규칙의 사실에 시간테이블을 두어 가장 최근에 입력된 사실을 선택하는 방법이다.

 - 많은 경우 하나의 규칙이 점화 되어 해를 구하면, 더이상 탐색하지 않는 방법을 취하고 있다.

  > 이경우는 구해진 답이 오래되거나 안좋은 해일 수도 있다.


* 메타지식

 - 지식에 관한 지식

 - 특정 분야의 지식을 사용하고 제어하는데 필요한 지식으로 일을 처리할 때 효율을 높이는 역할을 한다.

 - 지식베이스의 가장 윗부분에서 사용하여 효율적인 탐색을 유도한다.

 - 메타지식은 추출하기 힘들다.


* 규칙기반 전문기 시스템의 장단점

 - 장점

  > 자연스러운 지식표현이 가능하다. 수치 Data가 아니여도 표현이 가능하다.

  > 통일된 구조 : 생성규칙이 단순한 IF -THEN  방식의 통일된 구조를 갖고 있다.

  > 지식과 과정의 분리 : 손쉽게 확장이 가능하다.

  > 불완전하고 불확실한 지식을 다룰 수 있다.

 - 단점 

  > 지식 획득의 병목현상(지식 획득과정이 힘들다)

  > 비효율적인 탐색 전략 : 추론시 오랜 시간이 걸릴 수 있다.

  > 특정 문제에 대해선 해를 구할 수 없을 수도 있다.

  > 학습능력이 없다.