Go

[Algorithms] 지식 표현(Knowledge Representation)

구루싸 2022. 12. 6. 15:40
반응형
SMALL

지식 표현은 단순한 데이터 집합을 지식으로 이용 가능한 형식으로 정리하는 방법이며, 대규모 데이터 처리에 유용한 기술이다. 지식과 단순한 데이터의 차이 중 하나는 각 구성 요소 사이의 관계가 이용 가능한 형식으로 표현되어 있는지 여부다. 

 

의미 네트워크(Semantic Network)는 사물의 관계를 네트워크 형식으로 표현하는 구조다. 

프레임(Frame)은 어떤 개념과 관련한 지식을 한 덩어리로 다루기 위한 지식 표현이다. 일반적으로 프레임은 클래스 프레임과 인스턴스 프레임으로 분류된다. 클래스 프레임은 어떤 개념의 집합에 공통 성질을 표현하기 위한 프레임이고, 인스턴스 프레임은 특정 개념에 속하는 구체적인 각각의 사물을 표현하기 위한 프레임이다. 각 프레임은 속성 및 다른 프레임과의 관계를 기술하는 슬롯을 포함한다. 프레임에는 어떤 조건이 만족되었을 때 동작하는 절차를 추가할 수 있다. 예를 들어, 프레임이 새로 작성되었을 때 기본값을 설정하거나 어떤 프레임의 슬롯 값이 변경되면 연동해서 다른 프레임의 슬롯 값을 수정하는 절차 등을 추가할 수 있다. 단, 이런 절차를 무제한으로 추가하면 프레임의 이용 결과를 명확하게 예상하기 어렵고, 프레임이 표현하는 지식 전체의 정합성을 유지하기 곤란해진다. 

 

의미 네트워크, 프레임을 이용해서 질의 응답 프로그램을 만들어 보자.

질의 응답 프로그램 알고리즘

1. 의미 네트워크 초기화

아래 과정을 반복

2. 'A는 B인가?'라는 질문을 읽어옴

3. A가 의미 네트워크에 포함되지 않으면 종료

4. isa 링크를 따라가 B를 찾음

5. B를 찾았다면 'A는 B이다'라고 출력하고, 찾지 못했다면 'A는 B가 아니다'라고 출력함

 

지식 중에는 해당 지식을 구성하는 각 요소의 순서가 정해진 것도 있다. 예를 들어, 일련의 처리 절차를 기술한 지식 등은 시간의 경과에 따라 구체적인 절차가 나열된다. 이런 시계열적 지식을 프레임과 같은 자료 구조로 표현하는 지식 표현 방법을 스크립트(Script)라고 한다. 지식 구성 요소를 청크(Chunk)라고 한다.

 

의미 네트워크, 프레임, 스크립트는 모두 표현의 자유도가 매우 높은 지식 표현이며, 다양한 표현 형식이 가능하다. 표현의 자유도가 높다는 것은 좋은 일지만 지식 표현을 이용해 처리 프로그램을 작성하는 입장에서는 응용 사례마다 지식 표현 형식이 달라 각각 다른 처리를 하는 프로그램이 필요해진다. 처리 프로그램이 범용성을 가지려면 더 규격화된 지식 표현을 이용하는 방법이 있는데 바로 프로덕션 룰(Production Rule)이다. 프로덕션 룰 생성 규칙은 아래 형식을 말한다.

if P then Q

이 형식은 '만약 P라는 조건을 만족하면 Q가 된다'는 의미를 나타낸다. 여기서 P는 조건부라고 하고, 특정 프로덕션 룰의 선택 조건을 기술한다. 반면에 Q는 결론부라고 하며, 규칙이 선택되었을 때 수행할 동작과 조건의 변화 등을 기술한다. 어떤 질문을 프로덕션 룰에 차례로 적용해 가는 과정을 추론(Inference)라고 하고, 질문에서 주어진 조건을 표 형식 워킹 메모리(Working Memory)로 저장한다. 추론 중에 워킹 메모리에서 일치하는 조건이 나타날 경우 발화했다고 표현하고 결론부에 추가된다. 이처럼 프로덕션 룰을 사용하여 지식을 표현하면 지식에 관한 추론을 할 수 있고, 프로덕션 룰과 추론을 위한 기구인 추론 엔진을 조합한 것이 프로덕션 시스템이다. 

반응형
LIST