제 4장 지식표현과 추론 - bi.snu.ac.kr · 제4장. 지식표현과 추론 ... 4.3...

16
1 인공지능 강의 노트 (2017/4/3) 서울대학교 컴퓨터공학부 장병탁 (Version 0.9 수강생용. 외부에는 아직 공개하지 말아 주세요. Thanks.) 4 . 지식표현과 추론 4.1 논리기반 시스템 4.2 네트워크기반 시스템 4.3 프레임기반 시스템 4.4 규칙기반 시스템 4.5 사례기반 시스템 인간의 지능을 컴퓨터에 구현하기 위해서는 문제 해결에 사용하는 인간의 지식을 컴퓨터에 표현할 수 있어야한다. 여기서는 기호를 사용하여 인간의 지식을 명시적으로 표현하는 방법을 살펴본다. 지금까지 연구된 방법들을 논리기반 시스템, 네트워크기반 시스템, 프레임기반 시스템, 규칙기반 시스템, 사례기반 시스템의 다섯 가지로 분류하였다. 후에 연결주의와 머신러닝의 시대가 되면서 이들 기호기반의 명시적 지식 표현 방법들은 딥러닝을 통해서 데이터로부터 자동으로 학습되는 방법으로 전환되고 있다. 이번 장에서는 기본적인 기호적 지식표현 방법을 살펴보고, 머신러닝 기반의 자동 지식습득 방법들은 5-7 장에서 기술한다. 4.1 논리기반 시스템 기호 논리는 애매모호한 언어적인 지식을 형식화하여 명시적으로 기술하기 위한 좋은 도구이다. 인공지능은 연구 초기부터 명제 논리와 술어 논리 등 기호 논리에 기반하여 인간의 지식을 표현하고 추론하는 방법을 연구하였다. 구체적인 설명을 위해서 집안 일을 도와주는 홈로봇을 생각해 보자(그림 4.1). 로봇이 가정 환경에서 자연스럽게 사람을 도와주기 위해서는 상대하는 사람, 다루어야 할 물건, 집의 구조 등과 같은 환경에 대한 지식을 가질 필요가 있다. 이 지식을 술어논리(predicate logic)로 표현해 보기로 하자. 먼저, 개체들을 나타내기 위해서 다음과 같은 변수 기호들을 사용하자. o p: 사람(person) o o: 물체(object) o r: 방(room) o d: 장치(device) 로봇의 임무를 세가지로 나누어 청소(cleaning), 심부름(delivery), 엔터테인먼트 (entertainment)라고 하자. 로봇의 지식을 표현하는 술어문 P(x)는 모든 개체 x 에

Transcript of 제 4장 지식표현과 추론 - bi.snu.ac.kr · 제4장. 지식표현과 추론 ... 4.3...

Page 1: 제 4장 지식표현과 추론 - bi.snu.ac.kr · 제4장. 지식표현과 추론 ... 4.3 프레임기반 시스템 4.4 규칙기반 시스템 4.5 사례기반 시스템 인간의

  1  

인공지능 강의 노트 (2017/4/3) 서울대학교 컴퓨터공학부 장병탁 (Version 0.9 수강생용. 외부에는 아직 공개하지 말아 주세요. Thanks.) 제 4장 . 지식표현과 추론 4.1 논리기반 시스템 4.2 네트워크기반 시스템 4.3 프레임기반 시스템 4.4 규칙기반 시스템 4.5 사례기반 시스템 인간의 지능을 컴퓨터에 구현하기 위해서는 문제 해결에 사용하는 인간의 지식을

컴퓨터에 표현할 수 있어야한다. 여기서는 기호를 사용하여 인간의 지식을

명시적으로 표현하는 방법을 살펴본다. 지금까지 연구된 방법들을 논리기반

시스템, 네트워크기반 시스템, 프레임기반 시스템, 규칙기반 시스템, 사례기반

