체커 프로그램으로 IBM은 주가가 상승하고 대중의 큰 관심 대상이 됐지만, 게임 개발에 대한 불만과 영업팀의 압박 등으로 인공지능(AI) 개발, 특히 게임 관련 개발에 대해서는 큰 목소리를 낼 수가 없었다. 그런 상황에서도 아서 사무엘은 계속 체커 프로그램을 개선해 나갔다. 사실 1956년의 체커 프로그램은 일반인 상대의 게임 정도만 수행할 수 있는 수준이었고, 고수와의 경기를 진행할 수 있는 수준은 아니었다. 다트머스 회의 이후의 시기는 IBM 704 컴퓨터가 한창 생산 중이던 시기였기 때문에 생산 라인이 멈춘 자정부터 다음 날 아침까지는 유휴 컴퓨터가 많이 있었다. 이때 사무엘은 자신의 체커 프로그램을 실행하며 테스트하고, 컴퓨터 간 체커 경기를 시켜보고, 컴퓨터별 경기 결과를 분석하며 체커 프로그램에 대한 연구를 계속해 나갔다.
그런 연구를 통해 새로운 알고리즘들 개발하고 적용하며 60년대 초반에는 고수와의 대등한 경기를 할 수 있었다. 사실 메모리 용량도 크지 않고, 속도도 느렸던 1960년대의 컴퓨터 성능을 가늠해 보면 사무엘의 프로그램이 사람에게 이겼는지 졌는지 하는 것은 중요한 문제가 아닐 것이다. 오히려 그 시절의 컴퓨터로 학습하는 기능을 개발하고, 인간처럼 게임하고, 문제를 푸는 AI를 구현했다는 그 자체가 엄청나게 중요한 의미가 있을 것이다.
앞서 사무엘의 체커 프로그램은 AI에서 휴리스틱 탐색이 실질적으로 사용된 최초의 예라고 했다. 그러나 그의 프로그램에서 휴리스틱 탐색보다 더 중요한 알고리즘은 학습, 즉 머신러닝(ML, Machine Learning)이다. 그의 프로그램은 게임을 진행하면서 휴리스틱 탐색의 평가를 할 때, 어떤 특징이 꼭 포함돼야 하는지 또 각각 다른 특징들에 대해 가중치를 어떻게 부여해 평가할 것인지를 학습해 갔다. 그렇게 사무엘은 그의 프로그램이 스스로 학습할 수 있도록 다양한 방식으로 실험하고 연구했다.
1959년 사무엘은 자신의 연구를 IBM 저널에 ‘체커 게임에서 ML에 대한 연구’라는 논문으로 게재했다. 논문에서 사무엘은 사람이 직접 프로그램한 것보다 더 나은 게임을 할 수 있도록 컴퓨터를 프로그래밍할 수 있는 ML 방법을 연구했으며, 이 원리는 게임뿐만 아니라 다른 많은 상황에도 적용될 수 있다고 주장했다. 그리고 알파-베타 가지치기 기법과 자신의 체커 프로그램에 활용했던 두가지 ML 기법을 설명했다. 프로그램이 스스로 게임을 하면서 배우기 위해 사용된 두가지 ML 기법은 논문에서 '암기 학습(Rote Learning)'이라고 명시한 방식과 현재에 ‘시간 차분 학습(TD Learning, Temporal Difference Learning)’이라고 부르는 방식이었다.
좀 더 단순한 방법인 암기 학습은 게임을 진행하며 마주쳤던 말판의 위치 정보에 대해 미니맥스 알고리즘으로 생성한 값과 내용을 함께 저장하고, 그 위치가 게임 중 다른 이동 방법의 탐색가지 상에 나타날 때 그 정보를 다시 활용하는 방식이다. 동일한 위치 정보가 탐색가지 상에 나타날 때마다 미세한 값의 변화를 주고, 그 값의 변화를 이용해 좀 더 유리한 결정을 할 수 있도록 했는데, 속도는 느렸지만 꾸준한 개선을 가져왔다. 좀 더 복잡한 알고리즘인 시간 차분 학습은 예측 기반의 ML로 여기에서 자세히 설명하기는 어렵지만 현대적 ‘강화학습(RL, Reinforcement Learning)’의 모습을 갖추고 있었다. 이렇게 사무엘의 프로그램은 ML이 적용된 프로그램이었고, 논문에서 ML이라는 용어가 구체적으로 사용됐다.
ML이라는 용어가 이 논문에서 처음 사용된 것은 아니지만, 이 논문에서 구체적으로 설명되며 아서 사무엘은 ‘ML의 창시자’ 또는 ‘ML의 아버지’로 오늘날까지 알려지게 됐다. 흔히 사무엘이 그의 논문에서 최초로 설명했다고 알려진 '명시적으로 프로그램을 작성하지 않고 컴퓨터에 학습할 수 있는 능력을 부여하기 위한 연구 분야(Field of study that gives computers the ability to learn without being explicitly programmed)'라는 ML에 대한 정의는 실제 그의 논문에서는 찾아볼 수 없다. 하지만 이는 ML의 중요한 특징을 나타낸 정의 중 하나이다.
실제 사무엘은 그의 논문에서 “컴퓨터는 프로그램을 작성한 사람이 할 수 있는 것보다 더 나은 체커 게임을 배우도록 프로그래밍할 수 있다(A computer can be programmed so that it will learn to play a better game of checkers than can be played by the person who wrote the program.)” 그리고 “경험을 통해 배우도록 컴퓨터를 프로그래밍하면 결국 상세한 프로그래밍을 하기 위한 노력의 대부분이 필요하지 않게 된다(Programming computers to learn from experience should eventually eliminate the need for much of this detailed programming effort)”라고 설명했을 따름이다. 결국 사무엘의 설명을 정리해 보면 “경험을 통해 학습할 수 있게 프로그래밍하면, 많은 부분을 상세하게 프로그래밍하지 않아도 되며, 직접 프로그래밍한 것보다 더 나은 성능을 가질 수 있다”라고 설명된다.
이렇게 ML의 개념이 구체화하기는 했지만, 아직 본격적으로 개발되고 사용되지는 못했다. ML 알고리즘에서 ‘경험’을 갖기 위해서는 ‘데이터’가 필요한데, 게임과는 달리 많은 부분에서는 아직 데이터를 충분히 모을 수 있는 환경이 되지 않았다. 게임이라고 해도 컴퓨터 연산 능력과 저장 용량의 부족으로 충분한 데이터를 확보하기가 쉽지 않았기 때문이다. 또 ‘학습’을 하기 위한 기본적인 알고리즘이 수학적 모델로 개발되기도 했으나, 그 모델을 통해 결과를 얻기에는 컴퓨터의 성능이 따라가 주지 못했다. 특히 ML을 제대로 활용하기 위해서는 더 다양하고 정교한 알고리즘이 개발이 필요했다. ML은 긴 시간 동안 조금씩 진화하다가 AI의 2차 붐 시기 이후가 돼서야 급격한 데이터의 증가, 정교한 알고리즘의 개발 및 컴퓨터의 성능 향상으로 본격적인 활용이 가능한 시대가 열리게 됐다.
사무엘 이후에도 다른 연구자들에 의해 체커 프로그램에 대한 도전은 계속됐다. 1970년대에는 듀크대학교에서 개발된 프로그램이 사무엘의 프로그램에 도전해 2연승을 거뒀고, 인간 그랜드 마스터에게도 도전해 1승 2무 2패를 얻었다. 1989년에 캐나다 앨버타대학교의 조나단 셰퍼가 구성한 팀 치누크(Chinook)는 사무엘의 프로그램 이후, 현재까지 가장 유명한 체커 프로그램을 개발했다. 치누크는 명실공히 체커 세계 챔피언을 이긴 첫 프로그램이다. 1990년 세계 챔피언십에 출전했을 때는 세계 챔피언에게 2승 4패 33무승부로 패했지만, 1994년에 재도전해 챔피언이 됐다. 1995년에도 1승 31무승부로 이기고, 1996년에도 현격한 실력 차이가 확인되자 치누크 팀은 더 이상 입증해야 할 것이 없다며 치누크의 은퇴를 결정했다.
사무엘은 1966년 IBM에서 은퇴하고 스탠퍼드의 교수직을 맡으며 음성인식 연구를 진행했는데, 그러면서도 지속적으로 체커 프로그램을 개선해 나가며 성능을 향상했다. 평생을 프로그래머로 살았던 사무엘은 나이가 많아져 직접 연구 작업을 수행하기 어려워진 이후에도 문서 조판 언어인 ‘TeX’ 개발과 컴퓨터 게임 개발 등 몇몇 프로젝트에 도움을 줬다. 사망 직전까지 직접 프로그램을 했던 사무엘은 많은 사람들에게 가장 오랜 기간 프로그래머로 살았던 사람 중의 한명으로 기억되고 있다.
문병성 싸이텍 이사 moonux@gmail.com
