자기 대국으로 체스 · 쇼기 정복 (AlphaZero)
AlphaGo Zero를 일반화해 체스 · 쇼기 · 바둑을 규칙만으로 24시간 안에 정복한 AlphaZero
먼저 알아야 할 것
다루는 내용
AlphaGo Zero의 자기 대국 강화학습을 게임별 조정 없이 일반화한 AlphaZero 논문입니다. 무승부를 포함한 기대 결과 예측, 대칭 증강 제거, 평가기 없이 신경망 하나를 계속 갱신하는 방식으로 바꿨습니다. 100판 대국에서 Stockfish에 28승 72무 0패, Elmo에 90승 2무 8패, 3일 학습 AlphaGo Zero에 60승 40패를 기록했고, 초당 탐색 국면은 상대 엔진보다 훨씬 적었습니다.
초록
체스는 인공지능 역사에서 가장 널리 연구된 분야입니다. 가장 강한 프로그램들은 정교한 탐색 기법, 분야에 특화된 조정, 그리고 수십 년에 걸쳐 사람 전문가들이 다듬어 온 손으로 만든 평가 함수를 결합한 것입니다. 이와 달리 AlphaGo Zero 프로그램은 최근 자기 대국을 이용한 백지 상태(tabula rasa) 강화학습으로 바둑에서 초인적 성능을 달성했습니다. 이 논문에서는 이 접근을 일반화해, 여러 어려운 분야에서 백지 상태로부터 초인적 성능을 낼 수 있는 단일 알고리즘 AlphaZero를 제시합니다. 무작위 수에서 출발해 게임 규칙 외에는 아무런 분야 지식도 주지 않았는데도, AlphaZero는 24시간 안에 바둑뿐 아니라 체스와 쇼기(일본 장기)에서도 초인적 수준에 도달했고, 각 게임에서 세계 챔피언 프로그램을 확실하게 이겼습니다.
해설
자기 대국으로 체스 · 쇼기 정복 (AlphaZero)
바둑용 AlphaGo Zero 알고리즘을 게임별 조정 없이 일반화해, 규칙만 알고 무작위 수에서 출발해 24시간 안에 체스 · 쇼기 · 바둑 모두에서 각 분야 세계 챔피언 프로그램을 넘어선 논문입니다. 수십 년간 사람이 다듬은 평가 함수 없이도 된다는 것을 보였습니다.
| 항목 | 내용 |
|---|---|
| 원제 | Mastering Chess and Shogi by Self-Play with a General Reinforcement Learning Algorithm |
| 저자 | David Silver 외 12명 (DeepMind) |
| 발표 | 2017 · arXiv 1712.01815 |
| 트랙 · 수준 | 강화학습 · 심화 |
| 먼저 알면 좋은 것 | AlphaGo Zero(정책 · 가치 신경망 + MCTS 자기 대국), 알파-베타 탐색, 교차 엔트로피 · 평균 제곱 오차, Elo 점수 |
들어가기 전에
이 해설은 아래 내용을 안다고 보고 씁니다. 처음이라면 먼저 읽고 오면 수식과 손계산을 훨씬 쉽게 따라올 수 있습니다.
- 사람 지식 없이 바둑 정복하기 (AlphaGo Zero) — 사람 기보 없이 자기 대국 강화학습만으로 이전 AlphaGo를 100대 0으로 이긴 AlphaGo Zero
한눈에 보기
- AlphaGo Zero의 알고리즘에서 무엇을 빼고 바꾸면 '바둑 전용'이 '범용'이 되는지 알게 됩니다.
- 체스 · 쇼기처럼 규칙이 비대칭이고 무승부가 있는 게임에 맞춰 바뀐 부분(기대 결과 예측, 대칭 증강 제거)을 설명할 수 있습니다.
- 초당 수천만 국면을 보는 알파-베타 탐색과, 초당 수만 국면만 보는 신경망 MCTS가 어떻게 겨룰 수 있는지 이해합니다.
- 체스 수를 8×8×73 평면으로 표현하는 방식처럼 '행동을 신경망 출력으로 만드는 법'을 익힙니다.
초록 (번역)
체스는 인공지능 역사에서 가장 널리 연구된 분야입니다. 가장 강한 프로그램들은 정교한 탐색 기법, 분야에 특화된 조정, 그리고 수십 년에 걸쳐 사람 전문가들이 다듬어 온 손으로 만든 평가 함수를 결합한 것입니다. 이와 달리 AlphaGo Zero 프로그램은 최근 자기 대국을 이용한 백지 상태(tabula rasa) 강화학습으로 바둑에서 초인적 성능을 달성했습니다. 이 논문에서는 이 접근을 일반화해, 여러 어려운 분야에서 백지 상태로부터 초인적 성능을 낼 수 있는 단일 알고리즘 AlphaZero를 제시합니다. 무작위 수에서 출발해 게임 규칙 외에는 아무런 분야 지식도 주지 않았는데도, AlphaZero는 24시간 안에 바둑뿐 아니라 체스와 쇼기(일본 장기)에서도 초인적 수준에 도달했고, 각 게임에서 세계 챔피언 프로그램을 확실하게 이겼습니다.
무엇을 풀었나
체스 프로그램은 1997년 딥블루가 세계 챔피언을 이긴 뒤로도 계속 강해졌습니다. 그 방식은 사람 그랜드마스터가 만든 특징과 세밀하게 조정한 가중치로 국면을 평가하고, 수많은 영리한 휴리스틱을 붙인 알파-베타 탐색으로 거대한 탐색 트리를 펼치는 것입니다. 2016년 TCEC 세계 챔피언 Stockfish가 대표입니다. 쇼기는 판이 더 크고 잡은 말을 다시 내려놓을 수 있어 체스보다 계산적으로 더 어렵고, 세계 챔피언 Elmo도 같은 계열입니다.
문제는 이 프로그램들이 자기 게임에 너무 맞춰져 있어 다른 문제로 옮기려면 사람이 엄청나게 손을 대야 한다는 것입니다.
한편 AlphaGo Zero는 바둑을 백지에서 배웠지만, 바둑은 신경망에 유리한 성질이 많았습니다. 규칙이 위치 이동에 불변이고(합성곱의 가중치 공유와 맞음), 국소적이며(활로 = 이웃 관계), 회전 · 반사 대칭이고, 행동은 '빈 점에 돌 놓기'로 단순하며, 결과는 승 · 패 둘뿐입니다. 체스 · 쇼기는 반대로 규칙이 위치에 따라 다르고(폰의 두 칸 전진 · 승진), 비대칭이며(폰은 앞으로만, 캐슬링은 양쪽이 다름), 퀸처럼 먼 거리 상호작용이 있고, 무승부도 있습니다. 이 논문의 질문은 "그래도 같은 알고리즘이 통할까?"입니다.
핵심 아이디어
flowchart LR
A[무작위 가중치 신경망 하나] --> B[최신 신경망 + MCTS 800회로 자기 대국]
B --> C[국면 s, 탐색 확률 π, 결과 z: 승 +1 · 무 0 · 패 -1]
C --> D[손실 최소화로 신경망 갱신]
D -- 평가 · 교체 단계 없이 계속 갱신 --> B1. 같은 뼈대: 신경망 하나 + MCTS + 자기 대국
직관: 손으로 쓴 평가표 대신 "경험으로 기른 감각(신경망)"과 "그 감각을 믿고 하는 수읽기(MCTS)"를 씁니다. 이 둘을 자기 대국으로 서로 끌어올립니다(해설용 비유).
단계: ① 신경망 가 국면 에서 수 확률 와 기대 결과 를 냅니다. ② MCTS가 방문 횟수가 적고, 수 확률이 높고, 가치가 높은 수를 골라 시뮬레이션을 반복합니다. ③ 뿌리의 방문 횟수로 탐색 확률 를 만들고 그에 따라 둡니다. ④ 대국이 끝나면 결과 를 매기고 아래 손실로 학습합니다.
| 기호 | 뜻 |
|---|---|
| 수 를 둘 확률 | |
| 국면 에서의 기대 결과 | |
| 대국 결과: 패 , 무승부 , 승 | |
| MCTS 뿌리의 방문 횟수에서 만든 탐색 확률 | |
| L2 정규화 세기 |
숫자로 해 보기(해설용 예): 체스에서 무승부가 나 인데 신경망이 (백이 꽤 유리)라고 예측했다면 가치 항은 입니다. 이 손실을 줄이면서 신경망은 "이런 국면은 생각보다 비기기 쉽다"를 배웁니다.
2. AlphaGo Zero와 달라진 네 가지
① 승률 대신 기대 결과. AlphaGo Zero는 승 · 패만 있다고 보고 '이길 확률'을 예측했습니다. AlphaZero는 무승부(0)까지 포함한 '기대 결과'를 예측합니다.
- 왜: 체스는 무승부가 흔하고, 완벽하게 두면 무승부라는 것이 통설일 정도이기 때문입니다.
② 대칭 증강을 없앴습니다. AlphaGo Zero는 바둑의 회전 · 반사 대칭을 이용해 국면마다 8가지 대칭으로 학습 데이터를 늘리고, 탐색 중에도 무작위로 판을 돌려 평가했습니다. AlphaZero는 둘 다 하지 않습니다.
- 왜: 체스 · 쇼기 규칙은 비대칭이라 대칭을 일반적으로 가정할 수 없습니다.
③ 평가기 · 최강 선수 교체를 없앴습니다. AlphaGo Zero는 새 신경망이 현재 최강을 55% 넘게 이겨야 교체했습니다. AlphaZero는 신경망 하나를 계속 갱신하고, 늘 최신 가중치로 자기 대국을 만듭니다.
- 왜: 반복이 끝나기를 기다리지 않아 단순해집니다. 논문은 이것이 일반 알고리즘에 맞는 설계라고 제시합니다.
④ 게임별 하이퍼파라미터 조정을 없앴습니다. AlphaGo Zero는 베이즈 최적화로 탐색 하이퍼파라미터를 맞췄지만, AlphaZero는 모든 게임에 같은 값을 씁니다. 유일한 예외는 탐색용 디리클레 잡음의 크기로, 전형적 국면의 합법 수 개수에 반비례해 체스 , 쇼기 , 바둑 입니다.
숫자로 해 보기(해설용 예): 디리클레 잡음의 가 작을수록 잡음 확률이 몇몇 수에 몰립니다. 둘 수 있는 곳이 수백 개인 바둑에서 를 체스처럼 0.3으로 두면 잡음이 수백 개 수에 얇게 퍼져 탐색 효과가 약해집니다. 그래서 합법 수가 많을수록 를 작게 잡습니다(직관적 설명).
3. 규칙만으로 만든 입력과 출력
직관: 신경망이 볼 수 있도록 판을 '여러 장의 투명 필름'으로 겹쳐 그리고, 둘 수 있는 수도 필름 위의 칸으로 표현합니다.
단계(입력): 판 크기 위에, 최근 수 동안의 국면을 각각 장의 평면(말 종류별 내 말 · 상대 말 위치, 쇼기는 잡은 말 수)으로 쌓고, 여기에 장의 상수 평면(차례, 총 수 수, 캐슬링 가능 여부, 반복 횟수, 진전 없는 수 수)을 더합니다.
| 기호 | 뜻 |
|---|---|
| 판 한 변(체스 8, 쇼기 9) | |
| 한 시점의 국면을 나타내는 평면 수 | |
| 기록하는 시점 수(8) | |
| 규칙 상태를 담는 상수 평면 수 |
단계(출력): 체스의 수는 "어느 칸의 말을 집어(8×8) 어떻게 옮길지(73가지)"로 나눕니다. 73가지는 8방향 × 1~7칸의 '퀸 이동' 56개, 나이트 이동 8개, 그리고 승진 관련 9개입니다. 그래서 정책은 개의 수에 대한 확률입니다. 쇼기는 평면으로 11,259개의 수를 표현하며, 잡은 말을 내려놓는 수도 포함합니다.
숫자로 해 보기: , 입니다. 예를 들어 e2 칸의 폰을 한 칸 앞으로 옮기는 수는 '집는 칸 = e2'인 위치의 '북쪽으로 1칸 퀸 이동' 평면 하나에 대응합니다(해설용 예). 한 국면에서 실제로 둘 수 있는 수는 4,672개 가운데 일부뿐입니다.
왜 이렇게 했나: 손으로 만든 특징(예: 말 가치표)은 넣지 않고, 규칙에서 바로 나오는 정보만 넣습니다. 그래야 "규칙 외 지식 없음"이라는 조건이 지켜집니다.
4. 학습 설정 (논문 기준)
- 게임마다 따로 학습, 70만 단계(미니배치 4,096), 무작위 초기화.
- 자기 대국 생성에 1세대 TPU 5,000개, 신경망 학습에 2세대 TPU 64개.
- 학습 중 MCTS는 수당 800 시뮬레이션. 학습률 0.2에서 시작해 0.02, 0.002, 0.0002로 세 번 낮춤.
- 학습 시간 · 대국 수(부록 표): 체스 9시간 · 4,400만 판, 쇼기 12시간 · 2,400만 판, 바둑 34시간 · 2,100만 판.
- 평가 때는 뿌리 방문 횟수가 가장 많은 수를 고르고, TPU 4개짜리 기계 한 대로 둡니다.
- 상대 설정: 체스는 Stockfish 8(공식 리눅스판), 쇼기는 Elmo(WCSC27)와 YaneuraOu 2017 Early KPPT 4.73 64AVX2 조합으로, 둘 다 가장 강한 설정에 CPU 스레드 64개 · 해시 1GB를 썼습니다.
- 생각 시간(부록 표, 학습 중 수당 800 시뮬레이션 기준): 체스 40ms, 쇼기 80ms, 바둑 200ms로, 판 크기와 대국 길이 때문에 게임마다 다릅니다.
결과
학습 속도(1초/수 평가 기준 Elo): 체스에서는 4시간(30만 단계) 만에 Stockfish를, 쇼기에서는 2시간이 안 되어(11만 단계) Elmo를, 바둑에서는 8시간(16만 5천 단계) 만에 AlphaGo Lee를 넘어섰습니다.
100판 대국(수당 1분, AlphaZero 기준):
| 게임 · 상대 | 승 | 무 | 패 |
|---|---|---|---|
| 체스 · Stockfish | 28 | 72 | 0 |
| 쇼기 · Elmo | 90 | 2 | 8 |
| 바둑 · AlphaGo Zero(3일 학습) | 60 | 0 | 40 |
(표는 논문 Table 1의 백 · 흑 결과를 합친 요약입니다. 예: 체스는 AlphaZero 백 25승 25무, 흑 3승 47무.)
- 탐색량: AlphaZero는 초당 체스 8만, 쇼기 4만 국면만 봤습니다. Stockfish는 7천만, Elmo는 3천5백만입니다. 논문은 신경망으로 유망한 수순에 훨씬 선택적으로 집중해 이를 메웠다고 설명하며, 섀넌이 제안한 '사람에 가까운' 탐색이라고 표현합니다.
- 생각 시간을 늘릴 때: AlphaZero의 MCTS가 Stockfish · Elmo보다 생각 시간에 따라 더 잘 강해져, "이 분야에서는 알파-베타 탐색이 본질적으로 우월하다"는 통념에 의문을 던졌습니다.
- 사람 오프닝 재발견: 온라인 기보 데이터베이스에서 10만 번 넘게 둔 12가지 대표 오프닝을 자기 대국 중 스스로 찾아 자주 뒀고, 각 오프닝에서 시작한 대국에서도 Stockfish를 이겼습니다.
- 각주: 높은 수준의 체스는 무승부가 많아 Elo 차이가 압축되어 보이는 경향이 있다고 저자들은 밝힙니다.
왜 중요한가 · 이후 영향
- 범용성: 같은 알고리즘 · 같은 하이퍼파라미터(잡음 크기만 예외)로 성질이 매우 다른 세 게임을 정복했습니다. "분야 지식을 쌓는 대신 일반 학습 알고리즘에 계산을 쓴다"는 방향을 강하게 보여 줬습니다.
- 알파-베타 vs MCTS 논쟁: 체스 엔진 분야에서 신경망 평가 + 선택적 탐색이 주류 엔진과 경쟁할 수 있음을 보였습니다.
- 다음 단계: MuZero는 여기서 더 나아가 게임 규칙(시뮬레이터)마저 학습한 모델로 대신해, 아타리 같은 환경까지 같은 틀로 다룹니다.
한계 · 주의할 점
- 이 arXiv판은 예비 보고서 성격입니다. 실험 조건(예: 상대 엔진 설정, 시간 제한)을 두고 공정성 논의가 있을 수 있으니, 수치를 인용할 때 조건을 함께 적어야 합니다.
- 완벽한 규칙 지식이 필요합니다. MCTS 안에서 수를 시뮬레이션하고 종료 · 점수를 계산하려면 정확한 규칙(시뮬레이터)이 있어야 합니다.
- 계산 자원이 막대합니다. 자기 대국 생성에 TPU 5,000개가 쓰였습니다. 학습 시간이 짧은 것은 대규모 병렬 덕분입니다.
- 바둑 비교 대상은 3일 학습한 AlphaGo Zero이고, 저자 각주대로 40일 학습판과는 비교하지 않았습니다.
이어서 읽을 것
용어 정리
| 용어 | 쉬운 뜻 |
|---|---|
| 알파-베타 탐색(alpha-beta search) | 볼 필요 없는 가지를 잘라 가며 미니맥스로 수를 따지는 전통 탐색 |
| 평가 함수(evaluation function) | 국면이 누구에게 얼마나 유리한지 점수로 매기는 함수 |
| 자기 대국(self-play) | 프로그램이 자기 자신과 두는 대국 |
| 기대 결과(expected outcome) | 승 +1 · 무 0 · 패 −1의 평균값 |
| 데이터 증강(data augmentation) | 회전 · 반사 등으로 학습 데이터를 늘리는 기법 |
| 디리클레 잡음 | 탐색 다양성을 위해 사전 확률에 섞는 무작위 확률 |
| TCEC · CSA | 각각 체스 엔진 · 컴퓨터 쇼기 세계 대회 |
| Elo | 대국 결과로 계산하는 실력 점수 |
스스로 점검
- AlphaZero가 바둑 전용 기법 중 없앤 것은? — 대칭을 이용한 데이터 증강과 탐색 중 판 변환, 평가기를 통한 최강 선수 교체, 게임별 하이퍼파라미터 조정입니다. 대신 무승부를 다루도록 기대 결과를 예측합니다.
- 초당 국면 수가 Stockfish의 천분의 일 수준인데 어떻게 이겼나? — 신경망의 정책과 가치로 유망한 수순만 골라 깊이 보므로, 적게 보더라도 더 중요한 국면을 더 정확히 평가했기 때문입니다.
- 디리클레 잡음 크기만 게임마다 다른 이유는? — 게임마다 한 국면의 합법 수 개수가 크게 달라, 잡음을 그 수에 반비례하게 맞춰야 탐색 효과가 비슷해지기 때문입니다.
다음에 볼 것
이 글을 이해했다면 이어서 보면 좋은 항목입니다.
- 학습한 모델로 계획하기 (MuZero) — 규칙 없이 스스로 배운 모델 위에서 트리 탐색해 아타리 · 바둑 · 체스 · 쇼기 정복
출처
- 원문: https://arxiv.org/abs/1712.01815 (2017 · David Silver 외)
AI 원리부터 이해하기 · 강화학습 모듈
강화학습 모듈 학습
이 글은 강화학습 모듈의 학습 자료입니다. 전체 31개 자료 중 25번째입니다.
출처·원문
원문 보기요약만