* 일치-점화를 통한 추론 엔진 싸이클
- 일치 : 주어진 규칙과 지식베이스의 사실이 일치하는 가를 파악하는 과정
- 점화 : 일치된 규칙에서 도출되는 결론을 지식베이스에 추가하는 과정
- 추론 엔진은 순방향 연결 추론(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 방식의 통일된 구조를 갖고 있다.
> 지식과 과정의 분리 : 손쉽게 확장이 가능하다.
> 불완전하고 불확실한 지식을 다룰 수 있다.
- 단점
> 지식 획득의 병목현상(지식 획득과정이 힘들다)
> 비효율적인 탐색 전략 : 추론시 오랜 시간이 걸릴 수 있다.
> 특정 문제에 대해선 해를 구할 수 없을 수도 있다.
> 학습능력이 없다.