전문가시스템과 일반 프로그램과의 차이

 

인공지능의 기법과 응용 : 김재희, 교학사, 1988, Page 261~264 

 

 

전문가시스템이란 전문지식의 특정 영역에 대한 전문가의 지식을 요약하고 그 영역 안에서 지적인 판단을 내릴 수 있는 Software Package이다. 전문가시스템을 정의하는 다른 방법은, 이를 보통의 프로그램과 비교하는 것이다. 가장 기본적인 차이는, 보통의 프로그램이 data 를 처리하는데 반하여 전문가시스템은 knowledge 를 처리하는 것이다.

일반 프로그램

전문가 시스템

    데이터를 표현하고 사용

    알고리즘을 사용

    반복적인 처리

    데이터베이스를 처리

    지식을 표현하고 사용

    휴리스틱을 사용

    추론적인 처리

    지식베이스

전문가시스템의 특징

1.  전문지식을 취급한다.(Knowledge)

따라서 관련 분야의 전문가와 같은 정도의 성과를 발휘해야 하며 또한  빠르게 좋은 해를 찾아내기 위해 효율적으로 구성되어야 한다. 또한 인간과 같이 넓고 깊은 지식을 제공할 수 있어야 한다.
실제에 있어서는 관련분야에 2년 정도 종사한 전문가의 지식구현에 만족하는 경향이며 또한 정확한 해를 구하기 위하여 문제를 축소 시켜 좁은 부분에서 정확한 해를 추구하는 경향이다.

2. 심볼에 의한 추론을 행한다.(Symbol)

전문가뿐 아니라 전문가시스템의 User들은 인간이기 때문에 인간과의Interactive한 지식교환을 하려면 인간의 애매한 표현들을 정량화하여 전문가 시스템에 구현하여 불확실성을 줄여 나가야 한다. 이러한 심볼 표현에 의한 불확실성은 Certainty Factor나 Fuzzy 이론으로써 구현하게 된다.

3. 휴리스틱을 이용한다.(Heuristic)

“휴리스틱”의 의미는 “자기 힘으로 알아내는 자기 발견적인”의 의미이다. 따라서 항상 옳은 것은 아니지만 대부분의 경우에 옳은 정보를 제공한다.  
Graph Search 과정에서의 넓이우선,깊이우선 탐색은 목표의 위치에 무관한 Blind Search 이다. 그러나 휴리스틱 Search는 가장 가능성이 있는 목표의 위치에 대하여 탐색을 행하여 불필요한 자원낭비를 줄이게 된다.
 이때 가장 가능성이 있는 위치를 찾아내기 위하여 전문가의 경험에 의한  규칙(Rules of Thumb)을 이용하거나 또는 각 단계에서의 바람직한 정도를 평가하기 위한 척도로써 Evaluation Function을 사용하기도 한다.

4. 자기지식을 사용한다.(Metaknowledge)

이는 시스템이 갖는 자신의 사고에 관한 지식을 말한다. 이는 지식에 대한 지식을 의미한다. “이순신 장군의 신발은 몇 문인가”하는 질문에 대하여 인간은 쉽게 “모른다”는 답을 하지만 컴퓨터는 자기의 지식을 모두 검색한 후에야 답을 얻는다.
그러나 전문가시스템은 Rule로써 문제의 성격을 파악하여 결론의 정확성,일관성,가능성들을 검토하여 추론한다. 이를 위해서 explanation facility를 가지게 되며 Why  (왜 전문가시스템이 그런 질문을 하는가를 보여준다), How  (어떻게 해서 전문가시스템이 그런 결론을 내렸는가를 보여준다) 등의 자문에 응하게 된다.  

 

특징

conventional program

expert system

제어 (control by...)

statement order

inference engine

control and data

implicit integration

explicit separation

control strength

strong

weak

solution by..

algorithm

rules and inference

solution search

small or none

large

problem solving

algorithm is correct

rules

input

assumed correct

incomplete, incorrect

unexpected input

difficult to deal with

very responsive

output

always correct

varies with problem

explanation

none

usually

applications

numeric, file, and text

symbolic reasoning

execution

generally sequential

opportunistic rules

program design

structured design

little or no structure

modifiability

difficult

reasonable

expansion

done in major jumps

incremental