시스템의 다섯 가지로 분류하였다. 후에 연결주의와 머신러닝의 시대가 되면서 이들 기호기반의 명시적 지식 표현 방법들은 딥러닝을 통해서 데이터로부터

자동으로 학습되는 방법으로 전환되고 있다. 이번 장에서는 기본적인 기호적

지식표현 방법을 살펴보고, 머신러닝 기반의 자동 지식습득 방법들은 5-7 장에서

기술한다. 4.1 논리기반 시스템 기호 논리는 애매모호한 언어적인 지식을 형식화하여 명시적으로 기술하기 위한

좋은 도구이다. 인공지능은 연구 초기부터 명제 논리와 술어 논리 등 기호 논리에

기반하여 인간의 지식을 표현하고 추론하는 방법을 연구하였다. 구체적인 설명을

위해서 집안 일을 도와주는 홈로봇을 생각해 보자(그림 4.1). 로봇이 가정 환경에서 자연스럽게 사람을 도와주기 위해서는 상대하는 사람, 다루어야 할 물건,

집의 구조 등과 같은 환경에 대한 지식을 가질 필요가 있다. 이 지식을

술어논리(predicate logic)로 표현해 보기로 하자. 먼저, 개체들을 나타내기 위해서

다음과 같은 변수 기호들을 사용하자.

o p: 사람(person)

o o: 물체(object)

o r: 방(room)

o d: 장치(device)

로봇의 임무를 세가지로 나누어 청소(cleaning), 심부름(delivery), 엔터테인먼트

(entertainment)라고 하자. 로봇의 지식을 표현하는 술어문 P(x)는 모든 개체 x 에

Page 2: 제 4장 지식표현과 추론 - bi.snu.ac.kr · 제4장. 지식표현과 추론 ... 4.3 프레임기반 시스템 4.4 규칙기반 시스템 4.5 사례기반 시스템 인간의

  2  

대해서 “x 가 P 의 특성을 가진다”는 것이 참이다라는 명제를 표현하며,

술어식에서는 다음과 같은 문법을 사용하자.

P(x, y) :- Q(x), R(x), S(x, y) ó For all the entities x and y,

P(x, y) is true if (Q(x) and R(x) and S(x, y)) is true

그림 4.1 가사 도우미 인공지능 홈로봇

이제 홈로봇의 임무를 수행하기 위한 지식은 다음과 같이 술어 논리식들로 표현될

수 있다. 첫번째 술어식에서 오른쪽의 | 의 표시는 OR 를 의미한다.

// Home Robot Tasks

Robot_task(r, p, o, d) :- Cleaning(r) | Delivery(p, o) |

Entertain(p, d)

Cleaning(r) :- Rearrange_objects(r),

Vaccum_floor(r)

Delivery(p, o) :- Find_object(o), Fetch_object(o),

Bring_to_person(o, p)

Entertain(p, d) :- Find_person(p),

Turn_on_device(d),

Chat_with_person(d, p)

그림 4.2 논리기반 지식 표현 구조

Page 3: 제 4장 지식표현과 추론 - bi.snu.ac.kr · 제4장. 지식표현과 추론 ... 4.3 프레임기반 시스템 4.4 규칙기반 시스템 4.5 사례기반 시스템 인간의

  3  

위의 지식 표현은 다음 내용을 기술하고 있다. 방을 청소하는 작업 Cleaning(r)은

그 방에 있는 물건들을 정리하는 일 Rearrange_objects(r), 진공청소기로 바닥을

미는 일 Vaccum_floor(r)로 정의된다. 심부름을 하는 일 Delivery(p, o)은 물건을 찾는 행동 Find_object(o), 물건을 드는 행동 Fetch_object(o), 사람에게 가져다

주는 행동 Bring_to_person(o, p)으로 구성된다.

더 나아가서, 물건들을 정리하는 일은 다음과 같이 정돈된 상태의 방의 물건의

