d라이브러리









컴퓨터가 단순히 지시하는 일만을 기계적으로 처리하지 않고 새로운 것을 배우고 새로운 상황에 적응할 수 있을 때 비로소 컴퓨터는 지능을 가졌다고 볼 수 있다.

일상생활에서 우리는 배운다는 말을 여러 의미로 사용한다. 영어 수학을 배운다고 하며, 자전거 타는 법, 피아노 치는 법 등을 배운다고 한다. 그렇다면 배운다는 것은 무엇인가? 심치학자 '힐가드'(Hilgard)는 "배움(Learning)이란 주어진 상황에서의 반복된 경험을 통해서 생기는 주체자 행위의 변화를 말하는데 이 변화가 선천적 반응 경향이나 일시적 현상이 아닌 경우를 말한다"라고 정의했다.

만약에 장기게임의 규칙만을 알고있는 컴퓨터가 있다고 할때, 이 컴퓨터가 상대방과 게임을 반복해가면서 차츰 장기의 묘수를 터득하게 되었다면 사람과 마찬가지로 컴퓨터도 자기 스스로 배울 수 있는 능력을 가졌다고 할 수 있을 것이다. 실제로 1963년 '사무엘'(Samuel)이 만든 체커(checker) 프로그램에는 이런 능력이 있어서 아침에는 형편없는 수준의 선수였지만, 게임을 반복하여 연습시킴으로써 저녁 때까지는 챔피언 수준의 선수가 될 수 있었다.

어떻게 하면 이러한 컴퓨터의 배움을 가능하게 할 수 있을까? 또한 그러한 컴퓨터의 배움은 사람의 배움과 어떤 차이가 있을까?

인간학습과 컴퓨터학습

여기 한 사람의 교사가 있다고 해보자. 그는 태어나서 교사가 되기까지 20여년을 배워야만 비로소 교사가 될 정도로 그의 배움 속도는 느리다. 그는 또한 그의 지식을 가르치기 위하여 매일 여러 시간을 보내지만, 그의 머리 어느 곳에 어떤 지식이 있는지도 모르며 그가 배운 지식을 단시간에 다른 사람에게로 옮겨줄 수도 없다.

반면에 컴퓨터의 내용(지식)을 다른 컴퓨터로 복사하는 일은 비교적 쉬운 일이므로 일단 습득한 지식은 다른 컴퓨터가 따로 반복해서 배울 필요없이 얼마든지 복사해 쓸 수가 있다. 그러나 배우는 과정은 이처럼 간단하지는 않다. 배움은 매우 다면적 현상으로서 배우는 과정은 새로운 지식의 습득, 교육이나 훈련을 통한 운동 지각능력의 개발, 그리고 관찰과 실험을 통한 새로운 사실과 이론의 발견 등을 포괄한다.

인공지능을 연구하는 사람들은 컴퓨터가 개발된 초기 단계에서 부터 컴퓨터에 이런 학습기능을 부여하려고 노력하였다. 그렇지만 컴퓨터 기술이 급속도로 발전한 현재에 이르기까지도 이것은 여전히 어려운 문제로 남아 있으며 더욱 많은 연구를 필요로 하고있다.

학습은 지능의 필수적 요소

컴퓨터가 단순히 지시한 일만을 따르지 않고 새로운 것을 배우고 새로운 상황에 적응하게 될때 비로소 컴퓨터가 지능을 가졌다고 말할 수 있다. 즉 학습(배움)은 지능에 필수 불가결한 요소인 것이다. 컴퓨터가 스스로 배울 수 있게되면 사용자가 관여해야할 부분이 적어지므로 그런 기능이 없는 컴퓨터보다 훨씬 독립적이고 효율적이다. 스스로 배울 수 있는 학습 능력은 컴퓨터로 하여금 시간이 경과함에 따라 자동적으로 문제해결 능력이 향상되게 해주며 경험이 쌓이게 해준다.

기존의 응용 프로그램들은 한번 개발한 이후에는 단지 부분적으로만 개선하거나 발견된 에러(error)를 수정하는 관리 단계에 머무르게 되지만, 인공지능 분야의 응용 프로그램들은 계속해서 수정되고 재편집을 거쳐 성능이 향상되는 진화(?) 단계를 겪게되는 것이다. 지식이나 지능은 하루 아침에 얻을 수 있는 정적인 성질의 것이 아니다. 새로운 발견, 새로운 이론, 새로운 상황 등이 계속 생겨나게 되어 어제의 지식자체가 쓸모없어 질 수 있으므로 학습을 통한 적응이 필요한 것이다. 더우기 컴퓨터 학습에 대한 연구는 단지 인간의 학습과정을 모방하는데서만 끝나는 것이 아니라 오히려 자체적으로 개발된 학습체제나 방법들로부터 인간의 학습과정에 대한 새로운 모델을 얻을 수도 있다.

어떻게 배울 것인가?

