#6. 지능의 가진 기계와의 시작 : 체스와 체커 게임
체스와 체커는 인공지능 선구자들에게는 인간의 지능을 구현하기 위한 아주 좋은 도전이자 테스트 베드이었습니다.
1951년 페란티 마크 1(Ferranti Mark 1) 컴퓨터에서 실행된 체스와 체커 게임 프로그램에 이어서, 1952년에 또 다른 체커 프로그램이 개발되고 있었습니다. 바로 알파베타 가지치기(Alpha–beta pruning)의 초기버전을 수행한 아서 사무엘(혹은 아서 새뮤얼, Arthur Lee Samuel : 1901년~1990년)입니다.
지금으로 그 시절의 인공지능 수준을 생각하면, 누군가는 호랑이 담배 피던 시절부터 이야기라고 할 수 있습니다.
그러나 그 시절의 어떤 논리를 구축해왔는지를 깊게는 몰라도, 어느 정도는 알고 있어야 더 좋은 인공지능 알고리즘을 구현할 수 있습니다. 실제로 알파고도 심층 신경망과 더불어 트리 탐색 기법(몬테카를로 트리 탐색)을 써서 구현했습니다. 이렇게 사용된 탐색 기법은 딥 러닝이 발달하기 훨씬 이전에 초기 인공지능 구현기법에서 많이 사용되던 구현기법이었습니다. 때론 옛것과의 결합을 통해 좀 더 좋은 솔루션을 구축할 수 있습니다. (이날치는 전통적인 판소리에 현대적인 팝 스타일을 조화시킨 음악으로 유튜브에서 많은 인기를 끌었습니다. 우리 것은 좋은 거여~ (:-))
오늘 소개해드릴 아서 사무엘도 트리 탐색기법을 사용했습니다.
아서 사무엘은 미국의 IBMer이자 컴퓨터 게임 및 인공 지능 분야의 선구자이자, 머신 러닝의 대가입니다. 그는 1959년에 "머신 러닝"이라는 용어를 대중화(처음으로 논문에 사용) 시켰고, IBM 메인프레임 개발 및 최초의 자기학습 체커 프로그램 개발하였습니다. 1987년에는 컴퓨터 개척상(Computer Pioneer Award : IEEE Computer Society의 이사회에서 1981년 제정. 『Women of the ENIAC Computer Pioneer Award』로 이름이 변경)을 수상하기도 했습니다.
1949년에 아서 사무엘은 IBM의 Poughkeepsie Laboratory에 입사하여 획기적인 IBM 701 컴퓨터를 설계한 팀의 일원이었습니다. 아서 사무엘은 컴퓨터가 얼마나 강력한 도구가 될 수 있는지 보여주기 위해 게임의 챔피언 플레이어를 물리 칠 수 있는 체커 프로그램을 구현하는 것을 1946년 일리노이 대학팀 합류할 때부터 생각해오다, 1952년말쯤 IBM 701에서 초기 버전을 완성하였습니다. 1952년은 크리스토퍼 스트레이치의 체커 게임 프로그램 발표로 이런 지능형 프로그램에 대중들의 관심이 있던 시기였습니다. 아서 사무엘은 향후 몇 년 동안 이 체커 프로그램을 계속 개선했으며, 1955년 아서 사무엘의 프로그램은 자신의 플레이를 분석하고 실수로부터 학습 할 수 있게 되면서 중요한 이정표를 달성했습니다. 이 프로그램이 계속해서 악명을 얻음에 따라 실제로 1956년 2월 24일 국영 TV에서 시연되었습니다. IBM 주가는 이 데모를 통해 15포인트 상승했습니다.
이 프로그램은 자기 학습능력을 가지고 대량의 게임을 분석해 놓은 수가 "좋은 수"인지 "나쁜 수"인지를 식별하는 방법으로 점차 성능을 개선했으며, 결국에는 그의 프로그램이 상급 아마추어 레벨에서 플레이할 수 있을 정도로 숙달되었습니다. 그 과정에서 아서 사무엘은 컴퓨터가 오직 시킨 일만 할 수 있다는 생각이 틀렸음을 입증했습니다.
결국 1959년에 그는 머신 러닝(=기계 학습)이라는 용어가 공식적으로 처음 등장한 것으로 보는 논문 ‘체커 게임을 활용한 머신 러닝에 관한 연구(Some Studies in Machine Learning Using the Game of Checkers)’를 발표합니다.
머신 러닝에 대한 명확한 정의는 해당 논문에서 명확하게 기록되어있지는 않지만, "명시적으로 프로그래밍 되지 않은"과 연관된 정의로 아서 사무엘이 최초 만든 것으로 봅니다. 현재 위키백과에서는 "경험을 통해 자동으로 개선하는 컴퓨터 알고리즘의 연구"로 정의하면서, 아서 사무엘이 "기계가 일일이 코드로 명시하지 않은 동작을 데이터로부터 학습하여 실행할 수 있도록 하는 알고리즘을 개발하는 연구 분야"라고 1959년에 정의한 것으로 표기되어있습니다. (참고로 영문 위키백과의 주석을 보면 상기 체커 게임 논문에서의 직접적인 기술은 관련이 없는 것으로 나와있습니다.) 딥 러닝과 같은 인공신경망은 머신 러닝에 속해있는 한 분야이므로 지난번 설명 드렸듯이 머신 러닝이 좀 더 포괄적인 개념입니다.
그가 구현한 체커 프로그램은 발표한 논문에 잘 설명이 되어있습니다.
트리 검색기법을 이용해서 구현했고, 사용 가능한 컴퓨터 메모리의 양이 매우 제한적이기 때문에 아서 사무엘 서로간 적대적인 알파베타라는 개념을 도입했습니다. 일반적으로 게임 구현시에는 상대방이 어떤 식으로 나왔을 때 어떻게 반응해야 할지에 대해 최대한 많은 경우를 고려하는 코드를 구현해야 합니다. 이 때문에 알파베타 개념으로 적대 탐색 알고리즘들이 적용됩니다. 알고리즘의 탐색 시간을 줄이기 위해 사용되기도 하는데, 더 이상 계산할 필요가 없는 경로를 제거하여 계산량을 대폭 절감시키는 효과가 있습니다. 아서 사무엘이 도입한 이 개념은 알파베타 가지치기(Alpha–beta pruning)의 초기 버전으로 보고 있습니다.
알파베타 가지치기는 탐색 트리에서 최소극대화(최소최대 또는 미니맥스, Minimax, MinMax, Saddle point or 한국어 위키는 "Maxmin") 알고리즘을 적용할 때 평가하는 노드의 수를 줄이기 위해 사용되는데, 여기서 최소극대화는 추정되는 최대의 손실을 최소화하는 알고리즘을 말합니다. 최소극대화 알고리즘은 최악의 경우에 발생할 수 있는 최대 손실을 최대한 감소하기 위한 의사결정 원칙으로, 게임이론에서 서로 적대 관계인 경기자의 이익은 최대로, 상대로부터 받는 피해는 최소로 만들기 위해 행동한다는 원리입니다. 최소극대화는 지난번 " AI와 인간의 대결 (3)"에서 클로드 새넌이 사용했던 구현 로직입니다.
이 체커 프로그램은 최소 극대화 전략(논문에서는 "minimax" procedure로 기술)에 따라 이동을 선택했고, 상대방이 자신의 관점에서 동일한 기능의 값을 최적화하려한다고 가정하고 이 기능의 값을 최적화한 이동을 수행했습니다. 아서 사무엘은 다양한 메커니즘을 설계했는데, 보상 함수의 최종 가치와 함께 각 위치에서 검색 깊이를 효과적으로 확장했습니다. 아서 사무엘의 이후 프로그램은 프로 게임의 입력을 기반으로 보상 함수를 재평가하고, 또 다른 학습 방법으로 수천 개의 게임을 자체적으로 플레이하도록 했습니다.
아서 사무엘 이 논문 마지막부분에는 이렇게 결론을 썼습니다.
"이 실험의 결과로 우리는 확신을 가지고 이제 학습 제도를 고안하는 것이 가능하고, 그것은 평범한 사람을 훨씬 능가할 것이고 이러한 학습 계획은 결국 실생활 문제에 적용 할 때도 경제적으로 실현 가능합니다."
참고로 그는 1956년에 열렸던 다트머스 회의(Dartmouth workshop, Dartmouth Conference : 인공지능이라는 분야를 확립한 학술회의)에 제안서 작성자가 아닌 회의 참석자 명단에도 포함되어있습니다.
기계가 학습을 할 수 있다는 생각을 공식화하여 구현한 사람, 그 사람이 바로 아서 사무엘입니다. 그에 대한 경의를 표합니다.
아서 사무엘 이후, "Machine Learning" 책을 지은 카네기 멜런 대학교의 교수 톰 미첼(Tom Mitchell)은 1986년 "컴퓨터 프로그램이 어떤 작업 T와 평가 척도 P에 대해서 경험 E로부터 학습한다는 것은, P에 의해 평가되는 작업 T에 있어서의 성능이 경험 E에 의해 개선되는 경우를 말한다."라고 이전보다 형식적인 머신 러닝의 정의를 내렸습니다. 즉, 어떠한 작업 T에 대해 꾸준한 경험 E를 통하여 그 T에 대한 성능 P를 높이는 것, 이것이 기계학습이라고 할 수 있습니다. 한마디 장표로 이번 글을 마칩니다.
Copyright 2021. 『오드리공주될뻔 블로거』 All rights reserved.
'인공지능(AI) > 인공지능의 역사' 카테고리의 다른 글
#2. AI와 인간의 대결(7) : 체스도 체커도 아닌 또 다른 게임 (0) | 2021.02.27 |
---|---|
#2. AI와 인간의 대결(6) : 수학 원리의 증명 (0) | 2021.02.22 |
#2. AI와 인간의 대결(4) : 체스와 체커 게임 (0) | 2021.01.29 |
#2. AI와 인간의 대결(3) : 알고리즘의 등장 (0) | 2021.01.27 |
#2. AI와 인간의 대결(2) : 체스 자동기계의 등장 (0) | 2021.01.26 |