[인공지능] 추론 기법

* 일치-점화를 통한 추론 엔진 싸이클

 - 일치 : 주어진 규칙과 지식베이스의 사실이 일치하는 가를 파악하는 과정

 - 점화 : 일치된 규칙에서 도출되는 결론을 지식베이스에 추가하는 과정

    

 

 - 추론 엔진은 순방향 연결 추론(forward inference chaining)과 역방향 연결 추론(backward inference chaining)이 있다.

 - 규칙의 IF 부분과 사실과의 일치는 추론 사슬(inference chains)을 생성한다.

  ex) 지식베이스에 A, B, C가 사실이라는 것이 존재.

  rule 1) 

   If Y is true and C is true then Z is true.

  rule 2)

   If B is true then X is true.

  rule 3) 

   If X is true and A is true then Y is true.

  > Inference chains

   

 

* 순방향 연결 추론(forward inference chaining)

 - 데이터 지향 추론

 - 알려진 데이터에서 추론을 시작하여, 순방향으로 진행

 - 한번에 사실에 맞는 규칙 하나만 실행되며, 규칙이 점화되면 그 규칙을 지식 베이스에 추가시킨다.

 - 점화하는데 사용된 규칙은 또 다시 수행되지 않는다.

 - 규칙을 모두 탐색하는 것을 하나의 사이클이라고 한다. 

 - 더 이상 점화할 규칙이 없으면 중단되며, 요청한 사실이 참인지를 탐색한후, 결론을 도출한다.

 

 ex) 지식베이스에 A, B, C가 사실이라는 것이 존재. Z가 사실인지를 탐색.

  rule 1) 

   If Y is true and C is true then Z is true.

  rule 2)

   If B is true then X is true.

  rule 3) 

   If X is true and A is true then Y is true.

  rule 4)

   If A is true and B is true then D is true.

  rule 5)

   If W is true then K is true.

   

 

 

   > 싸이클을 2번 돌고 나면 더이상 점화시킬 규칙이 없다. 지식베이스에 Z가 있는지를 확인. 있으므로 사실로 판정.

 - 단점 : 정해진 목표와 관련 없는 많은 규칙들이 수행될 가능성이 있다. 

            위와 같이 하나의 특정한 사실을 추론하는 것이라면 순방향 연결 추론 기법은 효과적이지 못하다고 할 수 있다.

 

* 역방향 연결 추론(backward inference chaining)

- 목표 지향 추론

 - 목표(가정해)를 정하고, 이를 증명하기 위한 증거를 찾는 방식

 - 규칙의 IF부분을 증명하기 위해 작업 중이던 규칙(사용될 여부가 존재하는 규칙/Then 부분에 목표가 있는 경우)은

   스택(stack)에 쌓아두며, 새로운 목표를 설정한다.

 - 더 이상 목표를 역추론하는데 필요한 새로운 목표가 없다면, Pop을 시키면서 규칙을 점화시킨다. 

 

 ex) 지식베이스에 A, B, C가 사실이라는 것이 존재. Z가 사실인지를 탐색.

  rule 1) 

   If Y is true and C is true then Z is true.

  rule 2)

   If B is true then X is true.

  rule 3) 

   If X is true and A is true then Y is true.

  rule 4)

   If A is true and B is true then D is true.

  rule 5)

   If W is true then K is true.

   

   > stack이 모두 Pop 된 후 지식베이스에 Z가 있는지를 확인. 있으므로 사실로 판정.

 - 장점 : short-term memory 사용이 적을 수 있다.

            필요한 rule은 사용하지 않아도 된다.

 - 특정한 사실 하나를 추론하는 경우에는 역방향 연결 추론 기법이 더 효과적

 

* 전문가 시스템에서의 추론 기법

 - 정보를 수집한 후 그 정보로부터 특정해를 추론하는 방법이 많이 사용되는 경우는 순방향 연결 추론 엔진 사용

 - 특정해를 가정한후 이를 증명하기 위해 필요한 사실을 찾으려는 것에서는 역방향 연결 추론 엔진 사용

 - 많은 전문가 시스템은 순방향과 역방향 연결 추론 엔진을 모두 적용하고 있다. 즉, 특별히 어떤 것이 좋다고 할 수는 없다.

 