학습에는 크게 두가지 형태가 있다. 영어나 수학을 배우는 것처럼 '지식의 습득'이 주가 되는 형태나 자전거나 피아노를 배우는 것처럼 반복된 연습을 통해서 운동이나 지각능력을 향상시키는 '숙련'이 주가되는 경우이다. 인간의 학습과정은 이 두가지 형태가 혼합된 경우가 대부분이지만, 컴퓨터 학습 분야에서는 주로 '지식습득' 형태의 배움을 다룬다.

컴퓨터 학습 분야의 여러가지 학습 방법들은 학습 시스템이 수행해야되는 추론(추리)의 양이 많고 적음에 따라 나눠 볼 수 있다. 일반적으로 컴퓨터에 저장된 지식이 많으면 많을수록 주어진 과제를 해결하는데 필요한 추론의 양은 적어질 것이다(추론의 결과로 얻어낸 지식을 이미 컴퓨터가 가지고 있었다면 추론은 필요없게 된다). 반대로 추론 능력이 강하면 강할수록 문제해결에 필요한 지식의 양은 적어질 것이다(하나를 가르치면 열가지 지식을 추론해낼수 있는 컴퓨터를 상상해 보라).

이렇게 볼때 컴퓨터로 하여금 스스로 배울 수 있게 하는 극단적인 두가지 방법을 생각해 볼수있다. 하나는 단지 사람이 넣어주는 지식만을 받아들여 이를 이용할 뿐 추론을 통하여서는 새로운 지식을 전혀 얻지 못하는 방법이고, 다른하나는 실험이나 관찰을 통해서 얻은 자료로부터 문제해결에 필요한 새로운 지식을 추론해내도록 하는 방법이다. 이 두가지 방법의 중간 형태는 어느 정도의 지식과 어느 정도의 추론능력이 있는 경우를 들수있다. 위의 극단적인 두가지 방법을 염두에 두고 다음의 컴퓨터 학습 방법들을 살펴보기로 한다.

단순 암기에 의한 학습

이는 컴퓨터가 과거에 경험한 사실이나 외부에서 넣어주는 지식들을 가지고 어떤 추론을 한다든지 그것들을 변경함이 없이 그것들을 그대로 기억시켜두었다가 꼭같은 상황이나 조건을 만났을때 꺼내쓰는 가장 간단한 학습 방법이다. 이 방법은 '사무엘'의 체커 프로그램에서 사용되어 어느정도 성공을 거두었다. 하지만 이는 언제나 알고 있는 지식을 그대로 쓸뿐이지 그것들을 응용해서 쓸 수가 없기 때문에 알고 있는 지식들과 약간만 다른 상황에서는 전혀 배운 바가 쓸모없어지며 복잡하고 큰 문제들을 해결하기 위해서는 막대한 양의 지식을 일일이 다 기억하고 있어야 한다는 한계가 있다.

가르침에 의한 학습

이 방법은 컴퓨터에게도 교사나 트레이너(trainer)같은 존재를 두어 그로부터 가르침을 받아 배워나가는 것인데 이때 배우는 입장에 있는 컴퓨터로서는 입력된 지식을 스스로 이용가능한 형태로 변환시켜야 하며, 새로운 지식을 효과적으로 사용하기 위해서는 이 지식이 기존의 지식과 서로 상충되지않고 잘 결합시켜야만 한다. 하지만 학습자인 컴퓨터가 스스로 추출해서 배울 수 있는 양은 그리 많지 않으며 학습과정의 많은 부분이 교사의 부담이다. 이 방법은 현 학교 교육방법과 흡사하며 여기서의 학습과정이란 지시나 가르침 등을 받아들여 저장하였다가 이를 효과적으로 응용하는 능력을 갖추는 과정이다.

유사성을 이용한 학습

이 학습 방법은 새로운 개념이나 기술, 매우 유사한 기존의 지식을 새로운 상황에 유용한 형태로 변화시켜서 새로운 사실의 기술을 습득하게 되는 방법이다. 그 예로서 승용차를 운전해본 경험이 전혀없는 사람이 승용차 운전 경험을 적절히 응용함으로써 트럭도 운전할 수 있게 되는 경우를 들수있다.

이와 마찬가지로 유사성에 의해 배우는 컴퓨터란 자기가 갖고 있는 기존 프로그램들을 응용하여 약간만 변경시킴으로써 유사한 다른 문제들을 해결할 수 있는 컴퓨터를 말한다. 이때 이러한 방법은 위의 두가지 방법들에 비해 더욱 많은 양의 추론을 요구하는데 일단 과거의 기억 속에서 유사한 것을 끌어낸 후 이를 문제의 상황에 맞추어 적용시키고 나중에 다시 사용할지도 모르므로 이를 기억시켜 놓아야 하기 때문이다.

예(例)를 통한 학습
 

(그림1) 예를 통한 학습