위치와 현재위치의 물건들의 위치가 일치할 때까지 물건을 들어서 정리하는

작업 Match(Ordered_objects(r), Current_objects(r))으로 기술될 수 있다. 여기서 Match 작업 자체는 정돈된 상태에서 어느 물건이 어디에 있었는지 등에 대한

정보를 가지고 있는 것을 가정하며 다시 더 상세하게 기술되어야 할 것이다.

// Cleaning Task

Rearrange_objects(r) :- Go_to_room(r), Match(Ordered_objects(r), Current_objects(r))

Go_to_room(r) :- <방해물을 피해서 목적지로 자율이동하는 모듈>

Match(Ordered_objects(r), Current_objects(r)) :- <정리정돈 작업 모듈>

그런데 방바닥을 청소하는 작업 Vaccum_floor(r)은 아무 때나 하는 것이 아니고 방바닥이 더럽고 Dirty_floor(r), 방에 사람이 없을 때 No_person_in_room(r)

해야할 것이다. 이를 표현하기 위해서는 다음과 같은 술어 논리문들을 쓸 수 있다.

Vaccum_floor(r) :- Dirty_floor(r),

No_person_in_room(r),

Vaccum(r) Dirty_floor(r) :- Many_objs_op_floor(r), Dirt_on_floor(r)

No_person_in_room(r) :- Not(Face_recognition(r))

Vaccum(r) :- <방바닥 진공청소 작업 모듈>

위와 같은 방법으로 심부름 작업은 물건 o 를 찾고(find), 들어서(fetch), 심부름 시킨 사람 p 에게 가져다 주는(bring) 일련의 행동으로 이루어진다.

// Delivery Task

Find_object(o) :- Recall_location(o),

Move_to(o), Recognize_object(o)

Fetch_object(o) :- …

Bring_to_person(o, p) :- …

Page 4: 제 4장 지식표현과 추론 - bi.snu.ac.kr · 제4장. 지식표현과 추론 ... 4.3 프레임기반 시스템 4.4 규칙기반 시스템 4.5 사례기반 시스템 인간의

  4  

술어논리로 지식을 표현하는 방식의 장점은 순차적으로 진행되는 작업에 대해서

추론을 수행할 수 있다는 것이다. 실제로 이러한 방법은 프로그래밍 언어 Prolog 로 구현되어 정리 증명(theorem proving)에 의한 추론 기술로

발전하였다. 정리 증명과 Prolog 에 대한 더 깊이있는 이해를 위해서는 다른 참고

문헌을 참고하기 바란다.

4.2 네트워크기반 시스템

시맨틱넷 또는 의미망은 노드(node)와 링크(link)로 구성된 네트워크로 관계적인

지식을 표현하는 방법이다. 네트워크의 노드는 객체, 개념, 또는 사건을 나타내며,

링크는 노드 사이의 관계 또는 속성을 표시한다. 노드와 링크는 모두 기호로

표지되어 있다. 관계를 표현하는 링크의 종류는 다음과 같이 다양하다.

o has

o is_a

o part_of

o used_for o generate

o like

링크들은 물건의 속성이나 소유 관계(has, is_a), 부분-전체 관계(part_of), 그리고

기타 다양한 인과 관계를 표현하기 위해서 정의될 수 있다. 홈로봇 도메인에서의 예를 통해서 다시 시맨틱넷을 살펴보자. 홈로봇이 집안

어른을 도와주기 위해서는 TV 와 같은 장치를 잘 다룰 수 있어야 할 것이다. 예를

들어, 할머니가 기분이 안 좋을 때는 재미있는 연속극을 틀어줄 수 있어야 할

것이다. 이러한 서비스를 위해서 로봇이, 할머니는 노인이고(Oma is an Elderly)

노인들은 연속극을 좋아한다는(Elderly likes Drama Series) 것을 알고, 연속극은 엔터테인먼트의 일종이고(Drama Series is an Entertainment), TV 를 통해서

