안녕하세요
오늘은 인공지능 시스템에서 지식을 어떻게 표현하는지에 대해 알아보겠습니다. 지능을 발달시키기 위해서는 지식을 습득해야 하는데 우리가 알고 있는 일반 지식의 형태인지 아니면 컴퓨터가 이해할 수 있도록 변형된 형태인지 알아보겠습니다.
컴퓨터가 관련 지식을 이해하기 위해서는 효율적으로 이해할 수 있는 형태인 '형식 언어'로 표현되어야 합니다. 이러한 형태로 표현된 언어들이 모여서 하나의 '지식베이스'를 구축합니다.
지식들을 표현하는 방식에는 다음과 같은 방식이 있습니다.
'논리적 지식 표현'은 형식적인 논리식을 이용한 지식베이스 구축하며, 명제논리와 술어논리 등이 있습니다.
'절차적 지식 표현'은 지식을 문제 해결을 위해 필요한 명령어들의 집합으로 표현하는 방법입니다.
'망 표현 방식'은 지식을 그래프 형태로 표현합니다. 의미망 등이 있습니다.
'구조적 지식 표현'은 망 표현 방식을 확장하여 노드들이 다양한 데이터 구조를 갖을 수 있도록 한 것입니다. 프레임과 객체 등이 있습니다.
이번에는 이러한 지식을 효과적으로 표현하는 기법에 대해 알아보겠습니다.
'논리적 지식 표현' 중 '명제 논리'는 참이나 거짓 중 하나를 가질 수 있는 명제 문장을 기반으로 추론할 수 있는 형식적 논리 체계입니다. 그러나 이 논리 기법은 어떤 내용이 참이고, 거짓인지 문장 구성에 대한 내용을 포함하고 있지 않습니다. 이러한 단점을 해결하는 기법이 '술어 논리'입니다. 문장 내의 개별 요소를 분리하여 추출할 수 있을 뿐만 아니라 변수를 사용할 수 있어 여러 개의 문장을 하나로 간결하게 표현할 수 있습니다.
'프레임'은 나중에 객체 지향 개념으로 발전한 기법으로 , 정적인 자료 구조로 볼 수 있습니다. 특정 객체나 개념에 대한 모든 정보를 표시할 수 있고, 여러 개에 대해서는 관계를 설정할수도 있습니다. 프레임은 '상속'이라는 개념으로 자신의 프레임에 없는 정보를 상위 프레임에서 가져오는 방법을 활용할 수 있습니다.
'의미망'은 의미 정보의 표현을 위해 각종 개념과 그 사이의 관계를 각각의 레이블로 나타낸 네트워크로 그래프 형태로 지식을 표현합니다. 그래프 내에는 개념을 표현하는 '노드', 화살표로 개념 간의 관계를 나타내는 '아크'가 있습니다. 노드와 노드 간의 관계를 잘 표현할 수 있고 지식이 어떻게 조직되어 있는지를 그래프 형태로 보여주어 사람이 쉽게 알아 볼 수 있습니다.
'개념그래프'는 각 노드나 관계가 무엇을 의미하는지 알 수 있는 의미 체계를 갖춘 일종의 의미망입니다. 개념그래프에는 노드들이 아크로 연결된 유한이분그래프로 표현되며, 개념을 표현하는 '개념 노드'와 개념노드 간의 관계를 표현하는 '관계노드'가 있습니다. 표현 형태는 그래프 형태의 'DF(Dispaly Form)','선형 표현(Linear Form)','CGIF(Conceptual Graph Interchange Format)이 있습니다. DF나 LF는 사람과 사람, 사람과 기계 간의 의사전달을 위하여 설계된 것이고, CGIF는 기계 간의 정보교환을 위해 간단한 구조로 만들어졌습니다.
많은 양의 지식을 체계적으로 표현하기 위해 필요한 '계층(Ontology)'을 구성할 필요가 있는데, 이를 '유형 계층(Type Hierarchy)라고 합니다.
'규범그래프'는 각 개념노드에 선택 제약을 부과하여 생성된 개념그래프입니다. 규범그래프 형성 규칙에 의해 생성될 수 있습니다. 첫 번째 '복사', '제한', '결합', '단순화' 입니다.
'삼차원 개념그래프'는 이차원이 아닌 삼차원 형태의 그래프로 개념을 표현하는 개념스택과 개념스택 간의 관계를 표현하는 관계노드들이 아크로 연결된 유한 이분 그래프입니다. 개념스택이란 복수 개의 개념을 한 곳에 표현 할 수 있는 삼차원 개념그래프 상의 노드를 말합니다.
'스크립트'는 특정 상황에서 일반적으로 일어나는 사건의 순서를 기록합니다. 스크립트에 기록된 지식을 활용하면 어떤 상황에서 다음에 일어날 일을 쉽게 예측할 수 있습니다. 그 사건을 구성하는 요소로 '종류', '관련된 사람', '관련된 물건', '전제조건', '장면', '결과' 가 있습니다.
'규칙'은 조건과 행동을 IF-THEN 형태로 구성하여 표현하는 기법입니다. 어떤 조건이 만족되면 그에 따른 행동을 수행하는 것입니다. 여러 규칙들을 지식베이스에 저장하여 새로운 사실을 얻어 문제를 해결하는 시스템을 '규칙기반 시스템'이라고 합니다.
이를 위한 규칙을 위한 규칙이 있는데, 첫 번째는 우선순위가 가장 높은 규칙을 선택하는 것입니다. 두 번째는 가장 세분화 된 규칙을 선택하고, 세 번째는 가장 새롭게 만들어진 규칙이나 이전에 수행되지 않았던 규칙을 선택합니다.
'지식 규칙'은 사실을 설명하는 규칙, '추론이나 규칙에 대한 규칙(or 메타규칙)' 등이 있습니다.
'다중 지식표현'은 여러 가지 지식 표현 기법을 동시에 사용하는 방법입니다. 지식 습득과 검색, 추론 등을 잘 할 수 있도록 만들어야 하기 때문에 여러 가지 조건을 충족해야 합니다. '단일성', '자연스러움', '이해의 용이성', '단위적 조합성', '융통성', '지식검색의 효율성'이 그 조건입니다.
인공지능은 많은 양의 지식 데이터를 여러가지 기법을 활용하여 이해하고 습득한 뒤 새로운 지식을 만드는 과정이라고 볼 수 있습니다. 지식에 대한 개념 이해와 함께 다양한 기법을 이해함으로써 인간의 자연 지능에 대한 정리와 함께 그 과정을 이해할 수 있습니다. 모두 수학적, 논리적, 통계학적 개념이 기본이지만 이렇게 구성한 인공지능은 우리의 더 나은 삶과 효율적인 경제 활동을 위해 활용되기 때문에 목적이 무엇인지를 분명히 알 필요가 있습니다.
다음에는 문제 해결 방법에 대해 알아보도록 하겠습니다.
감사합니다.
'AI' 카테고리의 다른 글
[인공지능 입문]AI 오픈 소스 (0) | 2020.04.30 |
---|---|
[인공지능 입문]탐색 알고리즘 (0) | 2020.04.23 |
[AI 입문]인공지능의 분류 (0) | 2020.03.25 |
[AI 입문]인공지능의 정의와 역사 (0) | 2020.03.23 |
미래 기술 이해를 위한 개발자 입문 (0) | 2020.03.19 |