늦깎이연구소 | 바둑 AI 개발기 #4 (시즌 1 마무리)
27번의 자기 대국, 그 후
Policy Loss 3.49 → 3.35.
수치로만 보면 개선이다.
하지만 체감은 없었다.
AI는 여전히 이상한 곳에 돌을 뒀다.
1선에 의미 없는 착점.
급소를 피해가는 행마.
수백 시간의 CPU 연산.
수천 판의 자기 대국.
그 끝에서 나는 멈췄다.
버그를 고치며 깨달은 것
프로젝트 중반, 이상한 현상을 발견했다.
AI가 매번 (0,0) — 좌상귀 첫 번째 칸에 돌을 뒀다.
신경망은 분명 중앙(4,4)에 32.8%의 확률을 주고 있는데.
코드를 파헤쳤다.
# 원래 코드 (버그)
if self.visit_count == 0:
return float("inf")
미방문 노드에 무한대 점수를 주면,
모든 미방문 노드가 동점이 된다.
동점이면? 첫 번째 것을 선택한다.
그래서 항상 (0,0).
신경망이 아무리 똑똑해도,
탐색 알고리즘이 무시하면 소용없다.
# 수정 후
if self.visit_count == 0:
return c_puct * self.prior * math.sqrt(parent_visits + 1)
신경망의 직관(prior)을 탐색에 반영.
이제야 AI가 중앙에 두기 시작했다.
내가 직접 만진 것들
이 프로젝트에서 나는:
- Board 클래스를 만들었다 — 돌을 놓고, 따고, 집을 세는 것
- Game 클래스를 만들었다 — 규칙을 지키며 게임을 진행하는 것
- Network를 만들었다 — 바둑판을 보고 다음 수를 예측하는 것
- MCTS를 만들었다 — 수백 번의 미래를 시뮬레이션하는 것
- Trainer를 만들었다 — 스스로 대국하고 스스로 배우는 것
- GUI를 만들었다 — 실제로 대국할 수 있는 화면
그리고 SGF 파서를 만들어서
프로 기사의 기보 2만 개를 학습시켰다.
지도학습 vs 강화학습, 체감의 차이
프로 기보로 배운 모델은 달랐다.
첫 수를 중앙 근처에 뒀다.
급소에 응수했다.
모양이 있었다.
정확도는 23.7%에 불과했지만,
“바둑을 두는 느낌”이 있었다.
반면 강화학습은?
처음에는 무작위나 다름없었다.
수천 판을 스스로 둬야
겨우 “조금 나아진” 정도.
AlphaGo Zero가 왜 “제로”인지 알겠다.
0에서 시작하려면, 엄청난 연산이 필요하다.
왜 멈추는가
냉정하게 봤다.
- GPU 없이 CPU만으로는 한계가 있다
- 9×9도 제대로 하려면 수십만 판이 필요하다
- 이건 취미가 아니라 연구실 프로젝트다
그리고 더 중요한 질문:
“나는 강한 AI를 만들고 싶은 건가,
아니면 AI를 이해하고 싶은 건가?”
답은 후자였다.
배운 것들, 정리
1. 탐색과 평가는 다르다
신경망은 평가한다. “이 수가 좋아 보여.”
MCTS는 탐색한다. “정말 그런지 확인해볼게.”
둘이 협력해야 진짜 실력이 된다.
2. 규칙은 코드, 전략은 학습
돌을 따는 건 if문으로 짠다.
어디에 둘지는 신경망이 배운다.
AI에도 “가르칠 것”과 “스스로 깨우칠 것”이 있다.
3. 지도학습은 모방, 강화학습은 발견
기보 학습은 “이렇게 두더라”를 배운다.
자기 대국은 “이렇게 두면 어떨까”를 시험한다.
모방이 먼저, 발견은 그 다음.
4. 버그는 가장 좋은 선생
UCB 버그를 고치면서
나는 MCTS의 핵심을 이해했다.
작동하는 코드보다
고장난 코드가 더 많이 가르쳐줬다.
다음 장으로
이 프로젝트는 여기서 멈춘다.
하지만 끝은 아니다.
코드는 아카이브했다.
archive/baduk_v1_20260307.tar.gz
언제든 다시 꺼낼 수 있다.
GPU를 구하면.
연구실에 들어가면.
혹은 그냥 그리워지면.
그래서, 다음은?
강한 AI를 만드는 대신,
강한 AI를 이해하며 사용하는 쪽으로 간다.
KataGo라는 이미 강력한 엔진이 있다.
그걸 활용해서 바둑 코치 앱을 만들어볼까 한다.
- 내 대국을 분석해주고
- 약점을 짚어주고
- “당신은 초반 세력을 과대평가하는 경향이 있습니다” 같은
- 개인화된 조언을 해주는 것
AI를 바닥부터 쌓는 대신,
AI 위에서 가치를 만드는 것.
그것도 하나의 방향이다.
마지막 한마디
“멈추는 것도 한 수다.”
바둑에서 패싸움을 피하는 것처럼.
때로는 “여기서 그만”이 최선이다.
이 프로젝트는 실패가 아니다.
완료된 학습이다.
9×9 바둑판 위에서,
나는 AI의 ‘생각’을 조금은 이해하게 됐다.
그걸로 충분하다.
시즌 1 끝.
시즌 2: 바둑 코치 앱 (예정)
늦깎이연구소
2026년 3월