방영될 수 있다는 것을 알며(TV is used for Entertainment), 할머니 집에 TV

있다는 것을 안다면(Oma has a TV) 이러한 지식은 다음과 같이 시맨틱넷으로

표현될 수 있다. 뿐만 아니라 이 시맨틱넷은 TV 가 엔터테인먼트에 사용되고

Display 와 Speaker 를 가지고 있어서 Image 과 Sound 를 생성할 수 있다는 지식도 표현하고 있다.

Page 5: 제 4장 지식표현과 추론 - bi.snu.ac.kr · 제4장. 지식표현과 추론 ... 4.3 프레임기반 시스템 4.4 규칙기반 시스템 4.5 사례기반 시스템 인간의

  5  

그림 4.23 시맨틱넷 지식 표현 구조

다음 그림은 시맨틱넷의 또 다른 예를 보여준다.

그림 4.4 시맨틱넷 지식 표현 구조의 예. 태양계와 물질에 대한 개념망.

시맨틱넷은 초기에 자연어로 된 지식을 표상하는 방법으로서 개발되었으나, 후에

하이퍼텍스트에서 사용하는 의미 링크로 발전하였으며 HTLM, XML 등에

영향을 주었다.

시맨틱넷의 특징은 노드와 링크가 기호로 표시된다는 것이다. 즉 고전적 인공지능의 기호기반 지식표현 방법의 일종이다. 이에 반해서 후에 5 장, 6 장,

7 장에서 다루게 될 현대적인 네트워크기반의 지식 표현 방식들은 링크에 수치가

부여되고 확률적인 관계를 표현하도록 연결론적이고 확률적인 모델이며 보통은

TV�

used_for�

Entertainment1 Speaker�Display�

has�

is_a� 1used_for�

Image�

Drama11Series�

has�Oma�

contains�like�

Sound�

1generate�

part_of�

contains�

Elderly�

is_a�

has�

Page 6: 제 4장 지식표현과 추론 - bi.snu.ac.kr · 제4장. 지식표현과 추론 ... 4.3 프레임기반 시스템 4.4 규칙기반 시스템 4.5 사례기반 시스템 인간의

  6  

기계학습을 통해서 데이터로부터 자동으로 만들어 진다. 특히 6 장에서 다루게 될

신경망 기반의 딥러닝 모델들과 7 장에서 다루게 될 베이지안넷 기반의 지식 표현

방식들은 고전 인공지능의 지식표현 방법과 현대 인공지능의 머신러닝을 결합하려는 좋은 시도들이며, 그 성과가 기대되는 유망한 연구 분야이다.

4.3 프레임기반 시스템

프레임은 하나의 개체를 여러개의 슬럿(slot)과 필러(filler)로 구성된 지식 표현 구조이다. 슬럿은 속성들을 나타내고 필러는 그 속성의 값을 나타낸다. 하나의

프레임은 아주 구체적인 개체를 나타낼 수도 있고 보다 일반적인 개념을 나타낼

수도 있다. 다음의 프레임은 책을 기술하는 프레임이다. 프레임 이름은 Book 이며,

세 개의 슬럿으로 구성되어 있다. 슬럿 명은 제목, 저자명, 출판년도이며 각각

해당하는 값을 가진다.

Frame: Book

Slot Filler

Title 딥러닝 개론

Author 장병탁

Year 2017

그림 4.5 프레임 지식 표현 구조

프레임은 그 슬럿의 필러로 다른 프레임을 가질 수 있어 프레임들은 서로

관련되어 있다. 하나의 프레임이 다른 프레임을 포함할 수 있기 때문에 두 개의

프레임간에 계층관계가 존재하고 상위 프레임의 내용이 하위 프레임에 전달되는

상속이 존재한다. 프레임이 가질 수 있는 슬럿의 값은 다음과 같이 세 종류로 구분된다.

o 디폴트 값: 주어지지 않을 경우 암묵적으로 취하는 값

