인공지능 기초

지식의 표현과 논리 추론

인공지능이 인간의 지식을 컴퓨터 안에 표현하는 방법과, 이를 바탕으로 스스로 결론을 이끌어내는 논리 추론 과정을 알아봅니다.

학습 목표

  1. 데이터·정보·지식의 차이를 구별하고, 지식이 어떻게 만들어지는지 설명할 수 있다.
  2. 인공지능이 지식을 표현하는 다양한 방법(규칙 기반, 의미망, 프레임)을 이해한다.
  3. 규칙과 사실을 이용한 추론으로 새로운 사실을 이끌어 내고, 그 방식의 한계를 설명할 수 있다.
  4. 규칙 기반 시스템과 전문가 시스템의 구조·한계를 비교하고, 기계학습 방식과의 차이를 설명할 수 있다.
  5. 명제 논리와 술어 논리의 차이를 설명할 수 있다. (참고 자료)
  6. 전건 긍정(Modus Ponens) 추론 원리를 이해한다. (참고 자료)
  7. Wumpus World 예시를 통해 논리 기반 에이전트의 사고 과정을 이해한다. (참고 자료)

지식이란 무엇인가

컴퓨터가 무언가를 「안다」는 것은 어떤 상태일까?

지식을 표현하는 방법을 배우기 전에, 데이터·정보·지식부터 구분해 봅시다.

인공지능이 판단하는 방법에는 탐색, 지식의 표현과 추론, 기계학습 세 갈래가 있습니다. 여기서 다룰 것은 두 번째 갈래입니다.

두 갈래는 하는 일이 다릅니다. 탐색은 갈 수 있는 길을 하나씩 확장해 보며 목표까지 가는 경로를 찾아냅니다. 반면 지식의 표현과 추론은 길을 하나씩 확장하지 않습니다. 이미 알고 있는 사실과 규칙을 맞대어, 적혀 있지 않던 새로운 사실을 이끌어 냅니다. 그러려면 먼저 「알고 있는 것」을 컴퓨터에 적어 두어야 합니다. 그것이 이 강의노트의 출발점입니다.

데이터에서 지식까지

컴퓨터에 넣어 줄 「아는 것」은 하늘에서 떨어지지 않습니다. 낱낱의 기록을 모아 정리하고, 거기서 반복되는 것을 찾아내는 단계를 거쳐 만들어집니다.

지식 정보 데이터 다음에도 통함 지금 상황을 말함 적어 둔 기록 위로 갈수록 정리된 것

데이터(data)

관찰하거나 측정해서 그대로 적어 둔 낱낱의 기록입니다. 기록 하나만 놓고 보아서는 그것이 무엇을 뜻하는지 알 수 없습니다.

정보(information)

데이터를 목적에 맞게 모으고 정리해 뜻이 드러나게 만든 것입니다. 지금 이 상황이 어떠한지를 알려 줍니다.

지식(knowledge)

여러 정보에서 반복되는 관계를 찾아 정리한 것입니다. 이번 상황만이 아니라 다음에 비슷한 일이 생겼을 때에도 쓸 수 있습니다.

단계 학교 도서관 대출 기록으로 보면 여기서 알 수 있는 것
데이터 10월 14일 38권, 10월 15일 41권, 10월 16일 35권 … 날짜와 권수를 그대로 적은 목록(권수는 수업에서 원리를 확인하려고 지어낸 값) 그날 몇 권이 나갔다는 사실뿐
정보 같은 기록을 요일별로 묶어 보니 「이번 학기에는 금요일 대출이 가장 많다」 이번 학기 우리 학교의 상황
지식 여러 학기를 비교해 보니 「시험이 끝난 주에는 대출이 늘어난다」 다음 학기 대출을 미리 대비할 수 있음

그래서 이 강의노트의 제목이 「지식의 표현」입니다

「시험이 끝난 주에는 대출이 늘어난다」처럼 다음에도 쓸 수 있게 정리된 것이라야 컴퓨터에 넣어 둘 값어치가 있습니다. 그런데 사람의 말로 적어 둔 문장을 컴퓨터가 그대로 알아듣지는 못합니다. 이 지식을 컴퓨터가 다룰 수 있는 모양으로 바꾸어 적는 일, 그것이 지식 표현입니다.

참고로, 이렇게 쌓인 지식을 바탕으로 무엇을 할지 판단하는 능력을 지혜라고 부르기도 합니다. 이 이름까지 외울 필요는 없습니다.

