Fuzzy Expert System 의 개념

 

전문가시스템에 있어서 필수불가결한 것은 fuzziness 의 취급이다. 바로 전문가의 능력은 애매한 정보의 처리, 추론 능력이라고 말할수 있다. 실제의 fuzzy control는 초기의 전문가시스템의 성공예이었고 지금은 실용화를 지향하는 전문가시스템의 대다수가 fuzzy expert system으로 구축되는 시대가 되었다.

1950 연대의 중반에 시작하여 1960 연대에 각광을 받은 AI 의 연구는 가까운 장래에 인간과 비슷한 지능을 가진 기계의 실현을 시사했다. 그러나 곧 그것이 꿈에 지나지 않는다는 것을 알게되었고 침체에 빠졌다. 당시의 AI 의 연구는 비현실적인 가정하에, 예를들어 형식논리를 이용한다든가, 퍼즐과 게임을 tree search에 의하여 계산기를 이용하여 푸는 등의 연구가 많았다. 어떤 퍼즐 프로그램은 그퍼즐의 특수한 구조에 의거하는 것이라 다른 퍼즐을 푸는 것은 할수 없었다. 인간이 하는 것과 같이 하는 것이 아니고 계산기에 맞춘 수리적 방법으로 문제를 푸는 것이고 GPS (general problem solver) 등도 만들어 졌지만 현실문제의 해결과는 멀었다. 물론 퍼즐의 연구자들은 그 연구가 언젠가는 일반화되어 AI 의 문제를 해결하는 계기가 될 것이라 생각은 했겠지만 그 이상은 연구가 진행되지 못하였다. 즉 기계와 인간의 본질적인 차이의 인식에 부족했던 것도 한 원인이다.

1970 연대에 시작된 지식공학의 출현 즉 전문가시스템의 출현은 AI 을 다시 활성화 시키었다. DENDRAL 과 MYCIN 이 그예이다. 와다나베는 다음과 같이 지적하였다.  AI 의 큰 문제로서 기계에 의한 귀납추론의 실현이라는 과제가 있다. 귀납 (induction) 이라는 것은 유한 개의 데이터로부터 무한 개의 데이터를 지배하는 법칙을 발견하는 것이다. 그러나 이것은 원리적으로 가능하지 않다. 인간의 귀납추론의 결과라는 것은 획일적인 것이 아니라 멋대로의 생각이고 애매한 것이다. 귀납을 논리적으로 기계에 행하게 하는 것이라는 AI 의 환상을 버리고 인간의 흉내를 내는 기계 즉 전문가시스템을 만드는 것으로 방향전환을 하게되었다.

1990 연대를 전후해서 전문가시스템의 연구는 한계를 맞이하게 되었다. AI 의 침체가 다시 시작되었다고 할 수 있다.이런 상황에서 AI 의 연구를 구제하는 방법론으로서 fuzzy 이론이 대두되고 전문가시스템에 응용되었다. fuzzy 의 응용은 1970 연대의 전반에 제어분야의 fuzzy control 로 시작되었다. fuzzy control 은 제어에 있어서의 전문가시스템이라고 말할수 있으며 실제로 전문가시스템의 초기의 성공예는 fuzzy control 이었다고 말해도 과언이 아니다. IF THEN 형식으로 알고리즘을 기술한다는 방법을 Zadeh 는 1968년에 fuzzy 알고리즘 이라는 논문에 서술하고 있다. 통상 전문가시스템에서는 fuzziness를 취급하고 있지 않지만 Zadeh 는 언어적으로 애매하게 알고리즘을 기술하는 것으로 전문가시스템의 본질을 발견해내어 상당한 진전이 이뤄지게 되었다.