o 상속 값: 상위 프레임으로부터 물려받은 값

o 구체적 값: 이 프레임에서 지정한 슬럿의 값

슬럿의 값은 범위나 조건으로 기술될 수도 있다.

다른 프레임의 예를 몇가지 더 살펴보기로 하자. 앞에서 시맨틱넷으로

기술했던 홈로봇 시나리오에서 나온 TV 를 프레임의 형태로 기술해 보자.

Frame: TV

Function: entertainment

Page 7: 제 4장 지식표현과 추론 - bi.snu.ac.kr · 제4장. 지식표현과 추론 ... 4.3 프레임기반 시스템 4.4 규칙기반 시스템 4.5 사례기반 시스템 인간의

  7  

Is_a: home appliance

Location: home

Color: black Actors: viewer, celebrities

Actions: watching, switching, turn-on, turn-off

Contains: display, speaker, switch, remote

Frame: Display Function: imaging

Location: front-facing

Shape: square

Color: black

Surface: flat Contains: glass, LCD

그림 4.6 프레임 지식표현 구조의 예. TV 와 Display 프레임.

대상의 개체는 어떤 기능에 사용되고, 관련되는 행위자가 누구이고, 어떤 사건들이 관여하고, 무슨 구성요소로 구성되어 있는지를 기술한다. 여기서 TV

프레임은 Display 프레임을 포함하고 있는 것을 알수 있다. 이는 위에서 이야기한

프레임들 간의 계층적 구조이며 상위 프레임의 지식이 하위 프레임으로 상속될 수

있다. 이 점에서 프레임은 객체지향 프로그래밍에서 클래스(class)와 매우 유사한

것을 알수 있다. 실제로 프레임에서의 상속(inheritance)의 개념은 후에 객체지향

프로그래밍과 객체지향 데이터베이스 시스템의 기반이 되었다.

Page 8: 제 4장 지식표현과 추론 - bi.snu.ac.kr · 제4장. 지식표현과 추론 ... 4.3 프레임기반 시스템 4.4 규칙기반 시스템 4.5 사례기반 시스템 인간의

  8  

그림 4.7 프레임 지식표현 구조의 예. 호텔 방 프레임.

그림 4.8 프레임 지식표현 구조의 예. 아파트 프레임.

Page 9: 제 4장 지식표현과 추론 - bi.snu.ac.kr · 제4장. 지식표현과 추론 ... 4.3 프레임기반 시스템 4.4 규칙기반 시스템 4.5 사례기반 시스템 인간의

  9  

프레임 지식 표현 구조는 많은 장점이 있다. 쉽게 이해할 수 있고, 새로운

특성과 관계를 갖는 슬럿을 새로이 도입할 수가 있다. 암묵적인 값을 지정하거나

생략된 변수값을 아는 것도 장점이다. 그러나 프레임 구조는 슬럿 필러에 대한 표준이 없고, 너무 일반적인 지식이며, 관련하여 체계적인 추론 메카니즘 등이

개발되어 있지 않은 것이 단점이다.

마지막으로 프레임의 발전된 형태는 객체들과 그 객체들을 다루는 행위 뿐만

아니라 사건을 기술하기도 한다. 다음의 식품점 쇼핑 프레임을 예를 들어 보자.

Frame: Grocery Shopping

EventType: shopping

Purpose: gettingGrocery

Location: groceryStore

Actors: buyer, manager, checkout-person SubEvents: gettingCart(A), selectingItems(B), paying(C)

TemporalRelations: precedes(A, B), precedes(B, C)

그림 4.9 프레임 지식표현 구조의 예. 식품점 쇼핑 프레임.

위의 구조는 사건타입이 쇼핑이며, 목적은 식품을 구매하는 것이며, 장소는

식품점, 관련자는 구매자, 매니저, 계산대직원 등이라는 것을 표현한다. 그리고