스스로 확인

「오늘 우리 반 결석생은 3명이다」는 데이터·정보·지식 중 어디에 가까울까요? 그렇게 생각한 까닭도 함께 말해 보세요.

지식 표현 방법

사람이 아는 것을 컴퓨터에게는 어떤 모양으로 적어 줘야 할까?

인간의 지식을 컴퓨터가 처리할 수 있는 데이터 형태로 구조화하여 저장하는 다양한 방법들을 살펴봅니다.

규칙 기반 시스템 (Rule-Based System)

인간의 지식을 「만약 ~라면, ~이다 (IF-THEN)」 형식의 규칙으로 컴퓨터에 저장하는 방식입니다. 조건이 충족되면 지정된 결론이나 행동을 수행합니다. 규칙은 AND(그리고), OR(또는) 연산자를 사용해 두 개 이상의 조건이나 결론을 결합한 형태로도 만들 수 있습니다.

스마트 에어컨 규칙을 그림으로

조건 (IF) 실내 온도가 28도 이상이다 AND 실내에 사람이 있다
결론/행동 (THEN) 에어컨 전원을 켠다

규칙 기반 시스템의 구조

사용자 질의
지식 베이스(규칙 베이스) 문제 해결에 필요한 규칙·사실 저장
추론 엔진 규칙을 적용해 결론 도출
결과 출력

여기서 추론이란 저장해 둔 규칙과 사실을 맞대어 적혀 있지 않던 결론을 이끌어 내는 것입니다. 어떻게 이끌어 내는지는 뒤의 「추론」 절에서 자세히 다룹니다.

규칙 기반 시스템의 한계

  • 규칙이 많아질수록 규칙 간의 관계가 모호해지고, 탐색해야 할 규칙이 늘어나 실행 속도가 느려집니다.
  • 시스템이 스스로 학습하지 못하므로, 예외 상황이 생길 때마다 사람이 직접 규칙을 추가·수정해야 합니다.

전문가 시스템 (Expert System)

전문가 시스템은 규칙 기반 시스템의 지식 베이스에 특정 분야 전문가의 지식을 IF-THEN 규칙으로 담아, 그 분야의 문제를 전문가처럼 진단·해결하도록 만든 인공지능입니다. 의료 진단, 법률 자문, 기상 예측, 항공기 이착륙 관리 등 다양한 분야에서 활용됩니다.

결막염을 진단하는 전문가 시스템의 규칙

IF 눈이 충혈되었다 AND 눈곱이 많이 낀다 THEN 결막염으로 진단한다.

IF 결막염이 진단되었다 THEN 안약을 처방한다.

전문가 시스템의 한계: 지식 획득 병목(Knowledge Acquisition Bottleneck)

전문가 시스템의 성능은 지식 베이스의 품질에 좌우됩니다. 그런데 인간 전문가의 지식을 규칙으로 정리해 입력하는 작업은 시간과 비용이 많이 들고, 전문가마다 판단이 달라 규칙으로 옮기기 어려운 경우도 많습니다. 이처럼 지식을 사람이 일일이 정리해 입력해야 하는 한계를 「지식 획득 병목」이라고 합니다.

규칙 기반·전문가 시스템과 기계학습

규칙 기반 시스템과 전문가 시스템은 사람이 지식을 직접 규칙으로 만들어 넣어야 하지만, 기계학습은 데이터로부터 컴퓨터가 스스로 규칙(패턴)을 찾아낸다는 점에서 근본적인 차이가 있습니다.

구분 규칙 기반·전문가 시스템 기계학습
지식의 출처 사람(전문가)이 규칙을 직접 작성 데이터로부터 규칙(패턴)을 자동 학습
장점 추론 과정이 명확하고 이해하기 쉬움 사람이 정의하기 어려운 복잡한 패턴도 학습
한계 지식 획득 병목, 규칙이 많아지면 비효율적 많은 데이터 필요, 판단 근거 설명이 어려움

해 보기: 규칙 기반 시스템 체험하기

친구들과 함께 아래와 같은 조건(IF)과 행동(THEN)을 이용해 자동차의 운행 규칙을 만들고, 주어진 상황에 규칙을 적용해 결과를 추론해 봅시다.

조건 (IF) 행동 (THEN)
신호등이 녹색이다. 앞으로 움직인다.
전방에 장애물이 있다. 멈춘다.

