AI & BigData/인공지능 이론

인공지능(AI) #2_ 논리, 추론, 모형(logic, entailment, model)

Tigercow.Door 2017. 11. 2. 23:50


이번에는 지난 포스팅에 이어서 논리와 추론, 모형에 대해서 알아보도록 하겠습니다.

내용을 설명하면서 이해를 돕기 위해 웜푸스 세계에 대한 이야기를 가져오는 경우도 있으니, 웜푸스 세계에 대해서 대략적으로라도 확인하지 못하신 분들은 지난 포스팅을 참고하시길 바랍니다.


1. 논리(Logics)


이번에는 논리적 표현과 추론의 근본 개념들을 소개합니다.

지난 포스팅에서 지식 기지에 대해서 알아보았습니다. 그리고 지식 기지는 문장들로 구성된다고 하였습니다. 여기서 문장들은 표현 언어의 구문(Syntax)을 따릅니다. 표현 언어의 구문은 적격(well-formed)인 문장을 규정합니다. 쉽게 말해서 구문은, 문장을 만드는 규칙을 말합니다. 예를 들어, "x+y=1"이라는 문장은 적격이지만 "+x1y="은 적격이지 않습니다.

논리는 문장의 의미론(Semantics), 즉 문장의 뜻도 함께 정의해야 합니다. 의미론은 각각의 가능한 세계(possible world)에 대한 문장의 진리(truth: 참 또는 거짓)를 정의합니다. 예를 들어 "x+y=2"라는 문장은 x가 1이고 y가 1인 세계에서 참이지만 x가 1이고 y가 0인 세계에서는 거짓입니다. 표준적인 논리에서 모든 문장은 각각의 가능한 세계에서 진리를 표현, 즉 참 또는 거짓이어야 합니다. 참도 아니고 거짓도 아닌 애매한 문장은 존재하지 않습니다. 아래의 예시들로 다시 한번 정리할 수 있습니다.


'x + 2 >= y' is a sentence; x2+y>= is not sentence

'x + 2 >= y' is true iff the number x + 2 is no less than the number y

'x + 2 >= y' is true in a world where x=7, y=1

'x + 2 >= y' is false in a world where x=0, y=6



2. 추론(Entailment)


논리적 추론에서는 위에서 알아본 문장들 사이의 논리적 함축(entailment) 관계가 관여합니다.

함축이란, 한 문장이 다른 문장을 '논리적으로 따른다(follow)'는 개념을 나타내는 용어입니다. 함축은 아래와 같은 표기법으로 나타낼 수 있습니다.

이는 모든 문장 (이후 a라고 표기)가 문장 (이후 b라고 표기)를 함축한다는 뜻 입니다.

함축이란 용어의 형식적인 정의는 다음과 같습니다. 만일 a가 참인 모든 가능한 세계에서 b 역시 참일때에만 a|=b 이다.

즉 위의 표기법에서 a가 b 보다 더 강한 문장입니다. 


이러한 함축이라는 개념을 웜푸스 세계의 예제에도 적용할 수 있습니다.



에이전트는 (1,1)의 방에서는 아무것도 감지하지 못했지만 (2,1)에서는 미풍을 감지하였습니다. 이러한 지각들과 웜푸스 세계의 규칙들에 대한 에이전트의 지식이 합쳐져서 에이전트의 지식 기지를 형성합니다. 에이전트 입장에서는 (1,2)와 (2,2), (3,1)에 구덩이가 있는지가 관심의 대상입니다. 그 세칸에는 각각 구덩이가 존재하는지 존재하지 않는지의 경우가 존재하므로 가능한 세계의 수는 2의 3승, 총 8개 입니다. 이러한 세계를 도형으로 나타내면 아래와 같습니다.




위의 그림에서 각각의 선이 의미하는 바는 다음과 같습니다.


KB = 에이전트가 가지고 있는 지식 기반

= "(1,2)에 구덩이가 없다." (이후 a1 이라고 표기)

= "(2,2)에 구덩이가 없다." (이후 a2 라고 표기)


a1이 가능한 세계들과 a2가 가능한 세계들이 위의 그림에 표현되어 있습니다.

