[인공지능] 5. 지식 표현

2022. 4. 15. 16:122022-1/인공지능

1.  지식 표현(Knowledge Representation)

지식표현 방법

2. 규칙 (생성 규칙, Production Rule)

전제(IF)와 결론(THEN)의 두 부분으로 구성

-전제 조건이 일치하면, 규칙이 점화되고 결론 부분이 실행

전문가 시스템의 지식 저장 방법으로 규칙을 주로 사용

-인간이 사고하는 방식과 아주 유사, 지식 입력이 비교적 쉽다

-지식 표현이 규칙의 형태로 제한되므로 융통성이 적고 다양한 구조를 모형화하기에 부적합

3. 의미망

방향 그래프(directed graph)를 이용하여 개념 간의 관계를 나타내는 지식 표현 방법

-노드(node): 사물(objects), 개념(concepts)등을 표현

-아크(edge): 사물이나 개념 사이의 관계(relations)를 표현

 ex) is-a(..의 일종이다), has(..을 가지고 있다), inst_of(..의 예)

1960년대 영어 단어의 의미를 표현하기 위해 개발

최근에는 일반적 지식 표현에도 많이 사용

 

특징

-매우 복잡한 개념이나 인과 관계를 잘 표현할 수 있음

-하지만 지식의 양이 커지면 너무 복잡해져서 다루기 어려움

-의미망을 위한 표준 지침이 없기 때문에 시스템에 따라 의미망의 형태가 다를 수 있음

4. 프레임

1970년대에 Marvin Minsky가 제안. 지식을 프레임의 집합으로 표현

프레임은 특정 객체와 그 속성을 묶어서 하나로 조직화하는 방법

-객체의 속성(slot, 슬롯)과 값(filter)으로 이루어짐

-개념, 객체, 상황들을 기술하는데 유리함

프로그래밍 언언의 구조체나 객체(object)와 유사

-슬롯:객체의 필드에 해당하는 것

   -슬롯: 디폴트 값/프레임 포인터/ procedure를 값으로 가질 수 있음

 

프로시저(procedure)

-각 슬롯에 부차될 수 있으며, 슬롯에 대하여 이벤트(요구, 변경, 제거 등)가 발생했을 때에 정해진 임무를 수행함

-대표적 프로시저:

   -"if-added": 새로운 정보가 그 슬롯에 추가되어야 할 때 실행

   -"if-deleted": 어떤 값이 슬롯으로부터 제거될 때 실행

   -"if-needed": 빈 슬롯에 어떤 값이 필요해질 때에 실행

   -"if-modified": 어떤 값이 슬롯에서 수정될 때 실행

 

프레임 안의 슬롯이 프레임을 가질 수 있어 계층적으로 구성가능

 

프레임과 객체 지향 프로그래밍

프레임은 전문가 시스템을 위한 객체 지향 시스템 (object oriented system)

-프레임: 객체(object)

-프레임의 슬록: 객체의 필드(field)에 해당

-프레임의 슬롯에 연결된 프로시저: 객체의 메소드(method)에 해당

 

객체 지향 프로그래밍에서는 클래스와 객체가 있음

-클래스 프레임(class frame): 클래스에 해당(공통적으로 가짐)

-인스턴스 프레임(instance frame): 객체에 해당(개별적으로 가짐)

 

프레임과 상속

프레임에서도 상속이 지원된다

-클래스 프레임의 모든 속성들이 인스턴스 프레임으로 상속됨

-클래스 프레임의 슬롯들은 비워져 있을 수 잇으니, 인스턴스 프레임의 모든 슬롯은 구체적인 값을 가짐

프레임의 장단점

장점

-관련된 지식을 한 곳으로 모을 수 잇다

-일반인들도 쉽게 이해할 수 있고, 표현력이 우수

-절차적 지식보다는 서술적 지식 표현에 좋다

단점

-슬롯이나 메소드에 대한 표준이 없고, 복잡하여 지식 공학자들도 지식을 생성하는 것이 매우 힘들다

-프레임과 관련된 추론 방법이 없다

   -1차 술어 논리로 바꾸는 알고리즘 존재 

5. 논리(Logic)

지식을 표현하기 위하여 수학이나 논리학에서 사용되는 논리를 이용

논리 사용의 장단점

장점

-수학적인 근거를 바탕으로 논리 개념을 자연스럽게 표현

-지식의 정형화 영역에 적합 ex) 정리 증명(theorem proving) 기법

-지식의 첨가와 삭제가 용이하고 비교적 단순

단점

-절차적인 지식 표현이 어려움

-사실의 구성 법칙이 부족하므로, 실세계의 복잡한 구조를 표현하기 어려움

 

6. 명제 논리 (Propositional Logic)

주어(subject)와 술어(predicate)를 구분하지 않고, 전체를 하나의 명제로 처리하여 '참' 또는 '거짓'을 판별하는 논리

명제가 최소의 단위이기 때문에 명제의 내부 구조에 대한 분석이 불가능, 지식 표현을 일반화하는 것이 불가능

 

명제를 알파벳 글자(명제 기호)를 사용하여 표현 => 단순 명제

논리 연산자인 AND(^), OR(), NOT(ㄱ), ->(Implication, 함축), <->(double implication)을 사용하여 단순명제들을 결합해 복합명제 구성

복합 명제의 진리표(Truth table)

-논리 연산자로 만들어지는 복합 명제의 진리값(T/F)을 표현

두 명제의 진리값이 같은 경우, 두 명제는 논리적으로 동치(logicallyequivalence)라 한다

명제논리에서의 추론

추론(inference): 우리가 가지고 있는 지식과 우리가 이미 알고 있는 사실로부터 새로운 사실을 유추하여 내는 것

추론은 지식 표현 방법과 밀접한 관련이 있음

-지식을 명제 논리를 이용하여 표현한다면, 명제 논리의 추론 방식을 사용

-전문가 시스템의 지식 표현 방법인 생성 규칙도 논리에서의 함축(implication)의 일종으로 볼 수 있음

명제논리에서의 추론법칙

모더스 포넌스(Modus Ponenes)

-전문가 시스템에서 사용되는 가장 일반적인 추론 전략

부정 논법(Modus Tollens)

-규칙의 결론이 거짓일 때 그 조건 또한 거짓이라고 추론하는 것

삼단논법(syllogism)

-두 개의 규칙을 연쇄적으로 적용시켜 새로운 규칙을 도출해내는 추론 방법

 

7. 술어 논리

술어 논리는 하나의 명제를 술어(predicate)와 그 술어의 수식을 받는 객체(object)로 분리하여 '술어(객체)'의 형태로 표현할 수 있음

범위를 한정할 수 있는 한정기호  ∀(모든)과 ∃(어떤)을 사용할 수 있음

- ‘모든 사람은 죽는다’ – ∀x(사람(x) → 죽는다(x))

 

이와 같은 술어 논리의 특징 때문에 명제를 사용하는 것보다, 훨씬 더 구체적으로 지식을 표현할 수 있다

 

명제 논리 vs 술어 논리

술어 논리에서는 변수를 사용하여 여러 개의 서로 다른 문장을 간단히 일반화하여 표현할 수 있다.

예 1: ‘철수는 영희를 사랑한다’ – 사랑한다(철수, 영희)

예 2: ‘영철이는 영희를 사랑한다 ’ – 사랑한다(영철, 영희)  

예 3: 영희를 사랑하는 사람이 100명 있다면, 변수 x를 사용
   ‘x가 영희를 사랑한다’ – 사랑한다(x, 영희) # (x = 100명 중 누구든지 될 수 있다)

 

문장 내에 사용되는 변수들의 의미를 한정하기 위하여 두 가지의 한정자(quantifier)를 사용

-전칭 한정자(univeral quantifier, , ∀): for all ~ 

-존재 한정자(existential quantifier, ∃): for some ~, there exist some~ such that …

-예:  "만약 x가 새라면, x는 날개를 가질 것이다”

술어 논리는 1차 논리(first-order logic)라고도 불림

 

객체와 관계로 구성

객체(objec)는 상수(Constant) 기호로 나타냄

관계(relation)는 술어(predicate) 기호로 나타냄

 

변수, 함수

변수: 한 글자의 알파벳으로 표현, 변수의 값에 따라 술어 논리식이 '참' 혹은 '거짓'이 될 수 있음

-예 1: "x가 인간이다" - HUMAN(x)

   -x가 인간이라면 위의 술어 논리식은 참이 된다

-예 2: "x가 흰색이다" - WHITE(x)

   -x에 치환되는 객체가 흰색인 경우 참이 된다

함수는 인자들을 '함수값'이라는 하나의 객체로 대응시키는 것을 나타냄

-예: father(john), plus(2,3), f(x,y)

한정자

한정자는 변수의 범위를 서술하는 기호

술어 논리에는 전친 한정사(universal quantifier) ∀와 존재 한정사(existential quantifier) ∃를 사용할 수 있다.
-전칭 한정사 ∀는 “모든” 이라는 의미이다.

-존재 한정사 ∃는 “적어도 하나는 존재”한다는 의미이다

문장(sentence)

기본 문장(atomic sentence)

-술어 논리의 가장 기본이 되는 단위

-술어(predicate) 기호와 인자로 구성

문장(sentence)

-기본 문장

-기본 문장을 연결자(connectives)를 이용하여 구성한 복합 문장

   -연결자: 명제 논리에서 사용한 것과 동일

-한정사가 붙은 문장

8. 술어 논리에서 추론

첫번째 방법 술어 논리식을 명제 논리식으로 변환한 후에 명제 논리의 추론 기법을 적용하는 것

두번째 방법 도출(resolution)

1. 명제 논리의 추론 기법 적용

술어 논리식을 universal instantiation 혹은 existential instantiation을 적용하여 명제화 시킨 후에 명제 논리 추론 법칙 적용

Universal instantiation(전칭 인스턴스화)

Existential instantiation(존재 인스턴스화)

정형식(Well-Formed Formula)

도출(resolution)을 사용하려면 모든 지식이 정형식(WFF: well-formed formula)으로 표현되어야 함

용어 정의

-항(term): 상수, 변수, 함수를 항이라고 함 ex) x, john, father_of

-원자(atom): 술어가 항을 인자로 취하면 원자라고 함 ex) HUMAN(x), PILOT(father_of(john))

-Literal: 원자나 이것의 부정

 

정형식(Well-Formed Formula, WFF)의 정의

1. 원자는 정형식이다

2. P와 Q가 정형식이면 ¬P, P∨Q, P∧Q, P→Q, P↔Q도 정형식

3. P가 정형식이면 ∀x P(x) 와 ∃x P(x)도 정형식

4. 정형식은 위의 규칙을 반복하여서 형성가능

 

2. 도출(Resolution)

지식을 술어 논리식을 이용하여 표현하였다고 하자

다음 단계는 이 지식을 관찰된 사실과 조합하여 추론하는 단계

자동화된 추론 방법 중의 하나가 도출(resolution)

 

도출은 리터럴과 부정 리터럴의 논리합으로 구성된 2개의 절(clause)을 조합하여서 새로운 절을 생성하는 방법

도출의 적용 예

전문가 시스템에서 주로 사용되는 추론 법칙인 모더스 포넌스도 도출의 트별한 경우로 생각할 수 있음

 

도출을 사용하려면

도출 기법으로 증명하려면 모든 논리식들을 논리곱 표준형(CNF: conjuctive normal form)으로 바꾸어야함

모든전칭 한정사는 없애버린다(기본적으로 가정)

존재 한정사는 스콜렘 함수로 바꾼다(skolemization)

 

CNF로 변환하기

1. 기호 ↔ 를 제거한다. P ↔ Q ≡ (P→ Q) ∧ (Q→ P) 

2. 기호 → 를 제거한다. P→ Q ≡ ¬P ∨ Q 

3. 부정 기호를 리터럴에만 나타나도록 안으로 이동한다. 드모르간의 법칙을 이용하여 부정의 범위를 줄인다.
     ¬(P∧Q) ≡ ¬P∨¬Q,

     ¬(P ∨ Q) ≡ ¬P∧¬Q,  

     ¬(¬P) ≡ P
4. 모든 전칭 한정사를 생략하고, CNF로 변환한다. 

5. 존재 한정사는 스콜렘 함수로 대체하고 존재 한정사를 제거한다. 

6. 결과적으로, 절(clause)들의 conjuction(논리곱)으로 표기

 

스콜렘 함수 변환 예제

CNF로 변환하기 예

도출에 의한 증명

 

9. 프롤로그(Prolog)

변수는 항상 대문자로

상수는 소문자로

 

 

 

 

'2022-1 > 인공지능' 카테고리의 다른 글

[인공지능] 7장 불확실성  (0) 2022.06.08
[인공지능] 6. 퍼지논리  (1) 2022.04.15
[인공지능] 4. 전문가 시스템  (0) 2022.04.15
[인공지능] 3. 게임트리  (0) 2022.04.15
[인공지능] 2. 탐색  (1) 2022.04.15