백개먼 (사진=셔터스톡)
백개먼 (사진=셔터스톡)

지난 회에서는 탐색을 기반으로 한 게임 인공지능(AI) 프로그램들을 알아 봤다. 그러나, 모든 게임 AI가 탐색을 기반으로 한 전통적인 방법으로만 개발된 것은 아니다. 프로그램에 명시적인 절차나 데이터를 주지 않고, 프로그램이 스스로 결정을 내리며 규칙을 익히게 하는 강화 학습(RL)은 규칙과 제한 사항이 명확하고, 점수라는 명확한 보상이 있는 게임들에 적용하기에 이상적인 학습 방법이다.

사실, 이런 강화 학습 형태가 처음 적용된 것은 아서 사무엘의 체커 프로그램이었다. 물론 사무엘의 프로그램은 전통적인 방식의 미니맥스와 알파-베타 가지치기 알고리즘을 기본으로 설계됐지만, 휴리스틱 기법과 또 다른 머신러닝 기법을 적용했다. 1959년 사무엘은 그의 체커 프로그램 논문에서 머신 러닝을 설명하면서 시간차(TD, Temporal-Difference) 학습을 적용했다고 했는데, 이는 현대적 강화 학습의 모습을 가지고 있었다.

또 다른 사례는 2차 세계대전 중 앨런 튜링이 일했던 블레츨리 파크에서 독일의 로렌츠 암호를 해독하는 일을 했던 도널드 미치(Donald Michie)의 틱택토 게임이었다. 쉽게 컴퓨터를 사용하기 어려웠던 1960년, 미치는 약 304개의 성냥갑으로 만든 MENACE(Matchbox Educable Noughts And Crosses Engine)로 기계적인 컴퓨터 프로그램을 구현했다.

각 성냥갑은 각각 고유한 상태를 나타내는 코드 번호를 갖고 있었고 색깔 있는 구슬이 들어 있었는데, 구슬은 그 판 상태에서 움직임을 나타냈다. 미치는 MENACE를 활용해 틱택토 게임을 구현했고, 한번 게임이 끝나면 구슬의 색과 숫자에 따라 이기는 동작의 순서를 확인할 수 있었는데 수백번의 게임 결과에 따라 각 성냥갑의 구슬 수량을 업데이트해 프로그램을 훈련할 수 있었다. 이후 MENACE는 컴퓨터 프로그램으로 만들어졌고, 강화 학습의 대표적인 알고리즘인 Q-러닝 알고리즘 개발에 영향을 미치기도 했다.

1956년에 체커 게임을 선보인 IBM이 1997년 딥 블루를 선보이기 전인 1992년에는 백개먼(Bacgammon)이라는 보드 게임을 수행하는 프로그램을 발표했다. 웨일스의 단어 ‘bac(작은)’과 ‘gamen(전쟁)’에서 이름이 유래된 이 게임은 5000년 전에 시작됐다고 하니, 역사적으로 가장 오래된 보드 게임 중의 하나다.

국내에는 널리 알려지지 않았지만 미국과 유럽 지역에서는 체스만큼 널리 즐기는 게임이다. 흑과 백의 말이 각각 15개 있고, 2개의 주사위와 말판으로 구성됐다. 주사위 숫자에 따라 흑과 백의 말이 정해진 방향으로 이동하며 모든 말을 말판으로부터 빼내는 게임으로, 어떤 면에서는 우리의 윷놀이와 비슷하다.

백개먼 게임은 주사위를 굴려 나온 숫자에 따라 말을 움직일 때, 최고의 수로 이동하는 방법을 선택하는 실력이 필요하다. 하지만, 주사위의 숫자가 무작위로 나오게 되고, 그 숫자가 게임에 영향을 미치기 때문에 탐색 트리의 복잡도가 체커나, 체스보다 훨씬 높은 10의 144제곱이 되어 탐색 경로가 극도로 확장된다.

1992년 IBM의 제랄드 테소로(Gerald Tesauro)는 아서 사무엘의 TD 학습의 형태를 개선하고, 이를 인공 신경망으로 구현한 TD-개먼(TD-Gammon) 프로그램을 발표했다. 신경망 내에 40개 또는 80개의 은닉 노드를 포함한 TD-개먼은 매 수마다 말이 움직일 수 있는 위치를 평가해 신경망의 가중치를 조정했는데, 인간에 의한 학습이 필요하지 않았다. 그래서 인간이 생각할 수 없는 흥미로운 전략을 제시하기도 했다.

대부분의 신경망 프로그램과 같이 개발 초기에는 가중치가 무작위로 주어졌기 때문에 그다지 경기 결과가 좋지 않았지만, 계속된 경기로 강화 학습이 이뤄지며 가중치에 대한 조정이 잘 이뤄졌다. 또 개선된 버전이 나오고, 100만번 이상의 훈련 게임을 거친 결과, TD-개먼은 백개먼 인간 고수와도 대등한 경기를 할 정도로 수준이 높아졌다.

