Ⅲ. 지식과 추론 – 3. 논리와 증명

3. 논리와 증명

1. 컴퓨터의 추론

사람이 생각하는 지식을 컴퓨터가 처리하려면 어떻게 해야 할까요?

다음과 같이 컴퓨터 프로그래밍 코드로 작성된 내용에 대해 살펴봅시다.

위의 소스코드를 가지고 새로운 지식을 추론해봅시다.

 

만약 A라면 B이다. // 해바라기라면 식물이다.

만약 B라면 C이다. // 식물이라면 뿌리가 있다.

라고 해석이 됩니다.

 

그렇다면 컴퓨터는 어떤 것을 더 추론할 수 있을까요?

만약 A라면 C이다. // 해바라기라면 뿌리가 있다.

라는 새로운 지식을 추론해낼 수 있습니다.

B라면 C이다(식물이라면 뿌리가 있다)와 같은 문장을 명제라고 합니다.

명제는 추론을 위한 가장 기본이 됩니다.

2. 명제

다음 문장은 참일까요 거짓일까요?

1. 한국의 수도는 서울이다.

2. 바위는 동물이다.

사람들이 사용하는 문장 중에는 위처럼 참과 거짓을 판별할 수 있는 것들이 있습니다. 이러한 문장을 ‘명제’라고 합니다. 즉, 문장이 갖고 있는 내용이 맞는지 틀리는지를 판별할 수 있어야 하므로 문장에 모두가 객관적으로 인정할 수 있는 조건이 포함되어 있어야 합니다. 명제인 문장을 좀 더 찾아볼까요?
  1. 지금이 몇 시인가요?
  2. 주의 깊게 읽어보세요.
  3. 2021년은 흰 소의 해이다.
  4. 사과 바구니에 사과 한 개를 더 넣었더니 두 개가 되었다.
  5. 민준이의 딸기와 하영이의 딸기를 합쳤더니 태양이의 딸기의 개수와 같아졌다.
  6. 튜링은 참 똑똑하다.

문장 1과 2는 참 또는 거짓을 판별할 수 없으므로 명제가 아닙니다.

문장 3은 참으로 판별할 수 있으므로 명제입니다.

문장 4는 사과 바구니에 있는 사과의 개수를 알 수가 없어 참, 거짓을 판별할 수 없기 때문에 명제가 아닙니다,

문장 5는 민준, 하영, 태양이의 딸기의 개수를 알 수 없어 참, 거짓을 판별할 수 없기 때문에 명제가 아닙니다,

문장 6은 대부분의 사람들이 튜링이 똑똑하다는 것을 인정하기는 하나 ‘똑똑하다’에 대한 기준이 명확하지 않기 때문에 참인지 거짓인지를 명확하게 할 수 없으므로 명제가 아니다.

명제 중에 조건이 포함되어 있어 참과 거짓을 판별할 수 있는 식도 있습니다.

이러한 식은 조건이 있으며 p의 값에 따라서 판별이 가능하기 때문에 명제라고 할 수 있습니다.

  • a=1, b=2 -> a+b=3 (참)
  • a<0, b<0 -> a*b<0 (거짓)

이러한 명제들은 서로 합하거나 곱하거나 부정을 하여 새로운 명제를 만들 수 있습니다. 다음 두 명제를 가지고 예시를 들어보겠습니다.

a. 온도가 30도 이상이다.

b. 습도가 70% 이상이다.

위 두 가지 명제는 에어컨을 자동으로 켜지게 하기 위한 조건인 명제 예시입니다.

만약 두 명제 중 하나라도 참일 경우 에어컨이 켜지도록 만든다면 이것은 논리합을 이용한 것입니다. 이를 a ∨ b로 나타냅니다.

만약 두 명제 모두 참이어야 에어컨이 켜지도록 만든다면 이것은 논리곱을 이용한 것입니다. 이를 a ∧ b로 나타냅니다.

만약 에어컨이 꺼지도록 만들기 위해 명제 a나 b의 반대말을 사용하고자 한다면 이것은 논리 부정을 이용한 것입니다. 이를 ~a 또는 ~b라고 나타냅니다.

 

이처럼 명제는 추론을 위한 가장 기본이 됩니다.

부울은 인간의 모든 생각을 명제로 표현하고, 명제와 명제를 AND, OR, NOT으로 결합하여 표현할 수 있다고 하였습니다. 이러한 부울의 생각은 컴퓨터를 탄생시키는 밑바탕이 되었습니다.

명제의 참과 거짓은 비트인 1과 0으로 표현하고 논리 연산으로 처리하여 컴퓨터에 입력된 값을 출력할 수 있도록 하였습니다. 디지털 컴퓨터는 전기를 사용하기 때문에 2개의 상태만을 표현하는 방법을 사용해야 하고, 두 개의 입력값을 논리연산으로 처리하면 자동화된 시스템을 구현할 수 있기 때문입니다.