* 규칙의 충돌 및 충돌 해법

 - 어떠 한 경우에는 IF에 오는 조건이 같은 두가지의 규칙이 있을 수 있다. 이경우 2가지의 규칙은 충돌했다고 한다.

  ex)  rule 1) IF A is true then B is true.

         rule 2) IF A is true then B is false.

         // 이 경우 규칙 1과 규칙 2는 충돌 했다고 할 수 있다.

 - 충돌은 피할 수 없는 경우가 많으며, 이러한 경우에 대비해서 최소한의 규칙만 생성하는 것을 권장한다.

 - 이러한 상황에서 어떤 것을 점화시킬지 정하는 것을 충돌 해법이라고 한다.

  ⓐ 각각의 규칙에 우선순위를 주는방법

   > 이 경우는 규칙에 우선순위를 정함으로써 중요한 순서에 따라 데이터를 처리하게 하는 것이다.

   > 충돌이 되는 경우 우선순위가 높은 것을 점화시킨다.

  ⓑ 최장 일치 전략

   > 이경우는 가장 특수한 규칙을 점화시킨다.

   > 가장 특수한 규칙이란, 조건절에 많은 정보를 닮고 있는 것을 의미한다.

   > 이 경우 한번에 더 많은 정보를 처리 할 것이라는 가정이 깔려 있다.

  ⓒ 가장 최근에 입력된 데이터를 선택하는 방법

   > 각각의 규칙의 사실에 시간테이블을 두어 가장 최근에 입력된 사실을 선택하는 방법이다.

 - 많은 경우 하나의 규칙이 점화 되어 해를 구하면, 더이상 탐색하지 않는 방법을 취하고 있다.

  > 이경우는 구해진 답이 오래되거나 안좋은 해일 수도 있다.

 

* 메타지식

 - 지식에 관한 지식

 - 특정 분야의 지식을 사용하고 제어하는데 필요한 지식으로 일을 처리할 때 효율을 높이는 역할을 한다.

 - 지식베이스의 가장 윗부분에서 사용하여 효율적인 탐색을 유도한다.

 - 메타지식은 추출하기 힘들다.

 

* 규칙기반 전문기 시스템의 장단점

 - 장점

  > 자연스러운 지식표현이 가능하다. 수치 Data가 아니여도 표현이 가능하다.

  > 통일된 구조 : 생성규칙이 단순한 IF -THEN  방식의 통일된 구조를 갖고 있다.

  > 지식과 과정의 분리 : 손쉽게 확장이 가능하다.

  > 불완전하고 불확실한 지식을 다룰 수 있다.

 - 단점 

  > 지식 획득의 병목현상(지식 획득과정이 힘들다)

  > 비효율적인 탐색 전략 : 추론시 오랜 시간이 걸릴 수 있다.

  > 특정 문제에 대해선 해를 구할 수 없을 수도 있다.

  > 학습능력이 없다. 

[출처] https://destiny738.tistory.com/439

 

 

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
233 [C 프로그래밍] 파일 출력 함수_3.연결 리스트 저장, 불러오기 졸리운_곰 2022.06.17 1
232 [UBUNTU] 우분투 20.04 USB 스틱에 설치 How to Install Ubuntu on a USB Flash Drive file 졸리운_곰 2022.06.02 6
» [인공지능] 추론 기법 file 졸리운_곰 2022.05.05 4
230 [C/C++] Modern C++ micro-service implementation + REST API file 졸리운_곰 2022.04.15 2
229 [C++ 인공지능] C ++을 이용한 단순 MLP 역 전파 인공 신경망 (단계 별) file 졸리운_곰 2022.04.11 7
228 [linux mater] Linux passwd : 인증 토큰 수정 오류 졸리운_곰 2022.03.04 6
227 [C/C++인공지능] An Introduction to Machine Learning Libraries for C++ file 졸리운_곰 2021.12.06 42
226 [C/C++][tensorflow 1.x] windows C lib : [Tensorflow] How to Install Tensorflow for C API file 졸리운_곰 2021.11.19 1
225 [C/C++][tensorflow] tensorflovw 1.x version 텐서플로우 C 예제 file 졸리운_곰 2021.11.19 10
224 [Visual Studio][boost c++] [C++] boost 설치 및 visual studio 설정 file 졸리운_곰 2021.11.18 0
223 [리눅스 마스터][linux, UNIX] 전설의 라인 에디트 Man page — ED 사용법 졸리운_곰 2021.11.18 2
222 [리눅스 마스터][linux, UNIX] [편집][shell] ed (line editer) 사용예 졸리운_곰 2021.11.17 2
221 [C/C++][gnuplot][수학][MFC] Windows 환경의 C++ 언어에서 gnuplot을 사용한 그래프 출력 2 file 졸리운_곰 2021.11.12 30
220 [C/C++][gnuplot][수학][MFC] Windows 환경의 C++ 언어에서 gnuplot을 사용한 그래프 출력 file 졸리운_곰 2021.11.12 15
219 [C/C++ 인공지능][linux][cuda] flashlight file 졸리운_곰 2021.11.09 3
218 [C/C++] C++ Basic Input/Output 졸리운_곰 2021.11.06 5
217 [C/C++] Console Input/Output Functions in C file 졸리운_곰 2021.11.05 2
216 [C/C++ 프로그래밍] CMake 예제 졸리운_곰 2021.11.04 9
215 C/C++의 만년, 패키지 매니저 file 졸리운_곰 2021.11.04 2
214 [docker][도커] 로컬 개발환경 Docker 사용하기 file 졸리운_곰 2021.10.16 4
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED