[학술] 게임 인공지능
[학술] 게임 인공지능
  • 김경중 교수 / 세종대 컴공
  • 승인 2011.05.18 21:48
  • 댓글 0
이 기사를 공유합니다

사용자를 만족시키는 최고의 인공지능 추구

    너무 뛰어난 성능 안 돼, ‘재미’있어야
    게임 인공지능 경진대회 등으로 연구 동기 자극

▲ IEEE Computational Intelligence and Games 2010 포스터
 게임 인공지능 하면 무엇이 떠오르는가? 요즘 학생들은 스타크래프트의 인공지능을 생각하는 경우가 많을 것이다. 일반인들의 경우라면, IBM의 Deep Blue가 세계 체스 챔피언을 상대로 승리를 거둔 사건을 떠올리지 않을까 싶다. 1950년대에 처음으로 게임 프로그램이 작성된 이후로 게임 인공지능은 비약적인 발전을 거듭해 왔다. 대표적인 결과로 체커, 오델로, 체스 등은 이미 컴퓨터가 세계 챔피언 수준 또는 그 이상에 올라와 있다. 어떻게 컴퓨터가 사람보다 이렇게 게임을 더 잘 하게 되었을까? 이러한 성과는 인공지능의 한 분야인 탐색기술의 활용과 컴퓨팅 성능의 향상이라는 두 가지의 결합에 의한 것으로 볼 수 있다.

 여러분이 게임을 하는 상황을 생각해 보자. 예를 들어, 오목을 두는 경우를 생각해 보자. 여러분 차례에서 둘 수 있는 자리가 몇 군데 있을 것이다. 그 중에서 가장 좋은 곳이 어딜까 고민한 후에 최종 결정을 내릴 것이다. 초보자의 경우에는 현재 놓여 있는 돌들만 바라보고 판단을 내릴 것이고, 조금 잘 두는 사람이라면, 한 수 앞이나 두 수 앞 정도를 미리 내다보고 결정을 내릴 것이다. 고수라면 적어도 몇 수 앞을 내다보고 결정을 내릴 수 있을 것이다. 머릿속으로 내가 여기에 두면, 상대는 어디에 두고, 그럼 어떻게 될까? 이런 식으로 몇 수 앞을 내다보는 방식이다. 컴퓨터도 유사한 방법을 사용한다. 다만 차이점이라면, 사람의 경우 가능성 높은 몇 개(보통 2~3개 정도)만 집중적으로 깊이 있게 생각한다면, 컴퓨터의 경우, 사람이라면 고려하지 않을 의미 없는 경우를 포함한 모든 가능성에 대해 몇 수 앞을 내다보는 과정을 거친다.

 위와 같은 성과로 인해, 몇몇 보드 게임에 대해서 컴퓨터는 일반 PC 수준에서도 매우 강력한 성능을 보이고 있다. 웬만큼 실력을 가진 사람이 아니라면, 보통 수준의 컴퓨터 프로그램도 이기는 것이 결코 쉽지 않다. 이쯤 되면, 컴퓨터 인공지능 연구가 끝났을 것 같지만 아직도 해야 할 일이 많이 산적해 있다.

 예를 들어 바둑은 현재 널리 사용하고 있는 탐색기반 기술로는 해결이 불가능해 보인다. 다른 보드 게임들과 달리 현재 컴퓨터 프로그램의 수준과 전문 선수들의 실력차이가 큰 상황이다. 이러한 문제의 원인은 바둑의 경우의 수가 다른 게임과 비교할 수 없을 정도로 크기 때문이다. 바둑은 19X19 보드 판에서 이루어지며, 이는 무수히 많은 경우의 수를 만들어 낸다. 단 몇 수 앞만 고려해 본다고 해도, 경우의 수는 기하급수적으로 증가하기 때문에, 모든 경우의 수를 평가하는 것을 근간으로 하는 기존의 방법으로는 해결이 어렵다. 바둑의 경우 돌들이 놓인 모양이나 패턴이 중요하기 때문에, 이를 인식하고 활용하려는 연구가 진행 중이다.

 사람이 게임을 하는 이유는 재미 때문이다. 즉, 재미있으려고 하는 것이지 자기보다 훨씬 잘 하는 컴퓨터와 게임을 하고 싶어 하지는 않는다. 사람은 때론 실수를 하거나 좀 약하더라도 자신과 재미있게 게임을 하는 프로그램을 더 선호할 것이다. 여기에서 어떻게 하면 사람들이 컴퓨터와 게임을 하면서 보다 재미를 느낄 수 있을까라는 어려운 문제가 등장하였다. 단순히 게임을 잘하고 못하고를 떠나서 상대방의 수준을 파악하는 일, 사람처럼 게임을 하는 것 등에 대한 연구가 필요하다. 대표적으로, 포커와 같은 게임은 서로가 어떤 카드를 가지고 있는지 불확실한 상황에서 돈을 걸면서 진행하기 때문에 상대가 허풍을 잘 떠는지 아닌지와 같은 성향을 파악하는 것이 매우 중요하다.

 현재의 게임 인공지능을 만드는 방식은 사람이 게임을 배워 나가는 과정과는 매우 다르다. 사람은 게임의 규칙을 이해한 이후에 스스로 또는 다른 사람과 게임을 하면서 자신의 실력을 늘려 나간다. 처음에는 실력이 낮더라도 반복적인 연습을 통해 실력을 점점 향상하는 방식이다. 게임 인공지능 분야에서도 컴퓨터공학의 기계학습 기술을 토대로 전략을 학습하려는 시도가 이루어지고 있다. 컴퓨터가 자신 또는 다른 프로그램과 게임을 지속적으로 하면서 경기의 결과(승/패/무승부)를 토대로 자신의 전략을 수정해 나가는 방식이다.

 미국 Natural Selection Inc.의 데이빗 포겔 박사는 자연계 진화 현상을 모방한 “진화 연산”을 이용하여 컴퓨터가 스스로 체커게임을 잘 두도록 만들었다. 처음에 컴퓨터는 임의로 15개의 체커 전략을 만들어낸다. 아무런 지식 없이 임의로 만들어 내었기 때문에 당연히 체커를 엉망으로 둔다. 그리고 각 전략은 자신과 유사하지만 조금 다른 전략 15개를(마치 자연계의 돌연변이처럼) 만들어낸다. 30개의 전략들은 서로 경기를 가지며, 경기 결과에 따라 평가점수를 부여받는다. 성적이 좋은 15개의 전략이 선택되고, 이들을 대상으로 앞에서와 동일하게 새로운 전략 15개를 돌연변이를 통해 만들어낸다. 연구자들에 따르면, 앞의 평가겮궈횁돌연변이를 250번 반복하여 나온 전략이 www.zone.com에서 마스터 수준의 체커 플레이어와 상대해서 승리하였다고 한다. 흥미로운 점은 데이빗 포겔 박사는 체커 초보라는 점이다. 