위 규칙을 적용하면, 「신호등이 황색이다」처럼 어떤 규칙에도 해당하지 않는 상황에서는 결과를 추론할 수 없습니다. 이럴 때 어떤 규칙을 추가해야 할지 친구들과 이야기해 봅시다.

의미망 (Semantic Network)

개념들을 노드(Node)로 나타내고, 개념들 사이의 관계를 간선(Edge/화살표)으로 연결하여 지식을 그물망처럼 표현하는 방식입니다. 개념 간의 계층적 관계나 속성을 직관적으로 파악하기 좋습니다.

동물의 의미망을 그림으로

원(노드)은 개념을, 화살표(간선)는 관계를 의미합니다.

~이다 (is-a) ~이다 (is-a) 가진다 (has-a) 할 수 있다 (can) 동물 (Animal) 새 (Bird) 참새 (Sparrow) 날개 날기

프레임 (Frame)

특정 객체나 상황에 대한 지식을 슬롯(Slot)과 값(Value)의 쌍으로 구성된 표 형태로 표현하는 방식입니다. 현대 프로그래밍의 객체지향(Object-Oriented) 개념과 매우 유사하여 속성들을 일괄적으로 묶어서 관리하기 좋습니다.

「학생」 프레임을 그림으로

프레임 이름: 학생 (Student)
슬롯 (속성)
값 (데이터)
이름 (Name)
학생 A
학년 (Grade)
고등학교 2학년
동아리 (Club)
인공지능 동아리
스스로 확인

「우리 가족 관계」를 컴퓨터에게 알려 준다면 규칙·의미망·프레임 가운데 어느 것이 알맞을까요? 고른 까닭을 한 문장으로 말해 보세요.

추론 — 아는 것에서 새 사실 이끌어 내기

적어 준 것이 아는 것의 전부일까?

규칙과 사실을 맞대면, 적어 두지 않았던 사실이 새로 생겨납니다.

사실, 규칙, 그리고 추론

사실(fact)

지금 참이라고 확인된 낱개의 문장입니다. 조건이 붙지 않습니다. (예: 「오늘 미세 먼지 농도가 나쁨이다.」)

규칙(rule)

어떤 조건이 참일 때 무엇이 따라오는지를 이어 적은 문장입니다. 조건이 맞아떨어지기 전까지는 아무 일도 일어나지 않습니다. (예: 「만약 ~이면 ~한다.」)

추론(inference)

사실과 규칙을 맞대어 적어 두지 않았던 새 사실을 만들어 내는 과정입니다. 사실과 규칙이 「재료」라면 추론은 그것을 맞대어 보는 「동작」입니다.

이어 붙이면 어디까지 갈까 — 교실 공기 관리 시스템

사실 1

오늘 미세 먼지 농도가 「나쁨」이다.

규칙 1

만약 미세 먼지 농도가 「나쁨」이면 창문을 닫는다.

새로 얻은 사실 1

창문을 닫는다. (사실 1과 규칙 1을 맞대어 얻음)

규칙 2

만약 창문을 닫으면 공기가 탁해지므로 공기 청정기를 켠다.

새로 얻은 사실 2

공기 청정기를 켠다. (새로 얻은 사실 1과 규칙 2를 맞대어 얻음)

눈여겨볼 것은 두 번째 단계입니다. 추론으로 얻은 결론이 다시 사실이 되어 다음 규칙의 조건 자리에 들어갔습니다. 이렇게 이어 붙이면, 처음에 적어 준 것은 사실 하나와 규칙 둘뿐인데도 「미세 먼지가 나쁘면 공기 청정기를 켠다」는 적어 준 적 없는 결론에 이릅니다. 이것이 인공지능이 「새로운 지식을 만들어 낸다」고 말할 때의 뜻입니다.

다만, 이 방식이 알 수 있는 것에는 울타리가 있습니다

  • 규칙과 사실이 참일 때에만 결론이 참입니다. 규칙 하나를 잘못 적어 두면 그 규칙에서 뻗어 나간 결론이 줄줄이 함께 틀립니다. 추론 자체는 어디가 잘못됐는지 알려 주지 않습니다.
  • 적어 주지 않은 것은 알지 못합니다. 앞의 활동에서 「신호등이 황색이다」에 해당하는 규칙이 없어 결과를 낼 수 없었던 것과 같습니다. 사람이라면 눈치로 넘어갈 상황도, 규칙이 없으면 모른다고 멈춰 섭니다.
  • 그 규칙을 사람이 다 적어야 합니다. 다룰 상황이 늘어날수록 적어야 할 규칙도 늘어나고, 규칙끼리 부딪히지 않는지도 사람이 살펴야 합니다. 이것이 앞에서 본 지식 획득 병목입니다.