관련 사건들이 카트를 가져오고(A), 물건을 고르고(B), 계산한다(C)는 것이며

이들간에도 사건 A 는 B 보다 앞서고, 사건 B 는 C 보다 앞서는 순서로 전개된다는

것을 기술한다. 이러한 방법을 체계화한 것이 다음 절에서 살펴보는 스크립트이다.

스크립트 의미망은 지식의 단위를 표현하는데 집중한다. 프레임의 지식 단위간의 관계를

표현하는데 집중한다. 이들은 단어나 문장 수준에서의 지식 표현을 잘 다룬다.

그러나 이야기에서의 사건과 같이 문장 단위를 넘어서는 고차의 지식 구조는 잘

표현하지 못한다. 스크립트(script)는 사건에 대한 스키마로 볼 수 있다. 전형적인

일련의 사건들을 나타내는 지식 표현 방식이다. 스크립트는 사건의 시간적인 전개를 잘 기술한다. 상황을 이해하고 생길 사건을 기대에 기반하여 예측하는데

활용된다. 전형적인 예로는, 식당을 방문하기, 영화관 가기, 병원 진료 받기 등이다.

각각의 경우에 대해서 전형적인 역할이 주어진다.

식당: customer, waiter, cook) 영화관: ticket vender, patrons, refreshments

병원: doctor, nurse, patient

Page 10: 제 4장 지식표현과 추론 - bi.snu.ac.kr · 제4장. 지식표현과 추론 ... 4.3 프레임기반 시스템 4.4 규칙기반 시스템 4.5 사례기반 시스템 인간의

  10  

스크립트 지식 표현의 전형적인 활용 사례는 식당 방문이다. 식당에 가서

식사하는 시나리오를 다루기 위해서 여기에 관여하는 소품들(테이블, 메뉴 등), 이 상황에 관련되는 사람들(손님, 웨이터 등)을 열거한다.

Restaurant Script (Coffee Shop)

Props: tables, menu, food, check, money Opening conditions:

The customer is hungry.

The customer has money.

Roles: customer, waiter, cook, cashier, owner

Scenes: entering, ordering,

eating,

paying,

exiting

Results: The customer has less money. The owner has more money.

The customer is no longer hungry.

Sometimes the customer and the owner are pleased.

그림 4.10 스크립트 지식표현 구조.

스크립트의 핵심 구성 요소 중의 하나는 일어나는 전형적인 사건들의 순서를

기술해 주는 것이다. 식당의 경우 전형적으로 다음과 같은 순서로 사건이

발생된다.

o Entering: 식당에 들어간다. o Ordering: 식사를 주문한다

o Eating: 음식을 먹는다.

o Paying: 식사비를 지불한다.

o Exiting: 식당을 나온다.

뿐만 아니라, 스크립트는 식당을 들어갈 시점과 식사후 식당을 떠나는 시점에서의

변화된 상태도 기술하고 있다. 이는 기계에게 상식(commonsense knowledge)을

부여하려는 시도이다. 즉, 식당에 들어갈 때는 “손님은 배가 고프다”, “손님은

돈이 있다”는 것을 스크립트에 기술한다. 그리고 식당을 나올 때는 “손님은 돈이

Page 11: 제 4장 지식표현과 추론 - bi.snu.ac.kr · 제4장. 지식표현과 추론 ... 4.3 프레임기반 시스템 4.4 규칙기반 시스템 4.5 사례기반 시스템 인간의

  11  

줄어들었고”, “식당 주인은 돈이 늘었으며”, “손님과 주인 모두 즐거워 할 수

있다”는 것도 기술한다. 이는 식당을 나올 때는 손님들은 식사를 잘해서 배가

부르고, 밥값을 지불하였기 때문에 돈이 줄었고, 또한 서비스를 잘 받고 배가 부르니 기분이 좋아질 수 있다는 상식을 기술한다.

기계가 일상 생활에서 문맥을 이해하고 스토리를 이해하기 위해서는 상식을

