전방향 추론
더 많은 작업
전방향 추론(Forward Chaining, Forward Reasoning)은 알려진 사실에서 출발해 조건이 맞는 규칙을 차례로 적용하며 새로운 사실을 이끌어 내 결론에 이르는 추론 방식이다.
전문가 시스템 같은 규칙 기반 시스템은 지식을 IF 조건 THEN 결론 형태의 프로덕션 규칙(Production Rule)으로 저장한다. 이 규칙들로 결론을 얻는 방향에 따라 두 방식이 있다. 사실에서 결론 쪽으로 나아가면 전방향 추론, 확인하고 싶은 결론(목표)에서 그것을 성립시키는 사실 쪽으로 거슬러 가면 후방향 추론(Backward Chaining)이다. 전진 추론·순방향 추론, 후진 추론·역방향 추론이라고도 부른다.
| 구성 요소 | 역할 |
|---|---|
| 규칙 베이스(지식 베이스) | IF … THEN … 규칙의 모음. 전문가의 지식이다
|
| 작업 메모리(사실 베이스) | 현재 알려진 사실. 추론하면서 새 사실이 더해진다 |
| 추론 엔진 | 사실과 규칙을 맞춰 보고 규칙을 골라 실행한다 |
추론 엔진은 매칭 → 충돌 해결 → 실행을 되풀이한다.
- 매칭: 조건부가 작업 메모리의 사실과 맞는 규칙을 모두 찾는다(이 규칙 집합을 충돌 집합이라 한다).
- 충돌 해결: 여러 규칙이 맞으면 우선순위·최근 사실·조건의 구체성 같은 기준으로 하나를 고른다.
- 실행: 고른 규칙의 결론부를 작업 메모리에 더하거나 동작을 수행한다.
데이터가 추론을 이끈다(데이터 구동, Data-driven).
- 작업 메모리의 사실로 조건이 만족되는 규칙을 찾는다.
- 그 규칙을 실행해 결론을 새 사실로 더한다.
- 더 이상 적용할 규칙이 없거나 목표 사실이 나올 때까지 되풀이한다.
규칙
- R1: IF 털이 있다 THEN 포유류다
- R2: IF 포유류다 AND 고기를 먹는다 THEN 육식동물이다
- R3: IF 육식동물이다 AND 황갈색이다 AND 검은 줄무늬가 있다 THEN 호랑이다
사실: 털이 있다, 고기를 먹는다, 황갈색이다, 검은 줄무늬가 있다
- 1회: R1 만족 → '포유류다' 추가
- 2회: R2 만족 → '육식동물이다' 추가
- 3회: R3 만족 → '호랑이다' 추가. 더 적용할 규칙이 없어 끝난다
관측된 증상·센서 값이 들어오면 거기서 가능한 결론을 모두 이끌어 내야 하는 상황, 예컨대 감시·제어, 설정 구성, 계획 수립에 맞다.
목표가 추론을 이끈다(목표 구동, Goal-driven).
- 증명하려는 목표(가설)를 정한다.
- 그 목표를 결론부로 가진 규칙을 찾고, 그 규칙의 조건부를 하위 목표로 삼는다.
- 하위 목표가 작업 메모리의 사실과 맞으면 참이다. 맞는 사실이 없으면 그 하위 목표를 결론으로 하는 규칙을 다시 찾거나 사용자에게 묻는다.
- 모든 하위 목표가 참이면 목표가 참이다.
위와 같은 규칙에서 목표 '호랑이인가?'를 확인한다.
- '호랑이다'를 결론으로 가진 R3 → 하위 목표: 육식동물인가, 황갈색인가, 검은 줄무늬가 있는가
- '육식동물이다'를 결론으로 가진 R2 → 하위 목표: 포유류인가, 고기를 먹는가
- '포유류다'를 결론으로 가진 R1 → 하위 목표: 털이 있는가 → 사실과 일치
- 모든 하위 목표가 사실로 확인되어 '호랑이다'가 참이다
가설이 정해져 있고 그것을 확인하는 진단에 맞다. 질병 진단 전문가 시스템 MYCIN 이 후방향 추론을 썼다.
| 구분 | 전방향 추론 | 후방향 추론 |
|---|---|---|
| 출발점 | 사실(데이터) | 목표(가설) |
| 진행 방향 | 조건부 → 결론부 | 결론부 → 조건부 |
| 구동 방식 | 데이터 구동 | 목표 구동 |
| 탐색 형태 | 폭이 넓다. 목표와 관계없는 사실까지 만들어 낼 수 있다 | 목표와 관련된 규칙만 따라가 탐색이 좁다 |
| 적합한 문제 | 결론 후보가 많고 데이터가 적은 문제, 감시·계획·구성 | 결론 후보가 적고 확인할 데이터가 많은 문제, 진단·분류 |
| 사례 | XCON(컴퓨터 구성), 생산 규칙 엔진 | MYCIN(감염 진단), Prolog |
두 방식을 섞는 양방향 추론도 있다. 사실에서 앞으로, 목표에서 뒤로 동시에 진행해 중간에서 만나게 한다.
추론의 방향(전방향·후방향)과 별개로, 추론의 논리 형식에 따라 연역법과 귀납법을 나눈다.
| 구분 | 연역법(Deduction) | 귀납법(Induction) |
|---|---|---|
| 방향 | 일반 원리 → 개별 사례 | 개별 사례 → 일반 원리 |
| 결론의 성격 | 전제가 참이면 결론도 반드시 참 | 결론이 그럴듯할 뿐 반드시 참은 아니다 |
| 새로운 지식 | 전제에 이미 들어 있는 것을 끌어낸다 | 관찰을 넘어서는 새 일반화를 만든다 |
| 예 | 모든 포유류는 폐로 숨쉰다. 고래는 포유류다. 그러므로 고래는 폐로 숨쉰다 | 관찰한 백조 1,000마리가 모두 희다. 그러므로 백조는 희다 |
| 시스템에서 | 규칙 기반 전문가 시스템의 추론 엔진 | 기계 학습, 결정 트리 학습, 규칙 학습 |
- 전문가 시스템의 전방향·후방향 추론은 모두 규칙을 적용해 결론을 끌어내는 연역적 추론이다.
- 귀납법은 사례 데이터에서 규칙을 만들어 지식 베이스를 채우는 데 쓴다.
- 관찰된 결과를 가장 잘 설명하는 원인을 추정하는 가추법(Abduction)도 있으며, 진단 추론이 이에 가깝다.