그렇다고 이 방식이 기계학습보다 못하다는 뜻은 아닙니다. 둘은 서로 다른 대가를 치릅니다. 규칙을 적어 두는 방식은 사람이 규칙을 다 적어야 하는 대신 판단의 근거가 훤히 보이고, 기계학습은 규칙을 스스로 찾아내는 대신 왜 그렇게 판단했는지 설명하기 어렵습니다. 의료 진단처럼 근거를 반드시 말할 수 있어야 하는 분야에서는 규칙 쪽이 여전히 쓰이는 까닭이 여기에 있습니다.

스스로 확인

위 공기 관리 시스템에 「만약 공기 청정기를 켜면 소음이 커지므로 안내 방송을 한다」는 규칙 3을 더하면, 오늘은 어떤 결론까지 나오게 될까요?

참고

논리 기반 표현

사람의 말을 기호로 바꾸면 무엇이 좋아질까?

인간의 언어에 담긴 사실을 수학적 기호와 논리식으로 변환하여, 컴퓨터가 모호함 없이 계산할 수 있도록 만드는 방법입니다.

더 알아보기: 명제 논리와 술어 논리 (참고 자료)

명제 논리 (Propositional Logic)

참(True)이거나 거짓(False)인 문장(명제)을 기본 단위로 삼고, 이를 기호($P, Q$)와 논리 연산자(그리고 $\land$, 또는 $\lor$, 이면 $\rightarrow$)로 결합하여 표현합니다.

실제 상황 예시

  • $P$: 「비가 온다.」
  • $Q$: 「우산을 쓴다.」
논리식 구조 $P \rightarrow Q$ 「비가 오면, 우산을 쓴다.」

술어 논리 (Predicate Logic)

명제 논리보다 더 세밀하게, 객체(변수 $x$)와 그 객체의 속성이나 관계(술어)를 나누어 표현합니다. 「모든($\forall$)」, 「어떤($\exists$)」 같은 한정자를 사용하여 더 복잡한 문장을 기호화할 수 있습니다.

실제 상황 예시

  • $Person(x)$:「$x$는 사람이다.」
  • $Mortal(x)$:「$x$는 죽는다.」
논리식 구조 $\forall x (Person(x) \rightarrow Mortal(x))$ 「모든 $x$에 대해, $x$가 사람이면 $x$는 죽는다.」
(= 모든 사람은 죽는다)

명제 논리와 술어 논리 비교

구분 명제 논리 술어 논리
기본 단위 참/거짓 문장 전체 객체 + 속성/관계(술어)
표현력 단순, 제한적 복잡한 관계 표현 가능
한정자 없음 $\forall$(모든), $\exists$(어떤)
예시 $P \rightarrow Q$ $\forall x(Person(x) \rightarrow Mortal(x))$
참고

논리 추론

이미 아는 사실에서 새로운 사실을 어떻게 이끌어낼까?

더 알아보기: 전건 긍정과 논리 추론의 규칙 (참고 자료)

추론이란 이미 알고 있는 사실(전제)들을 바탕으로 새로운 참인 사실(결론)을 이끌어내는 과정입니다. 컴퓨터는 논리 연산 규칙을 적용하여 스스로 지식을 확장합니다.

기본적인 추론 규칙: 전건 긍정 (Modus Ponens)

「만약 $P$이면 $Q$이다($P \rightarrow Q$)」라는 규칙이 있고, 「$P$가 사실」이라는 것이 확인되면, 필연적으로 「$Q$도 사실」임을 알 수 있습니다.

전건 긍정으로 한 걸음 추론하기

1단계
알려진 규칙 (전제 1)
$P \rightarrow Q$
「비가 오면 땅이 젖는다」
2단계
관찰된 사실 (전제 2)
$P$
「지금 비가 오고 있다」
3단계 (결론)
새롭게 얻은 지식
$\therefore Q$
「따라서, 땅이 젖을 것이다」
참고 논리 에이전트

추론 기반 에이전트와 Wumpus World

지식 표현과 논리 추론이 실제 AI에 어떻게 적용될까요? 위험이 숨어 있는 미지의 동굴에서 논리 추론만으로 살아남는 에이전트를 만나봅시다.