▲ 체스 챔피언 크람니크와 컴퓨터 ‘딥 프리츠’의 체스 대결은 매우 유명하다
 이제는 세계 챔피언을 이기는 식의 목표도 계속 필요하지만 다른 방향으로 연구 동기를 자극하는 것이 필요하다. 최근 IEEE 계산 지능 소사이어티를 중심으로 게임 인공지능 경진대회가 국제 학술대회 이벤트 행사로 열리고 있다. 현재는 3차원 자동차 경주, Ms. Pac-Man, Super Mario, Unreal Tournament, 스타크래프트 등의 종목을 대상으로 연구자들로부터 제출받은 인공지능 프로그램을 경쟁시켜 우승자를 정하고 있다. 올해의 경우 8월 31일~9월 3일에 서울 COEX에서 IEEE Computati onal Intelligence and Games 2011 국제학술 대회 행사가 열리며, 부대행사로 위 종목들에 대한 게임 인공지능 경진대회가 준비되고 있다(http://cilab.sejong.ac.kr/cig2011). 본 경진대회는 준비에 필요한 환경을 무료로 제공하기 때문에 이를 수업에 활용하는 것도 가능하며, 게임을 좋아하는 학생들의 학업 및 연구 동기를 자극하는 데도 유용하다.

 연구자들이 생각하는 게임 인공지능과 게임회사에서 생각하는 그것과는 차이가 있을 수 있다. 게임 회사의 경우 게임의 상업성이 중요하기 때문에, 마케팅 측면에서 중요한 부분에 많은 자원을 투자한다. 현재까지는 화려한 3차원 그래픽, 게임의 재미요소, 완성도, 게임의 세계관 등을 중시해 왔다. 이러한 부분들이 만족된 상태에서 여유자원을 게임 인공지능에 투자하는 형태라고 볼 수 있다. 하지만, 기술의 발전으로 그래픽적인 부분에서 큰 차이를 두기가 점점 어려워지고 있고, 고급 인공지능 기술을 구현할 만큼 컴퓨팅 자원도 많이 늘어난 상황이라, 인공지능 기술의 활용에 대한 가능성이 점점 커지고 있다.

 게임 회사들이 게임 인공지능을 구현할 때 가장 중요하게 고려하는 것은 “재미”이다. 그렇기 때문에, 인공지능 기술을 최대한 활용하여 이상적이고 최적의 행동을 보이는 캐릭터를 만드는 것을 목표로 하진 않는다. 대신 사용자가 게임에 몰입하고 사실적으로 느끼며, 게임을 하면서 재미를 느낄 수 있도록 도움을 주는 정도의 기술개발을 목표로 한다. 예를 들어 Unreal Tournament에서 컴퓨터 프로그램은 실수 없이 완벽한 조준 및 사격을 매우 빠르게 할 수 있지만 이를 그대로 구현한다면, 사용자는 게임에 흥미를 잃을 것이다.

 오늘 하고 있는 게임을 잠시 멈추고 다음과 같은 생각을 해보도록 하자. 만약 여러분이라면 어떤 형태의 게임 인공지능을 만들겠는가? 컴퓨터가 나만큼 게임을 하도록 만들 수 있을까? 컴퓨터가 내 실력에 맞춰서 플레이하면서 나를 즐겁게 해 줄 수 있을까? 게임 중독에 빠지지 않도록 컴퓨터가 지능적으로 게임을 조정할 수 있을까? 아직 해결되지 않은 다양한 주제들이 젊은 연구자 및 개발자의 창의적인 아이디어를 요구하고 있다.