정성적 추론 (Qualitative reasoning)

기회가 될 때마다 추론 관한 연구들이나 관련 시스템들에 대한 생각을 정리해보는 공간으로 활용해볼까 하는데, 이번에는 최근에 필자가 관심을 갖고 있는 정성적 추론을 선택했다.

정성적 추론 개요

정성적 추론이 누구로부터, 언제부터 시작되었는지는 확실치 않으나, 필자가 알고 있는 바로는 Kenneth D.Forbus가 관련 이론을 정립한 사람이 아닌가 한다(물론 Forbus의 논문에 인용된 논문을 보면 그 전에도 관련 연구가 있기는 했으나, 본격적인 연구를 촉발시킨 사람은 Forbus 인 듯 하다). 대략 1980년대 중반부터 관련 연구를 했던 것으로 보인다.

정성적 추론의 초기연구는 주로 물리학에서 시작되었다. 물리학은 복잡한 물리공식에 의해 여러가지 현상을 표현하고 결과를 '계산'해 내는 '정량적 수치'가 중요한데 반해서, '정성적 표현(qualitative representation)'과  '정성적 추론(qualitative reasoning)'의 연구자들은 '-, +, 0' 등의 state 값이나 '비례관계'와 같은 abstract한 표현으로 물리현상을 설명하고 결과를 '예측'하려 시도했다.

Fig.1.  정성적 추론의 개념
<strong>Fig.1.</strong> 정성적 추론의 개념

정성적 추론의 기본적인 개념을 설명하기 위해 많이 사용되는 그림이다 (원본 슬라이드 파일은 찾기가 어려운데, 저자는 Forbus 인 것으로 알려져 있다).
 
그림에서 보여주고 있듯이,
  • Stove 온도 상승 -> 주전자에 담긴 물의 온도 상승 (기화) -> 주전자 온도 상승 -> 주전자 연소
와 같은 현상의 변화를 물리적 공식없이 인과관계모델 (causal model) 만으로 추론하는 방식이다.
 
따라서 정성적 추론에서 사용하는 중요한 개념은,
 
  • Entity: 상태가 변화되는 주체
  • Quantity: 수치가 아닌, quantity value space 로 표현되는 abstract한 개념의 quantity
  • State: entity의 quantity가 변화해서 특정 point (또는 landmark) 에 이른 상태
 
다시 말하면, 어떤 entity의 quantity가 변화되면 특정 state에 이르게 되고, 결론적으로는 state의 변화경로를 예측하는 것이 정성적 추론이라고 말할 수 있다. 이러한 변화경로는 state graph, behaviour path 등으로 불린다.
 
이러한 변화경로는 정확한 수치에 의해 계산되는 것이기 아니기 때문에, 여러 entity가 참여하게 되면 다양한 경우의 수가 만들어지고, 변화경로 또한 다양하게 생성될 수 있기 때문에, 여러 정성적 추론 결과(endpoint state)가 만들어지기도 하며 심지어는 추론과정 또는 결과의 모순이 발생되기도 한다.
 
 

Garp3, DynaLearn

정성적 추론에 관한 연구는 1990년대 중반까지 Forbus를 중심으로 활발히 연구되는 듯 하다가, 1990년대 말에서 2000년대 초반까지 연구논문 수가 급감하는 양상을 보였다. 이유는 확실히 모르겠으나, Logic과 관련한 연구가 DL(Description Logic)을 중심으로 한 술어논리, 온톨로지 지식표현 등이 소위 '뜨는' 연구주제로 등극한 것이 한 몫한 것 아닐까 하는 생각이다.
 
아무튼 그렇게 잠잠하던 정성적 추론 연구가 다시 시작된 것은,  EU FP6 지원을 받은 NaturNet-Redime Project, Garp3 와, EU FP7 으로 이어지는 DynaLearn 프로젝트이다.
 

이 프로젝트들은 모두 암스테르담 대학의 Bert Bredeweg을 중심으로 하여 진행되었는데, 정성적 추론을 위한 modeling, simulation을 수행해볼 수 있는 프로그램을 만들고 이를 교육에까지 사용하고자 시도했다. Prolog 언어를 기반으로 정성적 추론 알고리즘과 UI를 구현했고, 추론 내에서 사용되는 개념과 관계들을 온톨로지 모델로 관리하고 있는 흥미로운 시도다.

Fig.2. DynaLearn 프로그램
<strong>Fig.2. </strong>DynaLearn 프로그램

이 프로그램에서는 Entity간의 관계 및 quantity의 변화에 대한 규칙을 시나리오로 정의하고, 시나리오에 대한 simulation을 수행해볼 수 있다. 예를 들어 Fig.3 에서는 state endpoint가 2, 3, 6, 8, 10 으로 다섯가지 경우의 수를 볼 수 있으며, 각각의 endpoint에 이르기까지 quantity가 어떻게 변화했는지는 value history를 통해서 살펴볼 수 있다 (Fig.4)

Fig.3. DynaLean Simulation 수행결과: state graph
<strong>Fig.3. </strong>DynaLean Simulation 수행결과: state graph
Fig.4. DynaLean Simulation 수행결과: value history
<strong>Fig.4. </strong>DynaLean Simulation 수행결과: value history

 

 
Bredeweg는 이같은 결과를 얻기 위한 정성적 추론 과정에 사용되는 model과 알고리즘의 수행에 있어서의 여러가지 이슈 (추론 최적화 문제 등) 등을 연구[1]했다. Forbus가 정성적 추론의 활용 가능성과 관련 개념들을 정립했다면, Bredeweg는 이를 실용적으로 적용하기 위한 시스템적 연구를 한 것으로 볼 수 있겠다.
 

에필로그

IBM Watson나 Siri 등의 경우처럼 Garp3, DynaLearn도 시맨틱 기술이 내부적으로 사용되고 있다. 정량적인 계산에 의한 추론이 아닌 논리적 관계와 규칙에 의한 추론이니, 지식 모델에 대해서는 당연히 온톨로지를 고려하는 것이 필요한지도 모르겠다.
 
시맨틱 기술이 '지식을 어떻게 표현하고 공유할 것인가'가 핵심이라 할 수 있을텐데, 그래서 '공유된 지식을 어떻게 써먹을 것인가'에 대해 풀고 있지 못한 부분이 다양한 추론시스템(특히 white-box reasoning system)들을 통해 그 실용적인 가능성을 발견하게 되지 않을까 막연하게 기대해본다.
[1] Bert Bredeweg, Floris Linnebank, Anders Bouwer, Jochem Liem. Garp3 — Workbench for qualitative modelling and simulation, Ecological Informatics 4:263–281, 2009

 

 

Author: Seonho Kim