공부한 기록/인공지능

인공지능(2) - 지식 표현

YongE 2023. 4. 8. 16:51

지식표현

 


 

실제 문제를 지능적으로 해결하려면 많은 양의 지식을 필요로 한다. 그런데 이런 지식을 어떻게 효율적으로 표현하고 활용할 것인가는 인공지능에서 다루는 중요한 연구 분야 중 하나다.

 

컴퓨터로 지식을 이용하기 위해서는 컴퓨터가 효율적으로 이해할 수 있는 형식언어(Formal Language)로 기술되어야 한다. 다시 말해, 형식적으로 지식표현을 할 필요성이 있다.

 

지식을 컴퓨터에 표현하는데 사용되는 형식언어를 지식표현언어(knowledge representation language)라고도 한다.

 

지식을 표현할 때 고려해야 할 사항이 있는데 이는 다음과 같다.

 

  1. 어떤 객체와 관계를 어떻게 정확히 표현할 것인가?
    • 술어 논리 표현에서 has-size(bear, big)일 때 bear2가 더 크다는 것은 어떻게 표현하는가?
  2. 메타(지식을 위한 지식)지식은 어떻게 표현할 것인가?
    • A는 B가 C를 좋아한다는 것을 믿는다.
  3. 클래스의 계층구조를 어떻게 만들 것인가?
    • 모든 새는 날 수 있다. 펭귄은 새다. 펭귄은 날 수 있는가?
  4. 기본 값과 예외는 어떻게 표현하는가?
    • 모든 새는 날 수 있지만 펭귄은 예외다. 따라서 특수표시하는 것이 효율적이다.

 

지식표현 기법

 


 

고려사항을 숙지한 뒤에 지식표현 기법에 대해 알아보자. 논리, 프레임, 의미망, 개념그래프, 스크립트, 규칙 등등, 수많은 기법이 있지만 이번엔 일부만 다루도록 하겠다.

 

  • 프레임

 

marvin minsky가 발표한 지식표현의 한 방법이다. 이는 향후 객체지향 개념으로 발전하였다.

프레임은 각각 (Slot, Filter)쌍으로 구성된다. 

 

프레임의 예

 

첫 번째 열이 slot, 두 번째 열이 filter다.

 

 

프레임은 상속관계를 가질 수 있다.  펭귄과 뱁새는 동물이라는 프레임을 상속받고 종류는 새로 분류된다.

 

  • 의미망 Semantic network

 

일반적인 지식표현에도 많이 사용되는 기법이다. 각종 개념과 그 사이의 관계를 각각 노드와 아크 레이블로 나타낸 네트워크이다.

 

각 노드의 관계는 AKO(A Kind Of, 종류나 클래스의 상하관계 의미), isa(인스턴스, 상속), has/has-part(속성, 부분, 부품 같은 관계를 의미), 이외(size, play)로 표현할 수 있다.

 

의미망

 

각 노드들은 클래스와 서브 클래스의 관계를 가질 수 있다. 사람은 동물의 서브 클래스가 된다. 영희와 철수는 사람이라는 클래스에 속한 인스턴스이다. 다만, 각 노드나 관계가 무엇을 의미하는지 명확히 밝힐 수 있는 의미체계가 부족하다.

 

 

  • 개념그래프 conceptual graph

 

각 노드와 관계가 무엇을 의미하는지 명확히 밝힐 수 있는 의미체계가 잘 갖춰진 의미망의 종류이다. 앞서 말한 의미망의 단점을 보완하였다.

 

노드들이 아크로 연결된 유한 이분그래프이다. 여기서 두 가지 형태의 노드가 있는데, 하나는 개념노드 concept node로 그래프 상에서 사각형으로 표시된다. 하나는 관계노드 relation node로 그래프 상에서 원으로 표시된다.

 

하나의 개념노드는 그 자체로 개념그래프로 성립되지만 하나의 관계노드는 그 자체로 개념그래프가 될 수 없다.

개념노드

 

  • 스크립트 script

 

특정한 상황에서 일반적으로 일어나는 사건의 순서를 기록한 것이다. 예를 들어 식당에 있다고 해보자. 음식을 주문하고 먹은 다음 음식 값을 지불하고 나온다. 이 기록을 스크립트라고 한다.

 

스크립트는 어떤 사황에서 다음에 일어날 일을 쉽게 예측할 수 있으나 수많은 상황을 스크립트로 기록하기 어렵다.

 

스크립트
이름: 식당
종류(Track) : 대중식당
관련된 사람 (Roles) : 손님, 웨이터, 주인
관련된 물건 (Prope) : 계산대, 음식, 메뉴, 돈
전제조건 (Entry Condition) :
     - 손님은 배가 고프다.
     - 손님은 돈이 있다.

장면 1 (scene 1) : 들어오기.
   - 손님이 식당에 들어 온다.
   - 빈자리에 앉는다.
장면 2 (scene 2) : 주문하기.
   - 메뉴를 본다.
   - 웨이터에게 음식을 주문한다.
장면 3 (scene 3) : 먹기.
   - 웨이터가 음식을 손넘의 자리로 가져온다.
   - 음식을 먹는다.
장면 4 (scene 4) : 나가기.
   - 주인에게 음식값을 지불한다.
   - 식당을 나간다. 

결과(Results) :
   - 손님은 배가 고프지 않다
 . - 손님의 돈이 줄었다.

 

 

 

  • 규칙 production rule

 

조건과 행동을 if-then 형태로 구성하여 지식을 표현한다.

 

IF 신호등이 빨강이면 Then 멈춘다.

 

이러한 여러 규칙들을 지식 베이스에 저장하여 현재 조건에 따른 새로운 사실을 생성하여 문제해결하는 시스템을 규칙기반 시스템이라 한다.

 

이러한 규칙에도 문제점이 있는데 그것은 규칙이 충돌할 수 있다는 것이다. 이를 피하기 위해선,

  1. 저장된 규칙 중 가장 앞에 있는 규칙을 선택한다.
  2. 우선순위가 가장 높은 규칙을 선택한다.
  3. 가장 세분화된 규칙을 선택한다.
  4. 가장 새롭게 만들어진 규칙이나 이전에 수행되지 않았던 규칙을 선택한다.
  5. 무작위로 임의의 규칙을 선택한다.

...등의 전략이 필요하다.

 

규칙은 쉽게 이해할 수 있고 추론이나 설명 기능을 쉽게 구현할 수 있다. 또한 대부분 상호독립성을 갖고 있기에 수정이나 추가 등 유지보수가 편하다. 

다만, 실용적인 시스템이 되기 위해서 많은 수의 규칙이 필요하다.

728x90
반응형