출처: http://computing.or.kr/11728/%EB%94%94%EC%A7%80%ED%84%B8-%EC%8B%9C%EA%B3%84%EB%A5%BC-%EB%A7%8C%EB%93%A4%EC%9E%90-%EB%85%BC%EB%A6%AC%ED%9A%8C%EB%A1%9C/

<참고>

                                              

출처: http://computing.or.kr/11728/%EB%94%94%EC%A7%80%ED%84%B8-%EC%8B%9C%EA%B3%84%EB%A5%BC-%EB%A7%8C%EB%93%A4%EC%9E%90-%EB%85%BC%EB%A6%AC%ED%9A%8C%EB%A1%9C/

3. 논리와 추론

논리는 앞서 살펴보았던 것처럼 인공지능에서 지식을 표현하는 방법 중에서 하나입니다. 사람의 언어를 컴퓨터에 입력하여 문제를 처리하기 위해서는 말로 표현된 문장을 기호로 나타내어 표현하고, 그것으로 참인지 거짓인지를 판별합니다. 참 또는 거짓으로 추론해내기까지의 과정을 ‘논리’라고 합니다. 가장 먼저 논리를 통해 추론하는 방법을 도입한 사람은 아리스토텔레스입니다. 아리스토텔레스는 삼단논법을 통해 그걸 증명하였는데, 예를 들면 다음과 같습니다.

명제 1 : 펭귄은 새이다.

명제 2 : 새는 날개가 있다.

그러므로 펭귄은 날개가 있다.

여기에서 ‘펭귄은 새이다.’와 ‘새는 날개가 있다.’는 참으로 판별할 수 있는 명제입니다. 두 개의 참인 명제로 ‘펭귄은 날개가 있다.’라는 새로운 사실이나 지식을 추론해낼 수 있습니다.

위의 두 명제로부터 결론을 도출하는 과정을 더 상세하게 살펴보겠습니다. 명제는 객체(p)과 술어(q)로 나눌 수가 있습니다. 예를 들어 ‘펭귄은 새이다.’라는 명제는 ‘펭귄은(p) + 새이다.(q)’로 분류할 수 있습니다.

출처: 픽사베이

이번엔 두 명제의 객체과 술어를 분리하여 기호를 붙여 보겠습니다. ‘펭귄은(A) + 새이다.(B)’와 ‘새는(B) + 날개가 있다.(C)’로 나타낼 수 있습니다. 기호로만 표현해 보면 ‘A=B’와 ‘B=C’입니다. 공통적인 부분 B를 통해 A와 C의 관계를 식으로 표현해 보면 ‘A=C’라는 결론을 도출할 수 있습니다. 이를 다시 명제로 나타내면 ‘펭귄은(A) 날개가 있다.(C)’가 됩니다.

 

4. 추론의 종류

  우리는 펭귄에게는 당연히 날개가 있다고 알고 있지만 인공지능은 이러한 과정을 통해 명제1과 명제2로 ‘펭귄은 날개가 있다.’는 명제를 도출해냅니다. 이처럼 전제로부터 논리적 주장을 통하여 특정한 결론에 도달하는 것을 연역 추론(연역법)이라고 합니다. 연역 추론으로 탄생한 결론은 다시 전제가 될 수 있으며 역사적으로 과학, 철학에서 새로운 이론을 내세우거나 검증할 때 큰 역할을 하였습니다. 연역 추론에서는 전제와 불일치되는 관찰을 통해 관련된 명제가 삭제될 수 있습니다.

  귀납추론(귀납법)은 우리가 사실이나 현상을 관찰하여 얻어진 정보를 바탕으로 결론을 도출하는 것을 말합니다. 전제로부터 시작하는 연역법과는 달리 관찰 및 탐색으로 규칙을 발견하여 결론을 도출하는 추론 방법입니다. 귀납 추론에서는 경험에 의존하기 때문에 경험하지 않은 경우를 고려하지 못합니다. 만약 규칙과 다른 경우가 발견되면 그 결론은 사용되지 못합니다.

귀추법은 어떤 특이한 현상이 나타났을 때 그 현상을 가장 잘 설명하는 가설을 추론하는 과정입니다. 예를 들어 ‘강아지 해피가 짖는다. 강아지가 짖는 행위는 위협을 감지했을 때이다. 그러므로 해피는 위협을 받았다고 추측할 수 있다.’의 과정을 가지고 있습니다. 귀추법은 현상을 설명하기 위하여 다양한 가설들이 제시됩니다. 다른 가설들보다 더 성공적인 가설이 받아들여지거나 받아들여진 가설이 뒤집히기도 합니다. 귀추법은 가장 최선의 설명 방식을 찾아 나가는 과정이라고 할 수 있습니다.

5. 증명

앞서 도출한 결론인 ‘펭귄은 날개가 있다.’를 예시로 하나 더 이야기해 보겠습니다. 명제 ‘펭귄은 날개가 있다.’는 참입니다. ‘펭귄은’ 은 ‘p’라고 하며 ‘날개가 있다.’는 ‘q’라고 해봅시다.