가지는 것이 중요하다. 이는 인공지능 대화시스템이나 스토리 이해 시스템,

보고서 자동 작성 시스템 등에 특히 중요하다. 인공지능이 상식을 갖도록 하려는

시도는 인공지능 연구의 초기부터 있었다(McCarthy, Minsky). 그러나 아직은 도전 과제로 남아 있으며 이 책에서 이러한 시도를 계속해서 만나게 될 것이다.

4.4 규칙기반 시스템 규칙 기반 시스템은 (if <A>, then <B>) 형태의 생성 규칙(production rules)의

집합으로 지식을 표현하는 방법이다.

그림 4.11 규칙기반 지식 표현 구조.

IF the �traffic light� is green THEN the action is go

IF the �traffic light� is red THEN the action is stop

IF## #<antecedent>!THEN# #<consequent>

IF###�age#of#the#customer�#<#18#AND# #�cash#withdrawal�#>#1000#THEN##�signature#of#the#parent�#is#required#

!  Rela%on(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((IF# # #the# fuel#tank #is#empty########################################THEN #the#car#is#dead#!  Recommenda%on((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((IF# # #the#season#is#autumn#################################################

#AND# #the#sky#is#cloudy#########################################AND# #the#forecast#is#drizzle###############################

#####THEN# #the#advice#is# take#an#umbrella #!  Direc%ve ################################################################################# #IF# # #the#car#is#dead##############################################

#AND# #the# fuel#tank #is#empty############################THEN##the#ac?on#is# refuel#the#car

Rules(can(represent(rela%ons,(recommenda%ons,(direc%ves,(strategies(and(heuris%cs:(

Page 12: 제 4장 지식표현과 추론 - bi.snu.ac.kr · 제4장. 지식표현과 추론 ... 4.3 프레임기반 시스템 4.4 규칙기반 시스템 4.5 사례기반 시스템 인간의

  12  

그림 4.12 규칙기반 시스템의 추론 방식.

그림 4.13 규칙기반 전문가 시스템.

!  Strategy(((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((IF# # #the#car#is#dead##################################################THEN##the#ac1on#is# check#the#fuel#tank ;############################# # #step1#is#complete#############################################IF# # #step1#is#complete#########################################AND# #the# fuel#tank #is#full#################################THEN# #the#ac1on#is# check#the#ba?ery ;######################## # #step2#is#complete#

!  Heuris-c ################################################################################IF# # #the#spill#is#liquid#################################################AND# #the# spill#pH #<#6#############################################AND# #the# spill#smell #is#vinegar################################THEN##the# spill#material #is# ace1c#acid

Page 13: 제 4장 지식표현과 추론 - bi.snu.ac.kr · 제4장. 지식표현과 추론 ... 4.3 프레임기반 시스템 4.4 규칙기반 시스템 4.5 사례기반 시스템 인간의

  13  

그림 4.14 규칙기반 전문가 시스템의 전체 시스템 구조.

4.5 사례기반 시스템 사례기반 시스템은 과거의 경험 사례(case)를 그대로 기억함으로써 지식을

표현하는 방법이다. 과거의 문제를 해결하는데 사용했던 해를 변형하여 새로운 문제를 해결하는 것이 규칙을 정의하는 것 보다 사람에게는 쉽다는 사실에

기반한다. 과거의 사례를 저장하고 비슷한 케이스를 회상하여 변경하여 문제를

해결하기 때문에 사례기반 추론(case-based reasoning, CBR)이라고도 한다. 또한

사례를 계속 축적함으로써 경험에 의한 학습 효과가 있어서, 사례기반 학습의

변형으로도 볼 수 있다. 학습 관점에서는 머신러닝 알고리듬 중 k 최근법 분류기(k-nearest neighbor classifier)과 유사하다. 그러나 kNN 이 주로 수치화된

변수벡터로 사례를 기술하는데 반해서 CBR 은 상당히 표현력이 뛰어난 기호

기반의 사례 표현 방식을 취한다.

다음 그림은 프레임 구조로 기술된 사례의 예시이다. 자동차 고장 진단

문제(정면등이 켜지지 않는 문제)에 대해서 차종, 년식, 배터리, 등의 상태, 스위치

Page 14: 제 4장 지식표현과 추론 - bi.snu.ac.kr · 제4장. 지식표현과 추론 ... 4.3 프레임기반 시스템 4.4 규칙기반 시스템 4.5 사례기반 시스템 인간의

  14  

상태 등을 기술한 후, 그 해로서 진단할 것(퓨즈 고장), 수리할 것(퓨즈 교체)를

제시한다.

그림 4.15 사례기반 지식 표현 구조

CBR 은 다음의 4R 과정을 통해서 문제를 해결하고 학습한다.

o 검색(retrieve): 유사한 사례(case)를 찾는다. 과거 사례와 현재 사례의

기술에 대한 유사도(similarity) 측정을 사용한다. o 재사용(reuse): 현재 사례를 해결에 과거 사례를 사용한다. 과거의

지식을 현재의 문제에 적응시킨다(adaptation).

o 수정(revise): 해를 생성한다. 그리고 새로운 실제 상황에서 해를

평가한다(evaluation).

o 유지(retain): 올바른 해를 저장한다. 미래의 재사용을 위해서 사례를 학습한다(learning).

Page 15: 제 4장 지식표현과 추론 - bi.snu.ac.kr · 제4장. 지식표현과 추론 ... 4.3 프레임기반 시스템 4.4 규칙기반 시스템 4.5 사례기반 시스템 인간의

  15  

그림 4.16 사례기반 시스템의 문제해결 사이클. 추론과 학습.

사례를 표현하기 위해서는 어떤 측면을 문제와 해로 기술할 지를 결정하여야

한다. 보통은 다음의 방법들이 사용된다.

o 특징-값의 리스트 (특징벡터기반 시스템)

o 객체지향 표현 (프레임기반 시스템)

o 그래프 표현 (네트워크기반 시스템)

즉 CBR 은 다루는 도메인과 과제의 특성에 따라서 표현방법을 유연하게

선택한다. 앞에서 다룬 다른 지식표현 방법론들이 개발해 온 다양한 방식을

수용한다. CBR 은 과거의 사례를 재사용하기 위해서 새로 작성, 기존것 변형,

해의 유도의 방식을 사용한다.

o 작성(composition): 여러 해를 결합하여 최상의 해를 만든다.

o 변환(transformation): 과거 사례의 해를 변형하여 사용한다.

o 유도(derivation): 해를 도출하는 과정을 적용한다.

CBR 의 장점은 유지가 쉽고 사용함에 따라서 향상되고(학습), 일반 지식과 학습된 지식을 결합이 용이하며, 사용된 지식이 이해가 쉽다는 점이다. 지식 표현

관점에서 고려할 사항들은 i) 무엇을 저장할지를 결정해야 하고, ii) 구조를

선택하고, iii) 기억을 조직화하는 방법, iv) 일반적인 지식 등이다.

사례기반 추론 방법은 안내 데스크나 진단 문제와 과거의 유사한 상황을

고려하는 의사 결정 문제 등에 잘 활용될 수 있다.

참고 문헌.

Page 16: 제 4장 지식표현과 추론 - bi.snu.ac.kr · 제4장. 지식표현과 추론 ... 4.3 프레임기반 시스템 4.4 규칙기반 시스템 4.5 사례기반 시스템 인간의

  16  

Quillian, M. R., Semantic Memories, In M. M. Minsky, editor, Semantic Information Processing, pages 216-270. Cambridge, MA: MIT Press, 1968 Minsky, M., A Framework for Representing Knowledge, In: The Psychology of Computer Vision, P. Winston (Ed.), McGraw-Hill, 1975