이는 어떤 개념에 대한 긍정적인 예와 부정적인 예들만이 주어져 있을 때, 이들로부터 주어진 모든 긍정적인 예들은 다 포함하지만 반대로 부정적인 예들은 하나도 포함될 수 없는 그런 일반화된 하나의 개념을 스스로 이끌어 냄으로써 컴퓨터가 배우게 되는 방법이다.

예컨대 이등변 삼각형이라는 기하학적인 개념에 대한 긍정적인 예들로 적어도 두 변의 길이가 같은 삼각형들을 주고 또 부정적인 예들로 세변의 길이가 모두 다른 삼각형들을 준다면 이들로부터 이등변 삼각형에대한 일반화된 개념을 얻을 수 있다. 이러한 방법들은 교사에 의해 일반개념 자체가 바로 주어지지도 않을 뿐더러 유사성을 이용할 수도 없으므로 앞의 방법들보다 더 많은 추론이 요구된다. 여기에 긍정적인 예와 부정적인 예 두 종류 뿐 아니라 유사하긴 하지만 바로 그 개념 자체에는 맞지않는 '근사예(near-miss)'들을 제공함으로써 더 효율적일 수 있다. (그림1)에서 처럼 비슷하긴해도 올바르지 않은 근사예를 보여주어 아치(arch)의 개념을 배우게 할 수 있다.

발견에 의한 학습

이는 가장 높은 차원의 학습방법으로써 컴퓨터로 실현하기에 가장 힘든 방법이다. 이 방법은 수학처럼 정형적이고 체계적인 영역에서만 응용할 수 있다. 실제로 이러한 방법을 사용하여 기본적인 공리들만을 가지고서 이들로 부터 새로운 개념을 성공적으로 발견한 전문가 시스템이 있다.

이 방법은 이미 알려진 사실들과 시도해보지 않았던 방법들을 결합하여 새로운 사실을 밝혀낸다. 이 경우 과거의 사실들로 부터 새로운 결론을 이끌어 낼 수 있는 '통찰력'이 필요하나 이는 인간의 인식분야에서도 분명하게 규명되어지지 않은 부분이다. 현재의 인공기능 시스템에서는 광범위한 지식의 습득이나 일반적인 문제 풀이 기술이 충분하지 못하므로 가까운 장래에 이 방법이 성공적으로 실현되기를 기대하기는 어렵다.

이밖에도 '매개변수'값을 조정해가면서 배운다든지 '분류'를 통해서 배운다든지 하는 기타 여러 방법이 있을 수 있다.

인공지능의 핵심분야
 

(그림2) 인공지능의 개념


컴퓨터의 학습에 대한 연구의 주된 관심은 인간이 컴퓨터로 하여금 기계적으로 실행할 수 있게끔 하는 동작 명령들을 나열한 기존의 프로그램보다는 컴퓨터 자체가 생각하여 실행할 수 있는 학습 프로그램이 더 효율적이 되리라는 기대 때문이다. 비록 컴퓨터 학습에 대한 연구가 초기단계에 불과하지만 인공지능학 전반의 발달과 인간의 학습이나 지능에 대한 연구가 진전됨에 따라 학습의 필요성은 더욱 증대되고 있다.

현재 컴퓨터 학습 분야의 새로운 경향을 살펴보자. 첫째로 초기 시스템의 실패원인 중 하나가 시스템이 가지고 있는 지식의 양이 적었기 때문이므로 주어진 문제에 관련된 지식을 될 수 있는대로 많이 사용하여 학습과정을 올바르게 유도하려는 경향이 두드러지며, 또한 위에서 언급한 학습방법 외의 다른 방법 등에 대해서도 다양하게 가능성을 모색하고 있다. 둘째로 휴리스틱(heuristic 스스로 발견하게 하는 교수법)이라고 불리는 기법을 학습 시스템에 추가시킴으로써 보다 효율적인 학습과정을 개발하려는 연구가 계속되고 있다.

끝으로 인공지능학은 원칙적으로 사람의 지능을 필요로 하는 다양한 작업들을 수행할 수 있는 컴퓨터 시스템의 개발을 추구하고 있다. 이를 위해 여러 분야에서 연구가 되고 있으나, 그 각각이 독립된 분야가 아니라 서로 연관관계를 지니고 있다. 특히 학습이란 다른 모든 분야에서 취급되어지는 연구 결과를 더욱 향상시킬 수 있는 도구로서 이용되어질 수 있기 때문에 학습에 관한 연구는 인공지능학에서 가장 핵심이 되는 분야로서 받아 들여지고 있다.

이 기사의 내용이 궁금하신가요?

기사 전문을 보시려면500(500원)이 필요합니다.

1986년 08월 과학동아 정보

  • 유석인

🎓️ 진로 추천

  • 컴퓨터공학
  • 정보·통신공학
  • 소프트웨어공학
이 기사를 읽은 분이 본
다른 인기기사는?