시즌 1 · 알파고편 / PART 6 · PART 6 · AlphaGo Zero (2017) / Ch 2 · policy + value 합치기

잔차 블록 (Residual Blocks) — 더 깊은 신경망

AlphaGo Zero의 신경망 구조 또 다른 변화 — 잔차 블록(Residual Blocks) 사용.

📖 잔차 블록이란

2015년 이미지 분류에서 등장 (ResNet). 핵심:

입력 x
   ↓
[Conv 1 → BatchNorm → ReLU]
   ↓
[Conv 2 → BatchNorm]
   ↓
   y + x  ← 입력을 직접 더함 (잔차 연결)
   ↓
ReLU
   ↓
출력
  

핵심: 입력 x를 출력에 직접 더함. "잔차" = 변화량만 학습.

🎯 잔차 연결이 왜 강력한가
  • 그래디언트 흐름 개선: 깊은 신경망에서 그래디언트가 사라지는 문제 해결
  • 학습 안정성: 가중치가 0이어도 입력이 그대로 전달 → "최소한 입력 유지"
  • 매우 깊은 신경망 가능: 100층, 200층도 학습 가능
  • 표현력 ↑: 같은 가중치 수에 더 강한 표현 가능

2015년 이후 거의 모든 큰 CNN이 잔차 사용. ResNet, AlphaGo Zero, GPT 등.

📊 AlphaGo Zero 신경망 구조
입력: 19x19x17 (현재 차례 8수 + 상대 8수 + 차례 표시)
   ↓
[Conv 256, 3x3]
   ↓
[잔차 블록 × 19 또는 39]      ← 깊음!
   ↓
   ┌──────────────────────────┐
   ↓                          ↓
[Conv 2, 1x1]            [Conv 1, 1x1]
   ↓                          ↓
[Flatten + Dense 362]    [Flatten + Dense 256]
   ↓                          ↓
[Softmax]                [Dense 1 + tanh]
   ↓                          ↓
Policy (362)             Value (-1~+1)
  

362 = 361 + 1 (패스 수). 알파고에는 패스 명시 안 했지만 AlphaGo Zero 명시.

💡 깊이 19 vs 39 — 두 버전

논문에 두 가지 모델:

  • AlphaGo Zero (19블록): 빠른 학습, 약 1700만 가중치
  • AlphaZero (39블록): 더 강함, 약 2200만 가중치

같은 학습 시간이면 19블록이 더 강하지만, 충분히 학습하면 39블록이 천장이 더 높음.