오늘 끝나면
AlphaGo & AlphaZero
- ✓AlphaGo & AlphaZero의 핵심 문제를 한 문장으로 설명한다
- ✓오른쪽 실습에서 AlphaGo이 어떻게 움직이는지 관찰한다
- ✓다음 강의와 이어지는 한계를 말할 수 있다
실습 미션
MCTS + Self-Play의 왕관 (틱택토 AlphaZero 데모) 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.
성공 조건
- □실습의 기본값을 먼저 관찰
- □입력값이나 모드를 한 번 이상 바꿔 결과 비교
- □왜 결과가 바뀌었는지 한 문장으로 설명
AI · Day 15 / 강화학습
스스로
두는 신
2016년 3월, 기계가 바둑서 인간 이김. 진짜 충격은 1년 뒤였음. AlphaGo는 인간 기보 3천만 수 보고 배움. AlphaZero는 규칙만 알고 자기랑 두며 스스로 신 됨.
우주의 원자보다 많은 경우의 수
2016년 3월, 서울. 이세돌 9단 vs DeepMind 서버. 5일 뒤 4 대 1로 기계 이김. 그날부터 AI라는 단어 무게가 달라짐.
체스는 1997년 깨짐(Deep Blue). 바둑은 19년 더 버팀.
바둑판 19×19=361칸 / 한 수 선택지 약 250개 / 가능한 국면 약 10^170. 우주 원자 수(10^80)보다 10^90배 많음.
체스 풀던 brute force(가지치기 + 평가 함수 + 깊이 탐색)가 바둑선 안 통함. 분기가 너무 넓음. "이 국면 얼마나 유리한가"를 사람이 함수로 못 씀.
바둑의 경우의 수는 우주의 원자보다 10^90배 더 많다
평가 함수를 못 쓰면, 끝까지 둬보면 된다
2006년 Rémi Coulom 발상은 단순함. 평가 함수 못 쓰겠으면, 무작위 시뮬레이션 승률로 대체함. 이게 MCTS(Monte Carlo Tree Search)임.
MCTS는 네 단계를 수백만 번 반복함.
- Selection — 루트부터 유망한 노드로 내려감(UCB 공식).
- Expansion — 리프 닿으면 자식 노드 펼침.
- Simulation — 거기서 끝까지 둬봄. 이게 Monte Carlo 심장.
- Backup — 승패 결과를 경로 따라 위로 올림.
핵심은 탐색 vs 활용 균형. 승률 높은 수(Q 큼)와 덜 가본 수(N 작음)를 같이 저울질함. 1600번 반복 뒤, 가장 많이 방문한 수를 둠.
탐색·활용 균형 — UCB 고전값 √2 ≈ 1.41 근처
AlphaGo의 네 머리, 그리고 정책을 직접 배우기
DeepMind 도박은 이거였음. MCTS 무작위 시뮬레이션을 딥러닝으로 바꾸면? AlphaGo 2016은 머리 네 개로 굴림.
- SL Policy — 인간 기보 흉내
- Rollout Policy — 빠른 시뮬레이션용
- RL Policy — 셀프플레이로 승률 올림
- Value Network — 국면 승률 예측
여기서 Day 14 DQN과 갈라짐. DQN은 Q(s,a) 배워서 argmax로 행동 골랐음. 근데 바둑은 행동 361개, 로보틱스는 연속 공간이라 argmax 곤란.
그래서 정책 π(a|s) 자체를 직접 파라미터화하고 경사하강함. 가장 단순한 형태가 REINFORCE. 좋은 결과 낸 행동은 로그 확률 올리고, 나쁜 결과는 내림. 누적 보상 G가 가중치 역할 함.
파이썬 코드 보기
# REINFORCE — Policy Gradient의 원형
log_probs, rewards = [], []
for t in range(T):
a = Categorical(policy(s)).sample() # 정책에서 샘플
log_probs.append(log_prob_of(a))
rewards.append(r)
G = 0; returns = []
for r in reversed(rewards):
G = r + gamma * G # 뒤에서부터 누적
returns.insert(0, G)
loss = -(stack(log_probs) * returns).sum() # 좋은 행동 확률 UP
loss.backward(); opt.step()문제는 G 분산이 커서 학습 불안정함. baseline(Value) 빼는 게 Actor-Critic / 업데이트 폭 clip으로 묶는 게 PPO. PPO는 지금 강화학습 디폴트이자 ChatGPT RLHF 엔진임.
좋은 행동의 로그 확률을 올린다 — REINFORCE → A2C → PPO
인간을 버리고, 스스로를 끌어올리다
2017년 AlphaGo Zero 논문 첫 문장은 도발이었음. "무작위 플레이서 시작해, 게임 규칙 외엔 아무 지식 없이 초인적 성능 도달." 인간 기보 0개로.
설계가 급진적으로 단순해짐. Policy와 Value를 신경망 하나로 합침. 사람 데이터와 Rollout 다 버림. 자기랑 둠. 한 판 끝나면 (상태 s, MCTS 분포 π, 승패 z) 모아 학습함.
마법의 정체
신경망 raw policy p를 MCTS가 수백 번 시뮬레이션으로 정제한 게 π임. MCTS가 신경망보다 살짝 더 강함. 그 "살짝 더 강함"이 다음 신경망 학습 목표가 됨.
다음 MCTS는 더 좋은 prior서 출발 / 더 강한 π 생성 / 그게 다시 신경망 끌어올림.망이 스스로를 끌어올리는 선순환임.
AlphaGo Zero는 3일 만에 이세돌 이긴 버전 넘어섬. 40일 뒤엔 100 대 0으로 압살함.
MCTS가 망보다 살짝 강하고, 그게 다음 망의 목표가 된다
ChatGPT의 DNA에 AlphaZero가 있다
AlphaZero는 게임 AI가 아님. 오늘날 거대 모델의 뿌리임. AlphaZero 보상은 게임 승패 / ChatGPT 보상은 인간 선호 학습한 Reward Model. 근데 둘 다 PPO 기반, 둘 다 자기 출력으로 자기 키우는 구조임.
교훈 하나. 좋은 보상 신호 하나만 정의하면, 사람이 정답 안 줘도 시스템이 스스로 진화함. 물류 최적화, 신소재 발견, 칩 배치 설계가 이미 이 방식으로 SOTA 깸.
교훈 둘. 4국 78수. AlphaGo가 1/10,000 확률로도 고려 안 한 이세돌 한 수에 Value Network 허둥댐. 학습한 분포 안에선 신, 분포 밖에선 아마추어. 오늘날 LLM 환각, 자율주행 edge case에 그대로 적용됨.
Q. AlphaZero 셀프플레이에서 MCTS가 신경망보다 강한 이유는?
신경망 raw policy p는 한 번 추론. MCTS는 그 prior서 출발해 수백 번 시뮬레이션하며 실제로 둬보고 결과 누적함(탐색). 그래서 MCTS 방문 분포 π가 신경망보다 항상 살짝 더 정제됨. 이 차이가 다음 학습 목표(증류 대상)가 돼서 선순환 만듦.Self-Play의 계보 — 보드게임에서 거대 모델 RLHF까지