전문가시스템에서 MYCIN에서와 같은 certainty factor라는 형태로 rule과 fact가 불확실성을 표현하고 있다. MYCIN 에 있어서의 불확실성의 연산은 Bayes 확률의 방식에 의거한 것이다. 현재에도 확률적 추론이 전문가시스템의 방법으로서 연구되고 있지만 fuzzy론에서는 expert 의 본질은 확률적인 것이 아니라 fuzzy 라는 것이다. 1980 연대에 전문가시스템에서는 Demster Shafer 이론이 불확실성을 처리하는 방법으로서 자주 사용되게 되었다. 즉 확률값을 1 의 수치가 아니라 구간으로 나타내는 것이다. 이미 확률값에 얽매어 있지 않기 때문에 전문가시스템의 불확실성을 MYCIN 류의 certainty factor보다도 자연스럽게 나타낼수 있다.

통상 전문가시스템에서는 불확실성이라고 해도 결국 rule과 fact를 밖으로부터 평가한 것에 지나지 않는다. 즉 논리학의 진리치의 부류의 방식이다. 예로 "오늘 아침 잔비가 뿌렸다" 라는 명제의 확실성이라든가 진위의 정도를 외적으로 생각하는 것이다. 거기서 "아침", "잔비", "뿌렸다" 라는 의미의 애매함은 내적으로 문제가 되지 않는다. 전문가시스템의 본질적인 불확실성은 사실 expert가 조작하는 개념, 언어의 애매한 것에 있다. 이러한 불확실성은 명제를 밖이 아니라 명제의 안에 들어가지 않으면 취급할수 없다. "아침" 이란 구체적으로 몇시를 의미하는가? 라는 문제가 문제로 되어야 하는 것이다.

전문가시스템은 전문가의 지식의 표현, 지식의 이용방법을 모의하는 것인이상, 효과적인 구축방법론은 전문가가 하는 방법을 잘 받아들여야 한다는 것이다. 즉 그것은 전문가가 지식을 집약하는 방법, 생각하는 방법이고 결국은 인간의 사고방법인 것이다. 전문가의 방식은 어떤 특수한 문제해결을 위한 집약, 정리된 것이라고 말할수 있지만, 거기는 역시 인간의 사고과정의 축도가 보여진다. 인간의 사고과정은 불안정한 정보의 취득과 그 조작, 근사적 추론, 복잡한 대상의 평가, 불확실한 상황에서의 판단과 의사결정에서의 여러 모습에 의해 특징지어진다. 인간은 이러한 것들을 자연어를 통하여 말하고 실행한다.

기계에 비해 전문가의 사고가 우수하다고 하면 첫번째로 전문가가 언어를 사용하고 있기 때문이다. x, y 가 불완전한 데이터인 경우 " x 가 약 2 일 때 y 는 약 100", "x 가 작을 때 y 는 크다" 와 같이 불안정한 데이터를 표현한다. 즉 fuzzy이론의 주장은 언어의 본질은 논리성이라기 보다는 오히려 그 애매성, fuzziness에 있다는 것이다.전문가의 사고 모델을 만들 때 사고에 있어서의 언어의 역할, 언어의 본질을 무시할수는 없다. fuzzy이론은 언어, 개념의 애매함을 취급함으로써 전문가의 본질에 다가가는 방법을 제공한다. 애매한 언어에 의한 인간의 사고과정에 혹시 논리라고 부르는것이 있다면 그것은 역시 애매한 논리일 것이다. fuzzy논리는 fuzziness와 논리를 조합시켜 인간의 사고 모델을 위한 기술언어로 되는 것을 목표로 하고 있다.

fuzzy expert system은 fuzzy논리를 이용하여 보다 효과적이고 실용적임에 틀림이 없을 것이다. fuzzy이론을 사용하지 않은 전문가시스템이 지금은 주류인 것 같으나 실제 제작되는 전문가시스템 2000건이 있다면 실제 사용되는 것은 2 % 에 불과하여 실용적인 면에서 보자면 fuzzy expert system의 수는 많아질 것이다.

(박민용 1990)