d라이브러리









질병치료에서 세무자문까지

전문가 시스템

컴퓨터가 고수와 바둑을 두면 백전백패한다. 그러나 고수들의 지식이 체계적으로 습득되면 컴퓨터는 일관성이 있고 아는 지식의 범위내에서는 인간의 능력을 능가할 수 있다.

컴퓨터의 탁월한 계산속도와 기억능력은 어떤 사람도 감히 경쟁을 시도하려고 하지 않을 만큼 인정을 받게 되었다. 과거 십수년 전만 해도 주산 10단과 컴퓨터와의 대결의 이야기를 전해 듣곤 했지만 이제는 이런식의 게임은 자취를 감추었다. 그러나 아직도 컴퓨터와 대결하는 종류의 게임이 있으니 바둑이나 장기 같은 종류의 시합이다.

컴퓨터는 바둑이 몇단인가?

그러면 주산을 놓는 것과 바둑을 두는 것이 무엇이 다르길래 컴퓨터가 바둑을 두면 쩔쩔매면서 사람에게 무릎을 꿇는가? 그 이유는 사람은 바둑을 한수 놓을 때마다 그 한수가 놓일 수 있는 모든 경우의 수와 그 수의 연속수에 의해 발생할 수 있는 모든 경우의 수를 다 생각하는 것이 아니다. 다만 과거 경험에 의해 익혀진 수를 바탕으로 비교적 빨리 의사를 결정할 수 있기 때문이다.

이와같은 문제는 그 해답을 탐색하기 위해 계산량이 기하급수적으로 증가하는 어려운 종류의 문제이기 때문에 지금보다 몇 백만배 빠른 컴퓨터가 나온다하더라도 몇 백억년 걸려야 한 수씩 바둑을 두게될 수 있을 것이다.

이런 종류의 문제는 효율적 해법을 개발해야하지 컴퓨터를 더 빠르게 만든다고 해결될 성질의 문제가 아니다. 그래서 바둑의 고수들이 알고 있는 지식을 조작하여 컴퓨터에 저장시켜놓고 이 지식을 바탕으로 한 수씩 두게해야 한다. 이를 위해서는 이론을 제공할 학자들의 연구가 필요하고 또한 구체적으로 고수들의 지식을 습득해야 하는 어려움이 많다. 그러나 일단 지식을 습득하면 컴퓨터는 일관성이 있고 아는 지식범위내에서는 실수가 없을 것이므로 언젠가는 사람을 능가할 지 모른다.

컴퓨터가 사람에게서 배워야 할점은 이런 종류의 문제뿐만이 아니다. 사람은 언어를 사용하고 시각과 청각기능, 그리고 좀 정보가 부족하더라도 추론해 낼 수 있는 능력이 있다. 그래서 학자들마다 의견차이는 있겠지만 철학적인 인공지능의 정의는 "인간의 지능을 컴퓨터가 모방할수있는 방법을 연구하는 학문"이라고 볼 수 있다.

그런데 문제는 컴퓨터에게 바둑을 잘 두게 하는 지능을 가르치면 그 능력을 바탕으로 의료진단이나 법률상담도 할 수 있는가 하는 점이다. 이는 물론 불가능한데 마치 바둑의 고수가 경제학이나 물리학에는 문외한이라는 점과도 같다. 그렇다면 컴퓨터에게 '지능'이란 일반적인 개념을 가르치는 것으로 만족할 수만은 없다. 즉 컴퓨터로 하여금 어떤 전문 분야에 대해서 지적인 기능을 갖게할 필요가 있는 것이다. 그래서 이와같이 특정 전문 분야에 관한 지능을 가진 소프트웨어를 전문가시스템(Expert System)이라고 부르게 되었다.

지식의 양과 추론능력
 

(그림1) 사람의 지적활동


그러면 전문가시스템을 어떻게 만들 것인가? 이를 위해서는 사람이 어떻게 지적인 기능을 수행하는 지를 이해해야 하겠다. 이 과정을 설명하기 위하여 예를 들고자 한다. 내 친구는 교수인데 유치원에 다니는 그의 조카가 "삼촌도 화장실에 가시느냐?"는 질문을 하더라는 이야기이다. 이 질문의 이면에 숨겨진 지식을 살펴보면 이 소년은 선생님이 화장실에 가시는 것을 한번도 본적이 없다는 관찰에서 (선생님들의 화장실은 따로 있었다.) "선생님은 화장실에 가시지 않는다"는 지식을 얻었다. 그런데 "삼촌은 선생님이다." 따라서 '삼촌은 화장실에 가지시 않는다"고 결론을 내려야 했다. 그런데 삼촌이 이 결론에 상반된 행위를 하니까 이론적 결론과 현재 당면한 예외적 사실을 비교평가하기 위해 질문을 던진 것이다. 이 소년에게는
"선생님은 화장실에 가시지 않는다."
"삼촌은 선생님이다."
라는 지식이 있었고 이 지식을 바탕으로 추론에 의해
"삼촌은 화장실에 가시지 않는다." 는 결론을 내린 것이다.

