
픽셀들이 옆 친구만 보고 그림을 완성한다고?
혹시 '생명 게임(Conway's Game of Life)'이라고 들어보셨어요? 격자 칸 하나하나가 세포라고 치고, 각 세포가 '내 주변 8칸에 살아있는 세포가 몇 개냐'는 아주 단순한 규칙만 보고 살거나 죽거나를 반복하는 시뮬레이션이에요. 놀라운 건, 이렇게 단순한 규칙만으로도 움직이는 패턴, 자기 복제하는 구조 같은 복잡한 현상이 막 튀어나온다는 거죠. 이런 걸 '셀룰러 오토마타(cellular automata, 세포 자동자)'라고 불러요.
그런데 여기서 한 발 더 나아간 게 있어요. '뉴럴 셀룰러 오토마타(Neural Cellular Automata, NCA)'라는 건데요. 이게 뭐냐면, 세포가 따르는 그 '단순한 규칙'을 사람이 손으로 정하는 게 아니라, 작은 인공신경망이 학습으로 스스로 알아내게 만든 거예요. 이번에 공개된 cells2pixels 프로젝트는 이 기술을 고해상도 이미지까지 끌어올린 사례라 흥미로워요.
한 점에서 그림 전체가 자라난다
NCA의 핵심 아이디어를 그림으로 떠올려볼게요. 처음엔 새까만 화면 한가운데에 점 하나(씨앗 세포)만 있어요. 각 세포는 자기 주변 세포들의 상태만 슬쩍 보고, '나는 다음 순간에 어떻게 변할까'를 작은 신경망에게 물어봐요. 이 과정을 수십, 수백 번 반복하면, 놀랍게도 점 하나에서 시작해 도마뱀이나 꽃 같은 완전한 이미지가 스스로 자라나요. 마치 수정란 하나가 세포 분열을 거듭해 생명체가 되는 과정(생물학에서는 이걸 '형태형성, morphogenesis'이라고 해요)을 흉내 내는 거죠.
진짜 신기한 건 자가 치유(self-healing) 능력이에요. 다 자란 그림의 일부를 지우개로 쓱 지워버려도, 세포들이 다시 자기들끼리 정보를 주고받으면서 지워진 부분을 알아서 복원해요. 어떤 중앙 통제실이 "여기를 고쳐라" 명령하는 게 아니라, 각자 옆 세포만 보고 행동하는데도 전체가 알아서 원래 모습을 되찾는 거예요. 이걸 '자기조직화(self-organization)'라고 부르는데, 개미 떼가 지휘자 없이도 정교한 집을 짓는 것과 비슷한 원리예요.
왜 '고해상도'가 어려운 도전이었나
기존 NCA 연구들(2020년 Distill에 실린 'Growing Neural Cellular Automata'가 유명해요)은 대부분 40x40 픽셀 정도의 작은 이모지 수준이었어요. 왜냐면 세포 수가 늘어날수록 매 단계마다 계산해야 할 양이 폭발적으로 늘어나거든요. 해상도를 키우면 세포가 기하급수적으로 많아지고, 그 많은 세포가 수백 번씩 서로 상호작용하는 걸 학습시키는 게 메모리상 너무 무거워져요.
cells2pixels 프로젝트가 의미 있는 지점이 바로 여기예요. '세포 격자'와 '최종 픽셀'을 분리하는 발상으로 이 한계를 넘으려 한 거죠. 적은 수의 세포가 큰 구조를 잡고, 그걸 더 촘촘한 픽셀로 풀어내는(decode) 방식으로요. 덕분에 세포 자동자 특유의 '스스로 자라고 스스로 고치는' 성질은 유지하면서도, 결과물의 해상도는 확 끌어올릴 수 있게 된 거예요.
업계 맥락에서 보면
요즘 이미지 생성 하면 보통 Stable Diffusion 같은 '확산 모델(diffusion model)'을 떠올리잖아요. 그런데 그쪽은 거대한 신경망이 노이즈에서 이미지를 한 번에 깎아내는 방식이라, 작동 원리가 블랙박스에 가깝고 모델도 무거워요. 반면 NCA는 정반대 철학이에요. 아주 작은 신경망(보통 수천~수만 개 파라미터)을 모든 세포가 똑같이 공유하면서, 국소적인 상호작용만으로 결과를 만들어내요.
이 접근이 매력적인 이유는 단순히 그림을 잘 그려서가 아니에요. '분산되고, 견고하고, 스스로 복구하는' 시스템을 어떻게 만들 것인가라는 더 큰 질문에 대한 단서를 주거든요. 중앙 서버 없이 노드끼리 협력하는 분산 시스템, 일부가 고장 나도 전체가 살아남는 결함 내성(fault-tolerance) 설계 같은 분야와 철학적으로 맞닿아 있어요.
한국 개발자에게 주는 시사점
당장 서비스에 NCA를 넣을 일은 드물겠지만, 이 프로젝트는 두 가지를 일깨워줘요. 하나는 '작은 규칙의 반복이 만드는 창발(emergence)'이라는 개념이에요. 복잡한 결과가 꼭 복잡한 코드에서 나오는 게 아니라는 거죠. 분산 시스템, 멀티 에이전트, 게임 AI를 다루는 분들에겐 좋은 영감이 돼요. 다른 하나는 거대 모델 일변도에 대한 균형추예요. 모두가 파라미터를 키우는 방향으로 달릴 때, 작고 우아한 모델로도 놀라운 일을 할 수 있다는 걸 보여주거든요. 자원이 한정된 환경에서 머신러닝을 고민하는 분들이라면 더 눈여겨볼 만해요.
게다가 데모가 브라우저에서 바로 돌아가니, 직접 만져보면서 '세포들이 그림을 키우는' 광경을 눈으로 보는 것만으로도 재밌어요.
마무리
핵심은 이거예요. "모든 세포가 옆만 보고 같은 규칙을 따르는데, 전체는 스스로 자라고 스스로 고친다." 중앙 통제 없이 만들어지는 질서, 그게 NCA의 매력이에요.
여러분은 어떻게 생각하세요? 거대 모델로 한 방에 그리는 방식과, 작은 규칙의 반복으로 키워내는 방식 — 앞으로 어느 쪽이 더 쓸모 있어질까요?
🔗 출처: Hacker News
"비전공 직장인인데 반년 만에 수익 파이프라인을 여러 개 만들었습니다"
실제 수강생 후기- 비전공자도 6개월이면 첫 수익
- 20년 경력 개발자 직강
- 자동화 프로그램 + 소스코드 제공