380 likes | 760 Views
2. 지식표현. 실세계의 문제를 컴퓨터를 사용하여 지능적으로 해결하기 위해서는 많은 양의 지식을 필요로 한다 . 이러한 지식을 어떻게 효율적으로 표현 하고 활용할 것인가 하는 것은 인공지능에서 다루는 중요한 연구분야중의 하나이다. 2.1 형식적 지식표현의 필요성. 컴퓨터가 지식을 이용하기 위해서는 필요한 지식이 컴퓨터가 효율적으로 이해할 수 있는 형식언어 (Formal Language) 로 기술되어야 한다 .
E N D
2. 지식표현 • 실세계의 문제를 컴퓨터를 사용하여 지능적으로 해결하기 위해서는 많은 양의 지식을 필요로 한다. • 이러한 지식을 어떻게 효율적으로 표현하고 활용할 것인가 하는 것은 인공지능에서 다루는 중요한 연구분야중의 하나이다.
2.1 형식적 지식표현의 필요성 • 컴퓨터가 지식을 이용하기 위해서는 필요한 지식이 컴퓨터가 효율적으로 이해할 수 있는 형식언어(Formal Language)로 기술되어야 한다. • 지식을 컴퓨터에 표현하는데 사용되는 형식언어를 지식표현언어(Knowledge Representation Language)라고 한다. • 좋은 지식표현언어는 지식베이스의 구축을 용이하게 하지만 부적절한 지식표현 언어를 사용하는 경우에는 지식베이스의 구축을 어렵게 한다.
2.1.1 지식표현 방식 • 논리적 지식표현 방식 • 예) 명제논리, 술어논리, Temporal Logic, Modal Logic등 • 절차적 지식표현 방식 • 망을 이용한 지식표현 방식 • 예) 의미망(Semantic Network) • 구조적 지식표현 방식 • 예) 프레임, 객체(Object)
2.1.2 지식표현시 고려 사항 • 어떤 객체와 관계를 어떻게 정확히 표현할 것인지? • 예) 술어논리 표현에서 has-color (car1, red) 일 때 car2 가 더 붉다(red) 는 것을 어떻게 표현할 것인가? • 메타지식은 어떻게 표현할 것인가? • 예) A는 B가 C를 한국인이라고 알고 있는 것을 믿는다. • 지식베이스 내에서 클래스의 계층구조를 어떻게 만들 것인가? • 예) 모든 새는 날 수 있다. 팽귄은 새다. 그러면 팽귄은 날 수 있나? • 기본 값과 예외는 어떻게 표현할 것인가? • 예) 모든 새는 날 수 있다. 팽귄처럼 예외인 경우만 특수 표시를 하는 것이 효율적임.
2.2 지식표현 기법 • 논리 • 프레임 • 의미망 • 개념그래프 • 삼차원 개념그래프 • 스크립트 • 규칙 • 다중 지식표현
2.2.1 논리 • 명제논리 • 참이나 거짓중의 하나를 값으로 갖을 수 있는 명제문장을 기반으로 추론을 수행할 수 있도록 하는 형식적 논리 체계이다 • 술어논리 • 변수를 사용할 수 있다. • 한정자(Quantifier)를 사용할 수 있다. • 논리에 대한 자세한 사항은 4장에서 다루기로 한다.
2.2.2 프레임 • 각 프레임은 (Slot, Filler)쌍으로 구성되어 있다.
의미망(Semantic Network) • 의미망은 노드와 노드간의 관계를 잘 표현할 수 있고 지식이 어떻게 조직 되어 있는지를 그래프 형태로 보여주어 사람이 쉽게 알아 볼 수 있다. • 하지만 각 노드나 관계가 무엇을 의미하는지 명확히 밝힐 수 있는 의미체계(Semantics)가 부족하다.
2.2.4 개념그래프 • 각 노드나 관계가 무엇을 의미하는지 명확히 밝힐 수 있는 의미체계(Semantics)가 잘 갖추어진 일종의 의미망. • 노드들이 아크로 연결된 유한 이분 그래프.
두 가지 형태의 노드 • 개념노드(Concept Node) • 개념노드는 그래프 상에서 사각형으로 표시된다. • 관계노드(Relation Node) • 관계노드는 그래프 상에서 원으로 표시된다.
개념그래프의 3가지 표현형태 • Display Form (DF) • Linear Form (LF) • Conceptual Graph Interchange Format (CGIF)
LF와 CGIF 표현 • [Go]- (Agnt)->[Person: John] (Dest)->[City: Boston] (Inst)->[Bus]. 선형표현은 사람이 읽기 쉽고 타이핑하기 쉽도록 설계되었다. • (Agnt [Go] [Person: John]) (Dest [Go] [City: Boston]) (Inst [Go] [Bus]) CGIF 표기법은 시스템간에 정보교환을 쉽게 할 수 있는 표현이다.
개념노드(Concept Node) • 추상적 또는 사실적 실체(속성, 상태, 사건, 실체 등)를 나타냄. • 하나의 개념노드는 콜론':'에 의하여 개념노드의 유형(Type)을 나타내는 유형지대와 그 노드에 제약을 가하는 정보가 있는 참고지대로 나 뉜다. 예) [PERSON:John]
개념노드의 보기 개 념 노 드 의 미 [PERSON] 사람 [PERSON : #123] 사람 #123(특정 개인) [PERSON : John] John이라는 이름의 사람 [PERSON : @1] 한 사람 [PERSON : Tom, John] Tom과 John이라는 사람 [PERSON : *] 사람들 [PERSON : ?] 어느 사람 [PERSON : #] 그 사람
관계노드(Relation Node) • 관계노드에는 참고지대(Referent Field)가 없고 유형지대(Type Field)만 있다. • 대부분의 관계노드는 두개의 개념노드 간의 관계를 정의하는 이원(Binary)관계를 나타내지만 때로는 일원(Unary) 또는 다원의 관계를 나타내기도 한다.
* 다음 개념그래프는 '철수가 그 공을 찼다.'를 나타냄. (PAST)→[[PERSON : 철수]←(AGNT)←[차다]→(OBJ)→[공 : #]] * 각 관계노드들은 화살표를 이용하여 관련된 개념노드에 연결되는데 화살표 방향에 따라 같은 개념노드와 관계노드가 있는 그래프라도 서로 다른 의미를 갖는다. (가) [HIT]→(OBJ)→[BALL : #] (나) [HIT]←(OBJ)←[BALL : #] 그래프 (가)는 [HIT]의 object가 [Ball : #]이라는 의미이고 그래프 (나)는 [BALL : #]의 object가 [HIT]라는 표현이다.
관계노드는 관계유형에 따라 세 종류로 나눌 수 있다. 1)원시적 관계(Primitive Relation) 2) 초기 집합(Start Set) 3) 정의된 관계(Defined Relation) 원시적 관계에는 LINK라는 유일한 관계노드가 있는데 원시적 관계노드만을 사용하면 'Mary hitting a ball'은 [PERSON : Mary]←(LINK)←[PATIENT]→(LINK)→[BALL] 로 표현되며 초기 집합에 (AGNT), (PTNT) 등이 있어서 이들을 사용하면 [PERSON : Mary]←(AGNT)←[HIT]→(PTNT)→[BALL] 로 표현되며, (HITTING)이라는 관계유형을 사용자가 정의하여 사용하면 [PERSON : Mary]←(HITTING)→[BALL]로 표시할 수 있다.
관계유형의 정의 • 과거 시제를 나타내는 'PAST'라는 관계유형의 정의는 다음과 같다. relation PAST(X) is [SITUATION:*X]→(PTIM)→[TIME]→(SUCC)→[TIME: NOW].
유형계층(type hierarchy) • 유형은 사물의 집합이 아니라 사고의 추상적인 영역 구분에 의하여 정의된다. • 따라서 UNICORN처럼 유형은 존재하나 그에 대응되는 사물의 집합은 없을 수 있다. • 유형계층은 유형집합 내 유형들 간의 반순서(Partial Order)관계로 정의된다. • 유형계층은 임의의 두 유형 간에 직접 공통적인 상위유형(Super Type)과 하위유형(Sub Type)을 갖을 때 트리(Tree)가 아닌 속(Lattice) 형태를 갖는다.
규범그래프(Canonical graph) • 각 개념노드에 선택제약을 부과하여 생성된 개념그래프. • 규범그래프는 각 개념을 정의할 때 기본적으로 주어진 규범그래프가 있고 새로운 규범그래프는 규범그래프 형성 규칙(Canonical Formation Rule)에 의해 생성될 수 있다.
GIVE라는 개념에 해당하는 규범그래프 • [GIVE] (AGNT)→[ANIMATE] (RCPT)→[ANIMATE] (OBJ)→[ENTITY].
규범그래프 형성규칙 • 복사(Copy):w는 v와 똑같은 개념그래프이다. • 제한(Restrict):u 안에 있는 개념노드의 유형을 하위유형으로 대치하거나 참고지대(Referent Field)에 총칭적표시자(Generic Marker)가 있을 때 이를 개체표시자(Individual Marker)로 대치한다. 이때 개체표시자는 그 개념노드의 유형에 속할 수 있는 것이어야 한다. • 결합(Join):u에 있는 개념노드 c와 v에 있는 개념노드 d가 같을 때 d를 제거하고 d에 붙어있던 모든 관계노드를 c에 붙여서 w를 생성한다. • 단순화(Simplify):하나의 개념그래프 상에 관계노드가 복사되어 있다면 이는 그 관계노드에 붙어 있는 아크와 함께 제거한다.
세부화(Specialization) • [PERSON :mary]←(AGNT)←[HIT]→(PTNT)→[BALL] 은 • [PERSON]←(AGNT)←[HIT]→(PTNT)→[ENTITY] 보다는 세분화된 개념그래프이다.
일반화(Generalization) • u는 v로부터 세부화된 개념그래프라면 그 관계는 u ≤ v로 표시한다. • 이때 v는 u의 일반화(Generalization)된 개념그래프이다.
추상화(Abstraction) • 프로그래밍 언어에서 쓰이는 프로시듀어(Procedure)나 매크로(Macro)처럼 복잡한 내용을 간단한 이름으로 대치하여 사용할 수 있도록 하는 기법이다. • SMALL-PERSON이라는 새로운 유형을 PERSON의 하위유형으로 정의하면 • SMALL-PERSON = (X) [PERSON : *X]→(SIZE)→[SMALL]
유형축소(Type Contraction) • 개념그래프 [PERSON : John]→(SIZE)→[SMALL]은 [SMALL-PERSON : John]으로 줄여 쓸 수 있으며 이러한 현상을 유형축소라 한다.
집합화(Aggregation) • [PERSON : Mary]와 [PERSON : John]을 하나의 개념노드 [PERSON : Mary, John] 으로 표현하는 것을 집합화라 한다.
술어논리(Predicate Calculus)로 변환 • u = [MONKEY]←(AGNT)←[EAT]→(OBJ)→[BANANA : #123] 이를 함수 Φ를 이용하여 술어논리로 바꾸면 • Φu= ∃x∃y(MONKEY(X) ∧ AGNT(y,x) ∧ EAT(Y) ∧ OBJ(Y,#123) ∧ BANANA(#123))
2.2.5 삼차원 개념그래프 • 정의 2.2삼차원 개념그래프:삼차원 개념그래프는 개념(Concept)을 표현하는 개념스택(Concept Stack)과 개념스택 간의 관계(Relation)를 표현하는 관계노드(Relation Node)들이 아크로 연결된 유한 이분 그래프이다. • 정의 2.1개념스택:개념스택은 복수개의 개념을 한 곳에 표현 할 수 있는 삼차원 개념그래프상의 노드이다.
[그림 2.7] 하나의 개념그래프 [그림 2.8] 하나의 삼차원 개념그래프
2.2.6 스크립트 • 스크립트 이름: 식당 • 종류(Track): 대중식당 • 관련된 사람(Roles): 손님, 웨이터, 주인 • 관련된 물건(Props): 계산대, 음식, 메뉴, 돈 • 전제조건(Entry Condition): • - 손님은 배가 고프다. • - 손님은 돈이 있다. • 장면 1(Scene 1): 들어오기. • - 손님이 식당에 들어 온다. • - 빈자리에 앉는다. • 장면 2(Scene 2): 주문하기. • - 메뉴를 본다. • - 웨이터에게 음식을 주문한다. • 장면 3(Scene 3): 먹기. • - 웨이터가 음식을 손님의 자리로 가져온다. • - 음식을 먹는다. • 장면 4(Scene 4): 나가기. • -주인에게 음식값을 지불한다. --식당을 나간다. • 결과(Results): • - 손님은 배가 고프지 않다. • - 손님의 돈이 줄었다.
2.2.7 규칙 • 규칙(Production Rule)은조건과행동을IF-THEN 형태로구성하여지식을표현한다. 예) IF 신호등이빨강색이면THEN 멈춘다.
규칙간에충돌(Conflict) • - IF 새이면THEN 날수있다. • - IF 팽귄이면THEN 새이다. • - IF 팽귄이면THEN 날수없다.
- 하나의규칙에여러개의조건과여러개의행동이있을수 있으며조건들은AND나OR로묶을수있다. -IF월급이100만원이상이다. OR저금이1,000만원이상있다. THEN신용카드를발급해준다. AND은행구좌를열수있다.
2.2.8 다중 지식표현 • 여러가지지식표현기법을동시에사용함. • 지식 표현의 단일성은 떨어지더라도 각기법의 장점을 살려 지식베이스의 부분 부분을 구성하여 합하면 보다 나은 지식베이스를 만들 수 있다. • 예) 규칙과 프레임