백개먼은 게임 AI에 강화 학습이 본격적으로 사용된 모델이라는 중요한 의미가 있다. 또 이전까지 대부분의 AI 게임과 백개먼 이후의 딥블루 모두 기호주의 방식 접근의 AI 구현이었는데 반해, TD-개먼 알고리즘은 연결주의 방식 접근인 신경망을 적용하며 체계적인 분석과 탐색을 통한 문제 해결보다는 직관적인 접근의 문제 해결 방안을 제시해 줬다는 의미도 있다. 딥마인드가 2013년 신경망 강화 학습 기법인 DQN을 활용해 개발한 프로그램으로 아케이드 게임인 아타리를 스스로 학습해 인간 수준의 게임 수행하는 AI를 공개해 연구자들을 놀라게 한 이후, 게임 AI에 강화 학습의 딥러닝 기법을 사용하는 것은 아주 일반화된 상황이다.

(사진=셔터스톡)
(사진=셔터스톡)

지난 회에서 틱택토, 체스, 바둑들은 시합 참가자가 게임 내 모든 움직임을 알 수 있는 ‘완전 정보’ 게임에 해당된다고 했다. 그런데, 포커 게임은 상대가 가진 패의 일부는 모르는 가운데 시합을 진행해야 하는 ‘불완전 정보’ 게임에 해당되며, 게임 중에 포기할지 더 베팅할지 그냥 진행할지를 결정해야 하는 직관도 필요한 게임이다.

또 자신의 패가 좋지 않아도 상대가 경기를 포기하게 할 목적으로 강한 베팅을 하는 블러핑(Bluffing), 속칭 ‘뻥카’라고 하는 전략이 구사되기도 한다. 이런 포커는 다양한 게임이 있고, 국가와 지역, 문화에 따라 인기 있는 게임의 종류도 다르다. 국내에서 가장 보편적인 포커 게임은 ‘세븐 포커(Seven Cards Stud Poker)’라고 하는 방식인데, 서양에서는 ‘텍사스 홀덤(Texas Hold’em)’이 가장 대중적이며 대규모 대회가 많다.

2017년에는 캐나다의 앨버타 대학 연구팀이 개발한 ‘딥스택(DeepStack)’이라는 프로그램이 전문 포커 플레이어들을 물리쳤다. 딥스택은 AI 포커 게임 프로그램이다. 무작위로 생성된 수백만개의 포커 시나리오를 플레이하고 각각 얼마나 유익한지 평가하는데, 딥러닝을 활용한 훈련을 거쳤다.

훈련 모델은 딥러닝 신경망을 통해 이전에 경험한 적이 없는 상황에서도 적용할 수 있는 일반적인 포커 게임의 직관을 개발할 수 있었다. 엔비디아의 GPU가 장착된 게임용 노트북에서도 실행될 수 있을 만큼 가볍게 설계된 딥스택은 11명의 전문 플레이어들과 4주간 3000경기를 가져 모든 프로 선수들을 이겼다.

같은 해 카네기멜론대학교에서 개발된 ‘리브라투스(Libratus)’라는 또 다른 AI 포커가 세계 최고의 인간 플레이어 4명을 물리쳤다. 리브라투스는 신경망을 사용하지 않은 대신, 게임 중에 1400개의 CPU 코어를 사용할 수 있는 슈퍼컴퓨터의 막강한 연산력을 바탕으로 정교한 추상화 기술과 강력한 추론 전략으로 구현됐다.

딥스택과 리브라투스가 전문 플레이어를 상대로 승리를 거두기는 했지만, 게임 방식이 1대 1 시합이었기 때문에 다른 플레이어의 영향을 받을 수 있는 일반적인 포커 게임, 즉 다수 플레이어와의 경기에서도 동일한 성과를 보여줄 수 있을지는 미지수라는 의견이 있었다. 2019년에 카네기멜론대 연구팀과 페이스북 인공지능 연구소는 리브라투스를 기반으로 개발한 ‘플러리버스(Pluribus)’라는 포커 AI를 발표했다.

플러리버스는 리브라투스보다 훨씬 단순한 컴퓨팅 환경, 즉 28 CPU 코어의 단일 서버만으로도 운용이 가능했는데, 1대 1 게임이 아닌 6인이 참가하는 일반적인 형태의 포커 게임에서 블러핑까지 구사해가며 승리해서 또 다른 이정표를 세웠다. 개발팀은 이렇게 강력한 프로그램이 공개될 경우 오용될 가능성이 높다고 판단해서 소스 코드를 공개하지 않기로 결정했다.

포커 AI는 단순한 게임 프로그램의 구현에 그치지 않고, 비대칭 정보 또는 불완전 정보 상황에서 직관과 추론을 통해 AI를 현실 세계에 적용하려는 노력이었다. 예를 들어 사이버 보안 시스템 설계, 사기 방지, 약물 개발, 제품 가격 책정, 불확실한 상황에서의 협상 수행 등 환경이 계속 변하는 불완전 정보 상황에서 현실 문제를 해결하기 위한 AI를 개발하고자 하는 것이었다.

문병성 싸이텍 이사 moonux@gmail.com

관련기사
저작권자 © AI타임스 무단전재 및 재배포, AI학습 및 활용 금지