6주차 강의일지
OOP
1. OOP
Symbolic AI에서 OOP(객체지향 프로그래밍)는 개념을 객체로 정의하고 이를 조작하여 AI 시스템을 설계하는 데 사용된다. 객체지향 프로그래밍의 핵심 요소인 클래스, 객체, 상속, 다형성 등을 활용해 복잡한 개념을 추상화하고 계층화된 구조로 표현할 수 있다.
예를 들어, 클래스를 통해 추론 엔진이나 지식 베이스를 정의하고, 객체로 구체적인 데이터나 규칙을 나타낼 수 있다. 상속을 사용하면 지식의 특정 구조나 규칙을 재사용할 수 있고, 다형성으로 여러 상황에서 유연하게 적용할 수 있다.
이 방식은 AI 시스템이 문제를 인간과 유사한 논리 구조로 다루도록 돕고, 코드의 가독성과 유지보수성을 높이는 데 기여한다.
2. Production Rule
Production Rule은 지식 기반 시스템에서 조건과 행동을 명시한 규칙으로, 일반적으로 “If-Then” 형식으로 작성된다. 여기서 “If” 부분은 특정 조건을, “Then” 부분은 조건이 충족되었을 때 수행할 행동을 나타낸다. 이러한 규칙은 시스템이 특정 조건에서 어떤 결정을 내려야 할지 정의해주며, 논리적 추론의 기본 단위로 사용된다.
Knowledge-Based System(KBS)는 주어진 지식을 기반으로 문제를 해결하는 시스템으로, 이를 위해 PM(Production Memory), WM(Working Memory), IE(Inference Engine)**이 핵심 역할을 한다:
PM (Production Memory) PM은 시스템이 사용하는 모든 규칙(production rule)을 저장하는 곳이다. 각 규칙은 특정 조건이 만족되었을 때 수행할 동작을 설명하며, 이 규칙들은 문제 해결을 위한 지식을 구성한다. 예를 들어, 의료 진단 시스템의 경우, “If 증상이 발열 and 기침, Then 독감 의심”과 같은 규칙이 포함될 수 있다.
WM (Working Memory) WM은 사실(fact)을 저장하는 공간으로, 현재 시스템이 알고 있는 정보나 상태를 나타낸다. 시스템이 동작 중에 추가적으로 얻거나 수정하는 데이터가 WM에 저장되며, 이를 통해 IE가 규칙의 조건을 평가하게 된다. 예를 들어, 환자의 증상이나 상황 같은 정보가 WM에 저장될 수 있다.
IE (Inference Engine) IE는 규칙과 사실을 조합하여 논리적으로 추론을 수행하는 엔진이다. IE는 WM의 사실과 PM의 규칙을 비교하고, 조건이 충족된 규칙을 실행한다. 실행된 규칙이 새로운 사실을 생성하면, 이를 WM에 추가하거나 업데이트하여 또 다른 규칙의 조건으로 사용할 수 있다. 이러한 과정은 추론(reasoning)을 통해 시스템이 결론이나 행동을 도출할 수 있게 한다.
요약하면, KBS는 PM에 저장된 규칙과 WM의 사실을 IE가 논리적으로 조합하여 문제를 해결하는 시스템이다.
3. Conflict Set
Conflict Set(충돌집합)은 지식 기반 시스템에서 여러 개의 규칙이 동시에 활성화될 때 발생하는 상황을 설명하는 개념이다. 시스템의 Working Memory(WM)에서 현재 사실이 여러 규칙의 조건을 만족할 경우, 이러한 규칙들은 “conflict set”을 형성한다.
주요 포인트:
-
동시 활성화: 특정 상황에서 여러 규칙이 동시에 조건을 충족하게 되면, 이 규칙들이 conflict set에 포함된다. 예를 들어, WM에 “증상이 발열”과 “기침”이 있다고 가정할 때, 두 개 이상의 규칙이 이 두 조건을 만족할 수 있다.
- 규칙의 우선순위: Conflict set에 포함된 규칙들 중 어떤 규칙을 실행할지를 결정해야 한다. 이때, 규칙의 우선순위를 정하는 방법은 여러 가지가 있다. 일반적인 방법으로는 다음과 같은 것들이 있다:
- 가장 먼저 등록된 규칙: 먼저 정의된 규칙을 우선 실행한다.
- 우선순위 점수: 각 규칙에 점수를 매겨 높은 점수를 가진 규칙을 먼저 실행한다.
- 가장 구체적인 규칙: 조건이 가장 구체적인 규칙을 우선 실행한다.
- 결정 프로세스: Conflict set에서 규칙을 선택하는 과정은 Conflict Resolution이라고 하며, 이 과정에서 선택된 규칙이 실행되고, WM의 상태가 업데이트된다. 이후, 새로운 사실이 WM에 추가될 수 있으며, 이로 인해 새로운 conflict set이 발생할 수 있다.
결론적으로,conflict set은 여러 규칙이 동시에 활성화되는 상황에서 어떤 규칙을 선택할지를 결정하는 과정의 핵심 요소이다. 이를 통해 지식 기반 시스템이 효과적으로 추론하고 결정을 내릴 수 있도록 돕는다.