본문 바로가기
끝이없는 공부/인공지능개론

[인공지능개론] 5장. 지식표현

by 블루데이제이 2024. 5. 7.
728x90
반응형
여러가지 지식표현 방법
술어논리 이해
술어논리에서 사용되는 추론기법 이해

 

지식표현 방법

지식 표현 방법의 종류

지식 표현 모델의 분류
지식 표현 모델 종류
생성 규칙(Production Rule) 또는 규칙 절차적(procedural)
술어논리(Predicate Logic) 선언적(declarative)
의미망(Semantic Net) 선언적(declarative)
프레임(Frame) 선언적(declarative)

 

 

규칙

  • 규칙은 전제(IF문)와 결론(THEN)의 두 부분으로 구성된다. 규칙의 전제 조건 이 일치하는 경우, 규칙은 점화되고 결론 부분이 실행된다.
  • 규칙을 사용하는 시스템에는 작업 메모리라고도 하는 데이터베이스가 포함 된다. 작업 메모리에는 현재 관측된 사실이나 상태, 지식이 저장된다.
규칙 #1: IF 비가 온다. THEN 우산을 가져간다.
규칙 #2: IF 프로그램에 버그가 없다. THEN 프로그램은 올바르게 동작한다.
규칙 #3: IF 습도가 높다 OR 온도가 30도 이상이다. THEN 에어콘을 가동한다

 

의미망

  • 의미망(semantic network)은 방향 그래프를 이용하여 개념 간의 관계를 나타 내는 방법이다.
  • 그래프는 노드와 간선으로 이루어진다.
  • 노드는 사물(objects), 개념(concepts)등을 표현한다.
  • 간선(edge)는 사물이나 개념 사이의 관계이다.