더 알아보기: Wumpus World로 보는 추론 기반 에이전트 (참고 자료)

일상 속의 논리 추론

현관문을 열었는데 달콤한 치킨 냄새(단서)가 납니다. 내 머릿속에는 「치킨 냄새가 나면, 주변에 치킨이 있을 것이다(지식/규칙)」라는 정보가 있습니다. 거실에 들어가 보지 않아도 우리는 식탁 위에 치킨이 있을 것이라고 추론할 수 있습니다. Wumpus World의 에이전트도 같은 방식으로 판단합니다.

Wumpus World 환경과 생존 규칙

냄새 (Stench)

에이전트가 냄새를 맡았다면?
→ 인접한 상하좌우 칸 어딘가에 굶주린 괴물 「Wumpus(웜퍼스)」가 있습니다.

바람 (Breeze)

에이전트에게 바람이 느껴진다면?
→ 인접한 상하좌우 칸 어딘가에 빠지면 죽는 「함정(Pit)」이 있습니다.

반짝임 (Glitter)

현재 칸에서 반짝임을 보았다면?
→ 바로 이 칸에 우리가 찾는 목표, 「금(Gold)」이 있습니다.

에이전트의 머릿속 4단계 사고 과정

1
센서 감지 (Percept)

「[1,2] 칸으로 이동했더니,
바람(Breeze)이 느껴진다.」

2
규칙 적용 (Rule)

내부 지식을 검색합니다.
「IF 바람이 분다 THEN 주변 칸 어딘가에 함정이 있다.」

3
기억(Fact) 확인

「주변 칸 중 [1,1]은 내가 방금 지나왔으니 안전(Safe)하다는 걸 알고 있어.」

4
최종 추론 (Inference)

「그렇다면 남은 주변 칸인 [1,3]과 [2,2] 가운데 적어도 한 칸에는 함정이 있다. 어느 쪽인지 확실해질 때까지 두 칸 모두 들어가지 않는다.」

이제 여러분이 직접 확인할 차례입니다.

AI 에이전트가 논리를 사용해 어떻게 안전하게 금을 찾는지 시뮬레이터를 통해 관찰해 보세요.

Wumpus World 에이전트 실습하기

클릭하면 새로운 창에서 시뮬레이터가 열립니다.

확인 퀴즈

배운 내용을 확인해 봅시다.

Q1 지식 표현 방법 중, 노드(원)와 화살표를 이용해 개념 간의 관계를 시각적으로 그물망처럼 표현하는 방식은 무엇인가요?

Q2 「만약 $P$이면 $Q$이다」라는 전제 규칙이 있고, 「$P$가 발생했다」는 사실이 주어졌을 때 「$Q$가 발생한다」고 결론을 내립니다. 이 추론 규칙의 이름은 무엇인가요?

Q3 Wumpus World에서 에이전트가 현재 위치에서 바람(Breeze)을 감지했을 때, 올바르게 추론한 것은 무엇인가요?

Q4 전문가 시스템과 기계학습의 가장 큰 차이점은 무엇인가요?

Q5 「지난 3년 동안 비 오는 날에는 지각생이 늘었다」는 데이터·정보·지식 중 무엇에 가장 가까울까요?

Q6 규칙과 사실로 추론하는 인공지능이 「모르겠다」고 멈춰 서는 것은 어떤 경우인가요?

탐색과 추론, 그리고 기계학습

인공지능이 판단하는 방법 가운데 둘을 나란히 놓아 봅니다. 탐색은 문제를 상태와 연산자로 다시 써서 상태 공간 트리를 그리고, 어느 노드를 먼저 확장할지를 정해진 원칙에 따라 골라 목표 상태(또는 그 상태에 이르는 길)를 찾습니다. 지식의 표현과 추론은 아는 것을 규칙과 사실로 적어 두고, 그것을 맞대어 적어 준 적 없는 결론까지 이끌어 냅니다.

두 방법에는 공통점이 하나 있습니다. 사람이 미리 틀을 짜 주어야 한다는 것입니다. 탐색은 상태와 연산자를 사람이 정해야 하고, 규칙 기반 시스템은 규칙을 사람이 적어야 합니다. 그렇다면 그 틀조차 컴퓨터가 스스로 찾아내게 할 수는 없을까요? 이 물음에서 세 번째 갈래인 기계학습이 시작됩니다. 기계학습은 그 틀을 데이터에서 찾아냅니다.