당장 발등에 떨어진 불이라도 꺼보자!

By | 2015-11-16
  1. PRODUCTION SYSTEM
    1. 설명에 앞서서 ‘추론엔진’이란?
      1. 위키백과(https://ko.wikipedia.org/wiki/%EC%B6%94%EB%A1%A0_%EC%97%94%EC%A7%84)
      2. 위 링크에는 다음처럼 되어있다.
        1. 지식기반을 통해 추론행위를 함으로써 주어진 규칙과 사실을 이용하여 새로운 사실을 탐색하는 행위를 하는 전문적인 프로그램을 말한다. 지식획득을 용이하게 하는 형태로 표현해야 하며 저장이 간단해야 하고, 표현이 정확해야 한다. 또한 여러 가지 표현방식을 가지고 있어야 한다.
    2. ‘추론엔진’은 몇 가지만 알면 만들어 볼 수 있다. 아래는 그 몇 가지를 설명한다.
  2.  몇 가지!!!!!!
    1. 추론엔진은 쉽게는 다음처럼 설명할 수 있다.
      1. 무의미한 DATA를 모아 KNOWLEDGE을 만들고, 이 KNOWLEDGE을 네트워크NETWORK로 묶어 기존의 DATA에 없는 새로운 KNOWLEDGE 만들어 낸다.
    2. 여기서..
      1.  DATA는?
        1. DATA와 DATA간 연결고리가 없는 RAW DATA를 의미한다. 가장 밑 바닥의 그야말로 자료를 의미한다.
      2. KNOWLEDGE는?
        1. DATA와 DATA간 관계가 형성이 되어 있는 것을 말한다.
      3. KNOWLEDGE는 DATA에 관계를 추가한 것으로 이해하면 된다.
    3. SEMANTIC NETWORK는?
      • KNOWLEDGE와 같은 원리로 KNOWLEDGE과 KNOWLEDGE이 서로 연결된 것을 말한다.
      • KNOWLEDGE는 LINK를 가지고 있고, LINK는 의미를 가질 수 있고, 또한 LINK는 방향을 가질 수 있다.
      • SEMANTIC NETWORK을 이용하면 추론엔진을 쉽게 만들 수 있다.
      • 그림의 예)
      • sn
    4. SEMANTIC NETWORK은 KNOWLEDGE가 연결된 것이고, KNOWLEDGE는 DATA를 기반으로 만들어진다.  여기에서 KNOWLEDGE와 DATA를 일정한 규칙에 통해 KNOWLEDGE로 변형하는 방법이 있는데 이것이 FRAME이다.
    5. FRAME란?
      frame

      1. 어떤 개념과 관련된 지식을 하나의 덩어리로 다루기 위한 KNOWLEDGE의 표현 방법이다.
    6. 그런데….
      1. DATA에서 KNOWLEDGE를 추출.가공할 때 TEXT의 표현 자유도가 너무 높아서 대부분은 배가 산으로 가 버린다.
      2. 따라서, 어느 정도의 규격화된 지식 추출, 가공 방법이 필요한데 이것이 PRODUCTION RULE이다.
      3. PRODUCTION RULE은 KNOWLEDGE를 아래 처럼 표현하는 것이다.
        1. IF P THEN Q
        2. IP P AND Q THEN R
        3. IP Y THEN Z
        4. Production Rule 예)pr
    7. PRODUCTION RULE을 이용하여 주어진 질문에 답을 구하는 것이 INFERENCE다.
    8. 몇 가지만 알면 추론 엔진을 만들 수 있다. 다시 한번 정리하면 아래와 같다.
      1. FRAME를 통해서 DATA를 가공해 KNOWLEDGE을 만들어 낸다.
      2. KNOWLEDGE 끼리 서로 연결하여 SEMANTIC NETWORK을 구성한다.
      3. SEMANTIC NETWORK을 이용하여 질문에 대한 답을 구한다.  이것이 추론이다.
  3. 마지막으로….
    1. 앞 모든 과정을 이해하면 Production System을 만들 수 있다.
    2. 인공지능의 백미, 추론 시스템은 이러한 과정을 통해 만들어진다.
    3. 하지만,  실제 구현에 있어시는 KNOWLEDGE 생성 쪽에서 대부분 실패한다.  TEXT 의 자유도가 너무나 높으며, 이를 적절히 가공할 수 있는 RULE MAKER가 없기 때문이다.
    4. 만일!!!! 이미 잘 가공된 KNOWLEGE가 있거나 또는 예상된다면, 그래서 SEMANTIC NETWORK를 만들어 낼 수 있다면 제한된 DOMAIN에서는 멋진 추론 엔진을 만들 수 있을 것으로 예상된다.
  4. 다음 번 글 올릴 때는 실제로 만든 추론엔진의 데모를 기대하면서….. 끝!!