시즌 1 · 알파고편 / PART 4 · PART 4 · 신경망 등장: 직관을 학습한다 / Ch 3 · Policy Network

코드: 작은 Policy Network

작은 policy network의 forward pass를 직접 구현. 핵심 부품:

  • conv2d_multi — 다채널 합성곱 (입력 3채널 → 출력 8필터)
  • relu — 비선형 활성화
  • softmax — 출력을 확률로
🎯 결과 해석

학습 전 (무작위 가중치) 상태에서:

  • 25 자리 확률이 거의 균등 (0.015 ~ 0.089 범위)
  • 1/25 = 0.04에 가까운 분포
  • 특정 자리를 선호하는 신호 없음 — 당연. 아직 학습 안 했으니까

학습 후 (사람 데이터 100만 게임으로 훈련):

  • 중앙 화점에 0.2~0.3 확률 집중
  • 코너 자리는 0.001 수준
  • 국면에 따라 분포가 변함 — 진짜 "직관"
💡 코드의 본질

이 작은 코드 (~30줄)가 알파고 policy network와 같은 구조. 차이:

  • 알파고: 13층 vs 우리 2층
  • 알파고: 19x19 vs 우리 5x5
  • 알파고: 192 필터 vs 우리 8 필터
  • 알파고: TensorFlow 자동 미분 vs 우리 numpy 손코드

스케일이 다르지만 알고리즘은 동일. Conv → ReLU → ... → Softmax.

⚠️ 다음 질문 — 어떻게 학습?

지금까지 모든 가중치는 무작위 또는 손으로 정함. 진짜 알파고는 어떻게 학습한 거?

  1. 지도학습 (Supervised Learning): 사람 프로 게임 16만 판, 다음 수 맞추기 학습. Ch 6에서 다룸.
  2. 강화학습 (Reinforcement Learning): 학습된 모델끼리 자가 대국, 이긴 수의 확률 ↑. PART 5에서.

두 가지 결합이 알파고. 코드 본질은 같지만 학습 데이터와 목표가 다름.

PYTHON