p 객체

q 술어

펭귄은

날개가 있다.

기호 앞에 ‘~’를 붙이면 반대의 의미가 됩니다. ~p는 p의 반대말이고, ~q는 q의 반대말을 의미합니다. 따라서 ‘~p’는 ‘펭귄이 아니다.’가 되며 ‘~q’는 ‘날개가 없다.’가 됩니다. 여기서 만약 명제 ‘p이면 q이다.’가 ‘참’이라면 ‘~q는 ~p이다.’라는 명제로 표현한 것도 ‘참’이 됩니다. 명제로 다시 표현하면 ‘날개가 없는 것(~q)은 펭귄이 아니다.(~p)’가 됩니다.

~q

~p

날개가 없는 것은

펭귄이 아니다.

이렇게 특정 명제가 ‘참’이라고 했을 때 명제로부터 객체와 술어를 반대말로 바꾸고 순서도 앞과 뒤를 바꾼 명제도 ‘참’인 규칙을 이용한 것을 ‘증명’이라고 합니다. 우리가 어떤 주장을 할 때는 증거를 제시해야 합니다. 직접 관찰, 탐색하며 증거물을 모을 수도 있지만, 논리학에서는 위에서처럼 명제를 바탕으로 새로운 결론을 도출하는 과정을 이용하여 증명하는 방식을 더 중요하게 여깁니다.

다른 예시로 증명을 해봅시다.

명제1 : 붕어는 어류이다.

명제2 : 어류는 물에 산다.

위의 두 개의 명제를 통해 도출할 수 있는 결론은 무엇인가요?

맞습니다. ‘붕어는 물에 산다.’입니다.

그렇다면 도출한 결론을 p와 q로 나타내어 봅시다.

p

q
붕어는

물에 산다.

참인 위의 명제를 ~q이면 ~p이다.의 형태로 나타내 봅시다.

~q

~p

물에 살지 않는 것은

붕어가 아니다.

이제 논리와 증명을 설명할 수 있게 되었나요?

6. 기호주의의 시작

인간의 지식을 명제로 나타내고 A와 B와 같은 기호로 표현해 보았습니다. 이처럼 명제를 기호화하여 다루는 것은 인공지능 역사에서 ‘기호주의’의 기원이 됩니다. 사람은 대화할 때 논리에 크게 엇나가지 않는 범위에서 경험이나 직관으로 상황을 읽고 판단하기 때문에 큰 문제가 발생하지 않습니다. 하지만 인간의 언어를 문자 그대로 컴퓨터에 입력하게 되면 컴퓨터가 인식해야 할 정보가 많으므로 많은 오류가 일어납니다. 컴퓨터의 프로그램은 논리에 맞도록 정보를 입력해야 오류가 나지 않고 원활하게 작동합니다. 논리와 증명은 지식을 구조화, 체계화하여 인공지능이 효과적으로 정보를 인식한 후 문제를 처리할 수 있도록 합니다. 따라서 논리와 증명을 잘 활용할 수 있어야 인공지능을 효율적으로 다루게 됩니다.

Think Good AI

자동차 자율주행과 같이 생명과 직결된 분야에 인공지능의 판단을 전적으로 신뢰할 수 있을까? 교통사고가 났을 때 그에 대한 책임은 누가 져야 하는걸까?

퀴즈

프로그래밍 코드로 다음을 작성한다고 했을 때 두 번째 문장에 들어갈 말은 무엇일까요? 1. 전원 버튼을 누르면 컴퓨터가 켜진다. 2. _________________________________? 결론 전원 버튼을 누르면 윈도우 화면이 나온다. 들어갈 말은 ‘컴퓨터가 켜지면 윈도우 화면이 나온다.’이다. 맞으면 O, 틀리면 X를 선택하세요.

Correct! Wrong!

다음 중 명제를 모두 고르세요.

Please select 2 correct answers

Correct! Wrong!

다음 조건을 만족해야 보안장치가 풀리는 프로그램을 개발하려고 합니다. 기호화시켰을 때 알맞은 것은 무엇일까요? -지문이나 안면 인식을 통과해야 한다. -최종적으로 음성인식을 통과해야 한다. a. 지문 인식을 통과한다. b. 안면 인식을 통과한다. c. 음성 인식을 통과한다.

Correct! Wrong!

연역법과 귀납법에 대한 설명으로 틀린 것은 무엇인가요?

Correct! Wrong!

다음 명제로부터 나오는 결론을 증명하려고 합니다. 마지막에 나온 명제로 증명할 수 있을까요? 1. 버튼을 누르면 먹이가 나온다. 2. 먹이가 나오면 원숭이가 먹이를 먹는다. 결론 __________________________________________________ 증명: 원숭이가 먹이를 먹지 않으면 버튼을 누르지 않았다. 맞으면 O, 틀리면 X를 선택하세요.

Correct! Wrong!