의미망(출처 : Public Domain, https://commons.wikimedia.org/w/index.php?curid=1353062)

  • 노드 사이의 간선은 “..의 일종이다”(is-a), "...을 가지고 있다“('has), "...은 하 나의 예이다." (inst-of)와 같은 관계를 나타낸다.
  • 의미망은 매우 복잡한 개념이나 인과 관계를 잘 표현할 수 있지만 지식의 양 이 커지면 너무 복잡해져서 조작이 어렵다는 단점도 가지고 있다.
  • 의미망을 위한 표준 지침이 없기 때문에 시스템에 따라 의미망의 형태가 다를 수 있다.

 

프레임

  • 프레임(frame)은 1970년대에 Marvin Minsky가 제안한 지식 표현 방법으로 의미망에서 파생
  • 프레임은 특정 객체와 그 속성을 묶어서 하나로 조직화하는 방법이며 개념, 객체, 상황들을 기술하는데 유리하다.
책을 프레임으로 표현한 예
슬롯
publisher 인피니티북스
title 인공지능
author 홍길동
edition 초판
year 2019
pages 700

 

  • 프레임은 객체의 속성과 값으로 이루어져 있다.
  • 개개의 속성은 슬롯(slot)이라고 불리고 슬롯은 값을 가질 수가 있다.
  • 프레임은 프로그래밍 언어의 구조체나 객체(object)와 유사하며 객체의 필드 에 해당하는 것은 슬롯이다.
컴퓨터를 프레임으로 표현한 예
슬롯
name 컴퓨터
subclass 기계
types default: desktop
if-added: Procedure INCREMENT_COMPUTER
speed default: fast
if-needed: Procedure CALOULATE_SPEED

 

프로시저

  • “if-added” 프로시져는 새로운 정보가 그 슬롯에 추가되어야 할 때 실행된다.
  • “if-deleted” 프로시져는 어떤 값이 슬롯으로부터 제거될 때 실행된다. 이 변경에 따라 다른 슬롯의 값도 변경할 필요가 있을 것이다.
  • "if-needed" 프로시져는 빈 슬롯에 어떤 값이 필요해질 때에 실행된다.

 

프레임의 장점
  1. 개념을 구조화하여 표현할 수 있다. 프레임은 개념을 구조화하여 표현하기 때 문에, 개념과 개념 간의 관계, 속성, 기능 등을 명확하게 표현할 수 있다. 이로 인해 개념의 이해와 유추가 쉬워지며, 지식의 구성과 구조를 명확하게 파악할 수 있다.
  2. 지식의 재사용성이 높다. 프레임은 유사한 개념을 쉽게 만들 수 있기 때문에, 지식의 재사용성이 높다. 새로운 개념을 만들 때, 이미 만들어진 프레임을 조 합하여 새로운 프레임을 만들 수 있으며, 이를 통해 지식을 쉽게 확장할 수 있다.
  3. 지식의 일관성을 유지할 수 있다. 프레임은 개념을 구조화하여 표현하기 때문에, 개념 간의 관계와 속성이 일관성을 유지한다. 이로 인해 지식의 일관성을 유지할 수 있으며, 오류와 모순을 방지할 수 있다.
프레임과 객체 지향 프로그래밍
  • 인공지능 분야에서는 프레임이란 용어로 객체를 나타낸다.
  • 객체의 필드에 해당하는 것이 프레임의 슬롯이다.
  • 프레임의 슬롯은 값뿐만 아니라 프로시저도 가질 수 있다. 슬롯에 붙은 프로시저가 바로 객체의 메소드라고 볼 수 있다.

 

프레임과 상속
  • 프레임도 인스턴스 프레임(instance frame)과 클래스 프레임(class frame)으 로 나눌 수 있다.

시맨틱 웹
  • Web Ontology Language(OWL)은 웹 상에서 지식 표현을 위한 규약으로, RDF(Resource Description Framework)와 함께 Semantic Web을 구현하는 데 사 용된다. OWL은 기존의 지식 표현 방법들과 달리, 웹 상에서 공유 가능한 지식 을 표현하고 검색할 수 있도록 설계되었다.
  • OWL은 클래스, 속성, 인스턴스 등을 포함하는 객체 지향적인 구조를 가지며, 이들을 서로 연결하여 복잡한 지식 구조를 구성할 수 있다. 이를 통해, OWL을 이용하여 도메인의 개념과 속성, 그리고 개념 간의 관계를 정의할 수 있다.
  • OWL은 프레임과 달리 객체 지향적인 표현 방법보다는, 논리적인 표현 방법을 중심으로 설계되어 있다. 따라서 OWL을 이용하면, 개념 간의 정확한 논리적 인 관계를 표현할 수 있다. 이러한 특징 때문에 OWL은 Semantic Web의 구현에 많이 활용되고 있다.

 

논리

술어논리

  • 예를 들어보자. "만약 x가 새라면, x는 날개를 가질 것이다“라는 규칙이 있다고 하자.
(∀x) { is_a(x, Bird) → has(x, Wing)}
장점과 단점
• 수학적인 근거를 바탕으로 논리 개념을 자연스럽게 표현할 수 있 다.
• 지식의 정형화 영역에 적합하다. 예를 들어서 정리 증명(theorem proving) 기법을 사용할 수 있다.
• 지식의 첨가와 삭제가 용이하고 비교적 단순하다.
• 절차적인 지식 표현이 어렵다.
• 사실의 구성 법칙이 부족하므로 실세계의 복잡한 구조를 표현하기 어렵다.

 

명제논리

  • 기호 논리학에서 명제(proposition)는 참(true, T)이거나 또는 거짓(false, F)을 판별할 수 있는 문장이다.
P = 마트는 월요일부터 토요일까지 영업한다.
Q = 오늘은 일요일이다.
R = 오늘 마트는 영업하지 않는다.
  • 논리 연산자 사용 가능
Q = 오늘은 일요일이다.
NOT Q = 오늘은 일요일이 아니다.
J = 옷은 파랑색이다.
K = 옷은 스트라이프 무늬가 있다.
L = J AND K = 옷은 파랑색이고 스트라이프 무늬가 있다.

 

함축

C = 오늘은 휴일이다.
D = 오늘은 수업이 없다.
E = C → D
복합 명제의 논리표
A B NOT A A AND B A OR B A→B
T T F T T T
T F F F T F
F T T F T T
F F T F F T

 

명제논리에서의 추론

  • 추론(inference)이란 우리가 가지고 있는 지식과 우리가 이미 알고 있는 사실 로부터 새로운 사실을 유추하여 내는 것이다.
(지식) 우리집 강아지는 집안에 있거나 앞마당에 있다.
(사실) 강아지가 집안에 없다.

==============================================
(추론된 사실) 따라서 강아지는 앞마당에 있을 것이다.

 


추론법칙

  • 모더스 포넌스(Modus Ponens)
규칙 | A → B
사실 | A
----------------
결론 B
"홍길동이 세계 일주 중이라면 → 로또에 당첨된 것이다. “
"홍길동은 세계 일주 중이다."
------------------------------------------------------
∴ ”홍길동은 로또에 당첨된 것이다."
  • 부정 논법(Modus Tollens)
규칙 | A → B
사실 | NOT B
----------------
결론 NOT A
"어떤 동물이 강아지라면 → 어떤 동물은 4개의 다리를 가지고 있다.“
"어떤 동물은 4개의 다리를 가지고 있지 않다."
-------------------------------------------------------
∴ ”어떤 동물은 강아지가 아니다.“
  • 삼단논법(syllogism)
규칙 | A → B
사실 | B → C
----------------
결론 A → C
“소크라테스는 인간이다”
“인간은 모두 죽는다”
-------------------------------------------------------
∴ “소크라테스는 죽는다”

 

술어논리

명제 논리에서 하나의 명제가 나누어질 수 없기 때문에 어려움이 있다. 즉 우리는 전체 명제가 참이냐 거짓이냐 만을 말할 수 있다.

예를 들어서 “신호등이 파랑색이다.”라는 명제가 있다면 이것을 “신호등”과 “파랑색이다”로 나눌 수 있다면 아주 편리할 것이다.

술어 논리에서는 하나의 명제가 객체(object, 또는 인수)와 술어(predicate)로 나누어진다.

변수와 한정자를 사용할 수 있다.

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

 

술어 논리의 예
명제 논리: Kim has a house
술어 논리: HAS(Kim, house)

명제 논리: The orange is yellow
술어 논리: YELLOW(orange)

 

객체와 관계

  • 객체는 상수 기호로 나타낸다: 바둑이, 야옹이, Richard, ...
  • 관계는 술어 기호로 나타낸다: HUMAN, DOG, CAT, HAT, ...

변수

  • 예를 들어서 ”x가 인간이라면”은 다음과 같이 표현할 수 있다.
  • HUMAN(x)
  • x가 인간이라면 위의 술어 논리식은 참이 된다.

한정사

  • 한정자는 변수의 범위를 서술하는 기호이다.
  • 술어 논리에는 전칭 한정사(universal quantifier) ∀와 존재 한정사(existential quantifier) ∃를 사용할 수 있다.
  • 전칭 한정사 ∀는 “모든” 이라는 의미이다.
  • 존재 한정사 ∃는 “적어도 하나는 존재“한다는 의미이다.
All dog like cats

∀x [DOG(x) → LIKES(x, cat)]

 

Some dogs like cats.

∃x [DOG(x) → LIKES(x, cat)]

 

술어논리에서의 추론

  • 첫 번째 방법은 술어 논리식을 명제 논리식으로 변환한 후에 명제 논리의 추론 기법을 적용하는 것
  • 두번째 방법은 논리융합(resolution)이다.

 

정형식

  • 우리가 논리융합을 사용하려면 모든 지식이 정형식(WFF: well-formed formula)으로 표현되어야 한다.
  1. 기초 공식은 정형식이다.
  2. P와 Q가 정형식이면 ¬P, P∨Q, P∧Q, P→Q도 정형식이다.
  3. P가 정형식이면 ∀x P(x) 와 ∃x P(x)도 정형식이다.
  4. 정형식은 위의 규칙을 반복하여서 형성가능하다.

정형식으로 표현하기

 

논리융합

  • 논리융합은 리터럴과 부정 리터럴을 가지고 있는 2개의 절을 조합하여서 새로운 절을 생성하는 방법이다.

논리융합으로 모더스 포넌스를 유도해보자.

논리융합을 사용하려면

  • 논리융합 기법으로 증명하려면 모든 논리식들을 논리곱 표준형(CNF: conjunctive normal form)으로 바꾸어야 한다.
  • 모든 전칭 한정사는 없애버린다(기본적으로 가정된다).
  • 존재 한정사는 스콜렘 함수라고 하는 것으로 바꾼다.

CNF로 변환하기

  1. 함축 기호 →를 제거한다.
  2. 부정 기호를 기초 공식 안으로 이동한다. 드모르간의 법칙을 이용하여 부정 의 범위를 줄인다.
  3. 전칭 한정사 변수의 이름을 다르게 변경한다.
  4. 존재 한정사에 의하여 한정되는 변수를 함수로 대체하고 존재 한정사를 제거한다.
  5. 모든 전칭 한정사를 생략하고, 논리곱 정규형으로 변환한다.
  6. 모든 논리곱 기호를 생략한다.
CNF로 변환하기 예
① 모든 강아지는 포유류이다.
② 바둑이는 강아지이다.
③ 바둑이는 포유류이다.
④ 모든 포유류는 우유를 생산한다.

▼ 술어논리로 변환

① ∀x (DOG(x) → MAMMAL(x)).
② DOG(badook).
③ MAMMAL(badook).
④ ∀x (MAMMAL(x) → MILK(x)).

▼ CNF로 변환

① ¬ DOG(x) ∨ MAMMAL(x)
② DOG(badook)
③ MAMMAL(badook)
④ ¬ MAMMAL(x) ∨ MILK(x)

 

논리융합에 의한 증명

1. 증명하고자 하는 사실을 부정하여 절들의 리스트에 추가한다.
2. 지식 베이스의 문장들을 CNF 형태로 변환한다.
3. 논리융합할 수 있는 절의 쌍이 더 이상 없을 때까지 다음을 반복한다.
        3.1. 논리융합할 수 있는 절의 쌍을 찾아 논리융합한다.
        3.2. 논리융합절을 절들의 리스트에 추가한다.
        3.3. NIL이 유도되면, 증명하고자 하는 사실이 참이다.
4. 증명하고자 하는 사실이 거짓이다
논리융합에 의한 증명의 예
① ¬ DOG(x) ∨ MAMMAL(x)
② DOG(badook)
③ MAMMAL(badook)
④ ¬ MAMMAL(x) ∨ MILK(x)
MILK(badook)

① ¬ DOG(x) ∨ MAMMAL(x)
② DOG(badook)
③ MAMMAL(badook)
④ ¬ MAMMAL(x) ∨ MILK(x)
⑤ ¬MILK(badook)

 

시맨틱 웹과 온톨로지 소개

기존 웹의 문제점
  • 사람만 액세스할 수 있다는 점이다.
  • 컴퓨터가 네트워크를 통해 정보를 전송받고 화면에 표시하지만, 올바른 정보를 선택하는 데 컴퓨터는 큰 도움이 되지 않는다.
  • 예를 들어서 검색엔진이 발달하여서 사용자가 키워드를 입력하면 많은 검색 결과를 보여주지만, 아직은 사용자가 검색 결과를 클릭해서 내용을 읽기 전까지는 문서에 대한 정보를 올바르게 알 수 없다.

※ 그 이유는 무엇일까? 컴퓨터가 아직까지 웹 페이지의 구조와 레이아웃만 이해하고, 의미를 파악하지 못하기 때문이다.

 

시멘틱 웹

  • 시맨틱 웹은 컴퓨터가 정보의 의미를 이해하고 추론할 수 있는 지능형 웹이 다. 웹 3.0이라고도 하는 시맨틱 웹(semantic web)은 W3C에서 설정한 표준 을 통해 웹을 확장한 것이다.
  • 시맨틱 웹의 목표는 인터넷 상의 데이터를 컴퓨터들이 읽고 이해할 수 있도 록 만드는 것이다. 웹의 창시자 팀 버너스 리(Tim Berners Lee)는 1999년에 시맨틱 웹에 대한 자신의 비전을 다음과 같이 표현했다.
시멘틱 웹의 예
홍길동 서울 에서 태어났다.
 

시멘틱 웹의 요소 기술
  • 웹 자원을 서술하기 위한 RDF(Resource Description Frame)
  • 온톨로지(Ontology)

온톨로지

  • 컴퓨터 과학에서 온톨로지는 지식공학 분야에서 사용되는 지식 표현 방법 중 하나이다. 온톨로지는 인공지능 분야에서 개념의 의미와 관계를 정의하는 데 사용되며, 지식을 표현하는 방법 중 하나이다.
  • 온톨로지는 일종의 분류체계를 만들어내며, 개념, 속성, 관계, 제약 등의 정보 를 포함한다. 이러한 정보는 자연어로 기술된 경우 다양한 해석이 가능하므로, 온톨로지를 이용하여 명확하고 일관된 의미를 부여할 수 있다.
  • Individuals(instance): 사람, 동물, 책상, 자동차, 분자, 행성 등의 구체적 객체(objects)
  • Classes: object의 type
  • Attributes: object의 속성
  • Relations: object가 다른 object와 연관되는 방법
온톨로지의 예

 

 


논리융합 연습
  • 간단한 논리융합 연습을 해보자. 다음과 같은 지식이 있다.

       ① 어떤 것이 지능적이라면 그것은 상식을 가져야 한다.

       ② PC는 상식이 없다.

  • 위의 지식을 바탕으로 PC는 지능적이 아니다를 증명해 보자.

 

요약

 

  • 많이 사용되는 지식 표현의 방법은 “규칙”, “의미망”, “프레임”, 술어논리 “ 등이 있다.
  • 명제 논리에서 추론 방법은 “모더스 포넌스”, “부정 논법”, “삼단논법” 등이 있다.
  • 의미망(semantic network)은 방향 그래프를 이용하여 개념 간의 관계를 나타내는 방법이다.
  • 프레임(frame)은 1970년대에 Marvin Minsky가 제안한 지식 표현 방법으로 특정 객체와 그 속성을 묶어서 하나로 조직화하는 방법이다.
  • 술어 논리(predicate logic)는 하나의 명제가 객체(object, 또는 인수)와 술어 (predicate)로 나누어질 수 있고 변수와 한정자를 사용할 수 있는 논리이다.
  • 술어 논리식에서는 추론을 위하여 논리융합(resolution)이라는 방법을 사용 한다.
728x90
반응형