글자 크기

latebloomerhost

바둑 AI를 만들며 배운 것: 멈추는 것도 한 수다

늦깎이연구소 | 바둑 AI 개발기 #4 (시즌 1 마무리) 27번의 자기 대국, 그 후 Policy Loss 3.49 → 3.35. 수치로만 보면 개선이다. 하지만 체감은 없었다. AI는 여전히 이상한 곳에 돌을 뒀다. 1선에 의미 없는 착점. 급소를 피해가는 행마. 수백 시간의 CPU 연산. 수천 판의 자기 대국. 그 끝에서 나는 멈췄다. 버그를 고치며 깨달은 것 프로젝트 계속 읽기 →

바둑 AI를 만들며 배운 것: 멈추는 것도 한 수다 더 읽기"

아내에게 지지 않기 위해, 나는 카드 게임을 만들기 시작했다

Tiến Lên 카드 앱 빌드 기록 #1 처음엔 그냥 재미였다. 베트남에서 자란 아내는 Tiến Lên을 정말 잘한다. 처음 몇 판은 웃으며 졌다. 그 다음엔 조금 억울했고, 그 다음엔 오기가 생겼다. “이건 좀 연구해봐야겠다.” 그게 시작이었다. 왜 하필 Tiến Lên이었을까 Tiến Lên은 단순한 카드 게임이 아니다. 4명이 참여하고 순위로 승부가 나고 강한 패를 언제 쓸지, 언제 계속 읽기 →

아내에게 지지 않기 위해, 나는 카드 게임을 만들기 시작했다 더 읽기"

AI는 어떻게 수를 읽을까: MCTS 완전 정복

늦깎이연구소 | 바둑 AI 개발기 #3 체스와 바둑의 결정적 차이 체스 AI는 1990년대에 이미 세계 챔피언을 이겼다. 하지만 바둑 AI는 2016년이 되어서야 성공했다. 왜 20년이나 차이가 날까? 분기 계수(Branching Factor) 때문이다. 체스: 평균 35개의 선택지 바둑: 평균 250개의 선택지 (19×19 기준) 체스에서 쓰던 방법 — 미니맥스(Minimax) — 은 모든 가능한 수를 탐색한다. 하지만 바둑에서는? 차원의 계속 읽기 →

AI는 어떻게 수를 읽을까: MCTS 완전 정복 더 읽기"

바둑 AI를 만들며 배운 것: “초보들끼리 두면 늘지 않는다”

늦깎이연구소 | 바둑 AI 개발기 #2 이상한 일이 일어났다 AI를 학습시키기 시작했다. 스스로 바둑을 두고, 결과를 보고, 배우는 방식. AlphaGo Zero가 썼던 그 방법 — 셀프플레이. 그런데 이상했다. Iteration 1 | Policy Loss: 3.41 Iteration 2 | Policy Loss: 3.48 Iteration 3 | Policy Loss: 3.57 Policy Loss가 올라갔다. Loss는 “틀린 정도”다. 학습하면 내려가야 한다. 계속 읽기 →

바둑 AI를 만들며 배운 것: “초보들끼리 두면 늘지 않는다” 더 읽기"

바둑 AI를 만들며 배운 것: “덜 가본 길에 가산점을 주는” 알고리즘

늦깎이연구소 | 바둑 AI 개발기 #2 시작은 단순한 호기심이었다 카타고(KataGo). 알파고 이후, 개인도 만들 수 있는 오픈소스 바둑 AI의 이름이다. 나는 개발자가 아니다. 하지만 궁금했다. “AI는 어떻게 ‘생각’하는 걸까?” 그래서 직접 만들어보기로 했다. 9×9 미니 바둑판으로 시작하는 AI. Claude라는 AI의 도움을 받아서. 291줄의 코드, 그 안에 담긴 철학 프로젝트의 심장부는 mcts.py라는 파일이다. MCTS — 몬테카를로 계속 읽기 →

바둑 AI를 만들며 배운 것: “덜 가본 길에 가산점을 주는” 알고리즘 더 읽기"

불편함에서 시작한 바둑 AI

나는 바둑을 좋아한다. 이기고 지는 걸 떠나서, 그 19×19의 정사각형 안에서 생각이 부딪히는 느낌을 좋아한다. 그런데 요즘 바둑 AI를 쓰다 보면 광고가 붙어 있고, 기능이 막혀 있고, 분석은 유료로 전환된다. 하루에 한 번쯤은 이런 생각이 들었다. “그냥 내가 하나 만들면 안 되나?” 거창한 이유는 없었다. 연구도 아니고, 창업도 아니고, 그냥 쓰기가 불편했기 때문이다. 취미가 프로젝트가 계속 읽기 →

불편함에서 시작한 바둑 AI 더 읽기"

둘째의 유치

둘째의 유치 전쟁, 아직 끝나지 않았다

둘째의 유치가 또 흔들린다. 앞니 옆에 있는 이빨. 손가락으로 살짝 건드리면 앞뒤로 출렁거린다. 거의 빠질 것 같은데 아직 안 빠진다. 이게 며칠째다. “아빠, 이거 뽑아줘.” 근데 막상 손 대려고 하면 도망간다. 무섭다고. 아프다고. 그러다 또 와서 “뽑아줘” 한다. 무한 반복. 첫째 때는 안 그랬다. 걔는 좀 담담했다. 유치 빠지면 “어 빠졌네” 하고 끝. 피 나도 계속 읽기 →

둘째의 유치 전쟁, 아직 끝나지 않았다 더 읽기"

보이게 만드는 건, 결국 디테일이었다

요즘 나는 ‘죠비엣(Choviet)’ iOS 앱을 만들면서 한 가지를 자주 느낀다. 기능이 되는 것과 제품처럼 느껴지는 것 사이에는, 생각보다 깊은 강이 하나 흐른다는 것. Turbo Native를 붙이는 작업은 딱 그 강을 건너는 일이었다. 처음엔 “웹을 앱으로 싸기만 하면 되겠지” 같은 순진한 마음이었다가, 막상 해보니 이건 ‘포장’이 아니라 경계면(네이티브 ↔ 웹)을 조각하는 일이었다. 그리고 그 강을 건너는 계속 읽기 →

보이게 만드는 건, 결국 디테일이었다 더 읽기"

태백산 정상 가족 사진

태백산 꼭대기에서 연을 날리다

아이들에게 겨울 태백산을 보여주고 싶었다. 만 7살, 5살. 아직 어리다고 할 수도 있지만, 나는 오히려 지금이라고 생각했다. 대자연 앞에 서 보는 경험은 빠를수록 좋다. 머리가 아니라 몸이 기억하는 것들이 있거든. 눈썰매도 타고, 용연동굴도 구경하고, 마지막으로 태백산에 올랐다. 2시간이면 올라갈 길을 6시간 걸려서 올라갔다. 아이들 발이 작으니까. 눈길이 미끄러우니까. 쉬고, 눈 만지고, 또 쉬고. 근데 말이야, 계속 읽기 →

태백산 꼭대기에서 연을 날리다 더 읽기"