이들로 부터 우리는 다음과 같은 사실을 알 수 있습니다.


KB가 참인 모든 가능한 세계에서 a1도 참이다.


따라서 KB|=a1 입니다. 즉 (1,2)에는 구덩이가 없습니다. 또한 다음과 같은 사실도 알 수 있습니다.


KB가 참인 가능한 세계중 a2가 거짓인 가능한 세계들이 존재한다.


따라서 KB|=a2가 아닙니다. 즉 에이전트는 (2,2)에 구덩이가 없다는 사실을 도출할 수 없습니다. 마찬가지로 (2,2)에 구덩이가 있다는 사실 또한 도출할 수 없습니다.


이러한 예시는 함축관계를 보여줄 뿐만 아니라, 함축의 정의를 이용해서 결론을 이끌어 내는 방법, 즉 논리적 추리를 수행하는 방법 또한 보여줍니다.


함축과 추리의 이해에 도움이 되기 위해 KB의 모든 결과의 집합이 건초 더미이고 a가 하나의 바늘이라고 생각하면, 함축은 건초 더미에 바늘이 존재한다는 것에 해당하고, 추리는 그 바늘을 찾는 것에 해당합니다.

이러한 구분을 형식적 표기법으로 나타낼 수 있습니다.

추리 알고리즘 i가 KB로부터 a를 도출할 수 있을 때, 이를

로 표현할 수 있습니다. 이것은 'a가 i에 의해 KB로부터 유도된다' 또는 'i는 KB로부터 a를 유도한다'로 말 합니다.


함축된 문장들만 유도하는 추리 알고리즘을 가리켜 건전한(sound) 또는 진리를 보존하는(true-preserving) 알고리즘이라고 말합니다. 반대로 생각해본다면, 건전하지 않은 추리 절차는 추리과정에서 무언가를 근거 없이 만들어 냅니다.

완결성(completencess) 역시 바람직한 속성입니다. 함축된 임의의 문장을 유도할 수 있는 추리 알고리즘은 완결적 입니다. 실제 건초 더미의 경우 지푸라기들을 체계적으로 조사한다면 그 건초 더미에 바늘이 있는지의 여부를 항상 결정할 수 있음이 명핵합니다. 그러나 지식 기지 중에는 결과들의 건초 더미가 무한한 것들이 많기 때문에 완결성이 중요한 문제가 됩니다. 다행히, 여러 지식 기지를 다루기에 충분한 표현력을 가진 완결적인 논리적 추리 절차들이 많이 있습니다.


지금까지 전제들이 참인 세계에 대해서는 결론이 반드시 참인 추론 공정을 알아보았습니다.

정리하자면, 만일 실제 세계에서 KB가 참이면, 건전한 추리 절차를 이용해서 KB로부터 유도한 임의의 문장 a도 실제 세계에서 참입니다.



3. 모형(Model)


앞서 논리에 대한 이야기를 진행하면서 '가능한 세계'라는 표현을 많이 사용하였습니다. 헌데, 좀 더 엄밀한 정의가 필요할 때 '가능한 세계'대신 '모형(Model)'이라는 용어를 사용합니다.

가능한 세계는 에이전트가 처할 수도 있고 그렇지 않을 수도 있는, 잠재적인 실제 환경이라고 생각할 수 있는 반면, 모형은 수학적인 추상입니다. 각각의 모형은 그냥 모든 유관한 문장의 참 또는 거짓을 고정시킨 것입니다. 

문장 a가 모형 m에서 참일 떄, 이를 'm이 a를 만족한다'라고 말할 수 있습니다. 때에 따라서는 'm이 a의 모형이다'라고 말할 수도 있습니다. 또한 a의 모든 모형의 집합을 M(a)로 표기합니다.


다음 포스팅에서는 명제논리라는 것에 대해서 알아보겠습니다.

명제논리의 구문과 그 의미론을 설명하고 그런 다음 어떤 문장이 다른 어떤 문장을 따른다는 함축 관계를 살펴보도록 하겠습니다.

내용에 대한 피드백이나 궁금한 점은 언제든지 댓글을 이용해주세요 :)

728x90