여기에서 지식과 추론능력은 구분되어 있음을 알 수 있는데 이 결론이 틀린 것은 지식이 잘못 된 것은 아니다. 경우에 따라서는 이 지식을 가지고도 추론능력이 없어서 아무런 추론도 하지 못하는 저능아가 있을 수도 있겠다. 그러므로 복잡하고 정교한 지적활동을 하기 위해서는 옳고 많은 지식이 있어야하고 잘 정리된 추론기능이 있어야하겠다. 이러한 지적훈련은 확인된 이론의 기억과 경험을 통해 귀납적으로 일반화된 법칙을 통해서 보강된다. 가령 이 소년이 집에서 모든 식구들이 화장실에 가는 것을 보고
"사람은 모두 화장실에 간다."
는 이론을 세웠다면
"선생님은 사람이다."
라는 지식과 연결되어서
"선생님은 화장실에 간다." 라는 결론에 도달했을 것이다. 그러면 이 사실은 지금까지 알고 있던 사실과 다르므로 갈등이 생겨서 고민을 하게되고 이 갈등을 해소할 증거를 찾기위해 질문을 던지게 되는 것이다. 이와같은 지식활동을 (그림1)과 같이 표현해 볼 수 있겠다.

사람과 다른 점은?
 

(그림2) 전문가 시스템의 구조


그러면 이와같은 과정을 컴퓨터에서 수행하기 위한 전문가시스템의 구조는 어떠한가? (그림2)에서 보듯이 전문가시스템에는 지식베이스, 추론기관, 지식습득기관이 있다. 지식베이스에는 지식이 모여있고 추론기관은 지식베이스의 지식을 바탕으로 삼단논법등의 추론기능을 수행하며, 지식 습득기관은 정리된 이론이나 전문가들의 경험적 지식 등을 지식베이스에 축적시키는 기능을 수행한다. 그런데 지식습득기관은 완전히 자동화된 경우가 아직까지는 없으므로 지식공학자가 수동적으로 이 기능을 수행하게 된다. 지식공학자의 기능은 지식의 습득에 제한되지 않고 다음에 이야기할 지식의 표현방법과 추론방법의 선택도 포함된다.

그런데 지식을 어떤 형태로 표현해야 많은 종류의 지식을 표현할 수 있고 추론을 하기에 용이한가가 문제가 된다. 불행히도 어떤 한 방법으로 모든 종류의 문제를 표현할 수는 없지만 규칙형(Rule), 논리형(Logic), 프레임(Frame)형, 어의망(Semantic Net)과 같은 표현방법들이 널리 이용되고 있으며 이 방법들이 종합화도 활발히 추진되고 있다. (기초편 : 지식표현 참조) 이 중에서도 가장 널리 이용되고 있는 방법은 규칙형 지식이다. 동물을 식별하기 위한 지식으로 그 예를 들면

iF 송곳니가 날카롭고
AND 발톱이 날카로우면
THEN 육식동물이다.

이 예에서 보듯이 규칙은 조건부분과 결론부분으로 구성되어 있다. 또 다른 규칙을 보면
iF 육식동물이고

AND 얼룩무늬가 있고
AND 사람보다 더 크면
THEN 호랑이이다.

여기에서 육식동물이란 사실은 앞의 규칙의 조건을 만족하므로 규칙끼리 내용상으로 연결되어 있다. 지식베이스에는 이와 같은 형태의 많은 규칙이 저장되어 있다. 규칙형의 지식은 쉽게 표현이 가능하고 지식들이 모듈형식으로 구성되기 쉬운 것이 그 장점이다. 그러나 추론의 기능면에서는 논리형이나 프레임형이 더 효과적이다. 논리형이나 프레임형의 예는 기초편 '지식표현'을 참조하기 바란다.

지식의 표현과 추론이외에도 지식의 통제(Control) 기능은 매우 중요하다. 통제의 형태는 목표지향적 (Goal-Oriented)인 경우와 자료지향적(Data-Oriented)인 경우로 나눌 수 있다. 동물원의 예에서 어떤 동물(원숭이라고 가정하자)을 보며 이 동물의 종류를 식별하고자 할 때, 목표지향적인 경우에는 이 짐승이 사자인가 호랑이인가··· 방식으로 결론 가능한 동물( 이것이 이 경우에서의 목표에 해당됨)을 차례로 검토해 나가는 방식이다. 그 반대로 자료지향적 방식에서는 원숭이의 갈색을 보고 갈색을 가진 동물이 무엇이 있는가를 찾아내고 (사자 개 등) 그 다음으로 나무타기를 하는 동물이 무엇이 있는지를 물어보는 방식으로 자료위주로 찾아간다. 목적지향식은 흔히 Backward Chaining 이라고 부르고 자료지향적 방식은 Forward Chaining방식이라고 부른다.

연장이 좋아야

이제 이런 전문가시스템을 만들 수 있도록 마련된 도구가 무엇이 있는가 보자.

LISP나 PROLOG와 같은 인공지능 언어(기초편 : 인공지능언어 참조)들은 FORTRAN이나 Pascal과 같은 언어보다 훨씬 더 높은 수준의 명령이 가능하지만 곧 바로 전문가시스템을 만들 수 있게 되어 있는 것은 아니다. 그래서 (그림2)에서 지식만 뺀 종류의 소프트웨어, 소위 껍질(Shell)이라 불리우는 지식베이스관리시스템(KBMS : Knowledge Based Management System)을 이용하면 지식만 바꾸면 다른 종류의 전문가시스템이 된다고 말할 수 있다. 그러나 지식의 표현방법이나 추론방법은 KBMS에서 정해놓은 방식을 따라야 하므로 융통성이 부족한 것이 단점이다. 그렇지만 전문가시스템의 초기 모형(Prototype)을 만들어 보고 싶을 때는 KBMS가 손쉽게 사용될 수 있다. 또 문제의 특성에 맞게 KBMS가 선택되면 아주 효과적으로 이용될 수도 있다. 의료진단용으로 초기에 개발된 MYCIN이 초기의 지식을 빼고 기능을 좀 더 보강한 EMYCIN이란 KBMS로 발전된 것이 그 좋은 예이다. EMYCIN은 규칙형 지식과 목표지향적 통제에 적합한 문제이면 모두 처리해 줄 수 있는 것이다.

그 다음으로 중요한 기능은 지식 습득기관이다. 저자가 개발 중에 있는 법인세 관련 자문을 하는 전문가시스템은 수천개의 규칙을 갖게 되고 이 지식은 여러명의 세무전문가에 의해 제공될 예정이다. 뿐만 아니라 세무지식은 세법의 개정이나 새로운 예규 및 판례가 발생하면 수정 되어야한다. 이 경우 새로운 지식을 추가해야하는데 새로운 규칙이 기존의 수천개의 규칙과 어떤 관계를 가지고 있는 지를 수작업에 의해 판단한다는 것은 매우 비능률적일 뿐만 아니라 오류를 수반할 위험이 크다.

그러므로 지식습득기관은 작성된 규칙베이스가 문법적오류(Syntax Error)가 없는지, 새로이 추가될 규칙이 이미 규칙베이스 내에 존재하고 있지 않은지, 또는 기존의 규칙과 상반된 결론을 제시하는 것이 아닌 지 등의 사실을 자동적으로 파악해서 제시해 줄 수 있어야 한다.

그러면 지금까지 개발된 전문가시스템 중에 성공적인 사례를 몇가지 소개해 보자. 의료진단 목적으로는 MYCIN이 그 효시가 되어 많은 질병에 관한 진단과 처방을 하게 되었다. 우리나라에서도 한국전자통신 연구소(ETRI)에서 한의 전문가시스템OLDS를 개발 중에 있다. 근자에 일부 몰 지각한 의료인으로부터 환자들을 보호하기 위해서라도 의료진단목적의 전문가시스템이 많이 보급될 필요가 있는 것 같다.

MYCIN을 개발한 KBMS는 광맥탐사에도 이용되어 PROSPECTOR를 개발하게 되었는데 PROSPECTOR는 수억달러 가치의 몰리브덴 광맥을 발견하는 데 결정적 공을 세웠다. DENDRAL은 분자구조를 발견하는데 어떤 전문가보다 더 우수한 능력을 발휘할 만큼 지식이 축적되었으며 MACSYMA는 미분적분학을 부호적으로 처리하는 기능을 가지고 있다. MACSYMA같은 전문가시스템이 현재의 계산기처럼 널리 보급되면 미적분학을 어떻게 푸는가보다 어떻게 활용하는 가에 더 큰 비중을 두고 교육을 시켜야 할 때가 올 것이다.

전문가시스템은 대부분 특별한 교육 없이 사용될 수 있도록 대화방식으로 표현되어야 한다. 이를 위해 메뉴방식의 대화나, 아니면 자연어 방식의 대화를 제공해야 한다. 자연어처리는 초기에 기대했던 것보다 훨씬 더 어려운 것은 사실이나 제한된 응용범위내에서는 매우 효과적으로 그 기능을 수행하고 있다.

비행기표 예약을 도와 주는 GUS라는 시스템의 대화를 참고해보면 GUS는 캘리포니아의 비행기표 예약에 관한 한, 사람과 거의 같이 이해하고 답변해 줄 수 있는 능력이 있다. 그러나 상식적인 대화를 감당하기에는 너무나 많은 지식이 필요하므로 완전히 일반성이 있는 자연어처리 기능을 가진 시스템은 아직 존재하고 있지 못한 실정이다.

이 기사의 내용이 궁금하신가요?

기사 전문을 보시려면500(500원)이 필요합니다.

1986년 08월 과학동아 정보

  • 이재규

🎓️ 진로 추천

  • 컴퓨터공학
  • 정보·통신공학
  • 소프트웨어공학
이 기사를 읽은 분이 본
다른 인기기사는?