알파제로(AlphaZero): 구글 AI, 체스와 바둑을 24시간 만에 정복하다
보드 게임(체스 등)은 인공지능 역사에서 널리 연구된 분야입니다. 튜링, 바베지, 폰 노이만, 섀넌 같은 선구자들이 체스 게임을 분석하고 플레이하기 위한 이론, 알고리즘, 하드웨어를 개발했습니다. 최근 몇 년간 바둑과 쇼기(일본 체스) 같은 훨씬 더 복잡한 게임에서 인간을 능가하는 유사한 프로그램들이 등장했습니다.
구글 딥마인드(DeepMind)는 보드 게임에서 인간을 이기는 데 있어 놀라운 실적을 보유하고 있습니다. 2015년 알파고(AlphaGo) 프로젝트는 인간(프로 바둑 기사)을 이긴 최초의 컴퓨터 바둑 프로그램이 되었습니다. 이제 그들은 체스 게임을 스스로 배워 인간이나 다른 컴퓨터 프로그램(스톡피시, 딥 블루 포함)을 약 4시간 만에 이길 수 있는 알파고 프로그램을 개발했습니다.
기존 보드 게임 AI 프로그램은 특정 도메인에 고도로 최적화되어 있어 인간 개입 없이 다른 문제로 일반화할 수 없습니다. 반면 알파제로(AlphaZero) 프로그램은 여러 도전적인 영역에서 초인간적 성능을 달성할 수 있습니다. 게임 규칙 외에 아무런 사전 지식 없이 무작위 플레이에서 시작해, 체스, 쇼기, 바둑에서 24시간 만에 초인간적 플레이 수준에 도달했으며, 각 경우 세계 최고의 프로그램을 물리쳤습니다. 어떻게 이뤘는지, 정확한 결과는 무엇인지 알아보겠습니다.
방법론
2017년 10월, 딥마인드는 알파고 제로(AlphaGo Zero) 알고리즘이 심층 합성곱 신경망과 강화학습만으로 훈련돼 초인간적 성능을 달성했다고 발표했습니다. 엔지니어들은 같은 접근법을 사용해 기존 게임 플레이 알고리즘에서 쓰이던 도메인 특화 보강과 수작업 지식을 심층 신경망과 타불라 라사(tabula rasa) 강화학습 알고리즘으로 대체하는 범용 알고리즘 알파제로를 구축했습니다.
알파제로는 알파-베타 탐색 대신 범용 MCTS(몬테카를로 트리 탐색) 알고리즘을 사용합니다. 스스로 대국하며 가치 추정과 수 확률을 학습하고, 학습된 정보를 탐색 지침으로 활용합니다.
알파고 제로 알고리즘과의 차이점
알파고 제로 알고리즘은 이진 승패 결과를 고려해 승률을 추정하고 최적화합니다. 알파제로는 무승부나 기타 잠재적 결과를 고려해 기대 결과를 추정하고 최적화합니다.
바둑 규칙은 반사와 회전에 불변입니다. 이 사실은 알파고와 그 진화 버전 알파고 제로에서 두 가지 방식으로 잘 활용되었습니다.
- 모든 위치에 대해 8개 대칭을 만들어 훈련 데이터 증강.
- MCTS 알고리즘에서 신경망으로 계산되기 전에 위치를 무작위 반사 또는 회전으로 변환해 계산이 다양한 편향에 대해 평균화되도록 함.
체스와 쇼기는 규칙이 비대칭적이어서 일반적으로 대칭을 가정할 수 없습니다. 알파제로에서는 훈련 데이터를 증강하지 않고 MCTS 중 보드 위치를 변환하지 않습니다.
알파고 제로는 이전 반복의 최강 플레이어를 사용해 자가 대국 게임을 생성합니다. 각 반복 완료 후 새 플레이어 성능을 최강 플레이어와 평가합니다. 55% 차이로 이기면 최강 플레이어를 교체하고 새 플레이어로 자가 대국 게임을 계속 생성합니다. 그러나 알파제로는 반복 완료까지 기다리지 않고 단일 신경망을 지속적으로 업데이트합니다.
알파제로 최적화 및 훈련
알파제로는 게임별 최적화 없이 모든 게임에 하이퍼파라미터를 사용합니다. 탐색을 보장하기 위해 노이즈 팩터를 통합했는데, 이는 해당 게임의 합법적 수 수에 비례해 조정됩니다.
알파고 제로와 마찬가지로 보드 상태는 공간 평면으로 인코딩되고, 행동은 각 게임의 기본 규칙에 따라 공간 평면 또는 평탄화된 벡터로 인코딩됩니다.
개발자들은 알파제로를 체스, 쇼기, 바둑에 적용했습니다. 동일한 네트워크 아키텍처, 하이퍼파라미터, 설정을 세 게임 모두에 사용했습니다. 알고리즘의 개별 인스턴스가 각 게임별로 훈련되었습니다. 무작위 초기화된 매개변수에서 시작해 70만 단계 훈련했으며, 1세대 텐서 처리 장치(TPU) 5,000개로 자가 대국 게임을 생성하고 2세대 TPU 64개로 신경망을 훈련했습니다.
참고: arxiv.org
결과
그림에서 보듯 알파제로는 체스에서 30만 단계(4시간 후) 스톡피시(Stockfish)를 능가했으며, 쇼기에서 11만 단계(2시간 내) 엘모(Elmo)를, 바둑에서 16만 5천 단계(8시간 후) 알파고 리(AlphaGo Lee)를 능가했습니다.
완전 훈련된 인스턴스(3일 훈련)를 알파고 제로, 엘모, 스톡피시와 대결시켰으며, 수당 1분의 속도로 각각 100게임씩 진행했습니다. 결과는 매우 인상적이었습니다(아래 표 참조).
알파고 제로와 알파제로는 4개의 텐서 처리 장치가 장착된 단일 머신을 사용했고, 엘모와 스톡피시는 64스레드와 1GB 해시 크기로 최적 성능을 냈습니다. 알파제로는 모두를 이겼으며, 엘모에게 8게임만 내주고 스톡피시에게는 한 게임도 지지 않았습니다.
구글 개발자들은 알파제로의 MCTS 탐색 성능도 조사했습니다. 쇼기에서 초당 4만 위치, 체스에서 8만 위치를 탐색하는 반면, 엘모는 3,500만, 스톡피시는 7,000만을 탐색합니다. 알파제로는 심층 신경망을 사용해 가장 유망한 옵션에 더 선택적으로 집중하며, 이는 더 인간적인 접근법이라고 할 수 있습니다.
참고 읽기: 평점 기준 최고의 체스 엔진 15선
알파제로는 아직 초기 단계지만, 그 목표를 향한 중요한 발걸음입니다. 유사한 접근법이 단백질 접힘, 신소재 발견, 에너지 소비 절감 등 다른 구조적 문제에 적용된다면, 그 결과는 우리의 미래에 긍정적인 영향을 미칠 잠재력을 가지고 있습니다.