TECH 으로 돌아가기
TECH HACKER NEWS 오늘 7분 읽기 42 READS

격자를 벗어난 세포 자동자: 입자들이 스스로 모여 형태를 만드는 Neural Particle Automata

격자를 벗어난 세포 자동자: 입자들이 스스로 모여 형태를 만드는 Neural Particle Automata

단순한 규칙이 모여 살아있는 것처럼 자라난다

혹시 '세포 자동자(Cellular Automata)'라는 말 들어보셨어요? 이름은 거창한데 개념은 의외로 귀여워요. 가장 유명한 예가 콘웨이의 '생명 게임(Game of Life)'인데요. 바둑판처럼 생긴 격자 위에 점들이 켜졌다 꺼졌다 하는데, 각 칸은 딱 하나의 규칙만 봐요. '내 주변 여덟 칸 중에 켜진 점이 몇 개냐'는 거죠. 점이 너무 적으면 외로워서 죽고, 너무 많으면 답답해서 죽고, 적당하면 살아남거나 새로 태어나요. 이 단순하기 짝이 없는 규칙을 계속 반복하기만 했는데도, 화면에서는 마치 생물처럼 기어다니고 번식하는 복잡한 패턴이 튀어나오거든요. 작은 국소 규칙들이 모여서 전체적으로 놀라운 질서를 만들어내는 거예요.

그런데 여기서 한 가지 아쉬운 점이 있었어요. 규칙을 사람이 손으로 일일이 정해줘야 했다는 거죠. '점 3개면 태어난다' 같은 걸 사람이 머리 굴려서 만들어야 했어요. 그래서 몇 년 전에 누군가 이런 생각을 했어요. '이 규칙 자체를 신경망(뉴럴 네트워크)한테 학습시키면 어떨까?' 이렇게 나온 게 바로 NCA(Neural Cellular Automata, 신경 세포 자동자)예요. 신경망한테 '이런 그림 모양으로 자라나봐'라고 학습시키면, 점 하나에서 시작해서 도마뱀 그림이나 이모지가 스스로 쑥쑥 자라나요. 신기한 건 도중에 그림을 칼로 자르듯이 일부를 지워버려도, 마치 도마뱀 꼬리가 다시 자라듯 알아서 복구해버린다는 점이에요. 생물의 발생 과정(세포가 분열해서 몸이 만들어지는 것)을 흉내 낸 셈이죠.

격자를 버리고 자유롭게 떠다니는 입자로

이번에 소개할 Neural Particle Automata(NPA, 신경 입자 자동자)는 여기서 한 발 더 나아갔어요. 기존 NCA의 가장 큰 제약은 '격자에 묶여 있다'는 거였거든요. 모든 게 바둑판 칸 위에서만 일어나야 했어요. NPA는 이 격자를 아예 없애버렸어요. 대신 빈 공간을 자유롭게 떠다니는 수많은 '입자(particle)'들을 두고, 각 입자가 자기 주변에 가까이 있는 다른 입자들만 보면서 '나는 어디로 움직일까, 내 상태를 어떻게 바꿀까'를 결정해요.

핵심은 모든 입자가 똑같은 하나의 신경망을 공유한다는 점이에요. 이게 왜 중요하냐면, 입자가 100개든 10만 개든 규칙은 딱 하나니까 확장이 자유로워요. 그리고 이 신경망은 '미분 가능(differentiable)'하게 설계돼 있어서, '이런 모양으로 모여라'라는 목표를 주면 경사하강법(틀린 만큼 조금씩 고쳐나가는 학습 방법)으로 규칙을 자동으로 학습할 수 있어요. 사람이 '이렇게 움직여'라고 안 가르쳐줘도, 입자들이 알아서 흩어졌다 모였다 하면서 원하는 형태를 만들어내는 거죠. 일부 입자를 강제로 치워버려도 남은 입자들이 빈자리를 메우면서 형태를 회복하는, 그 자기복구 능력도 그대로 가지고 있어요.

비슷한 친구들과 비교해보면

이 분야엔 사촌뻘 되는 연구들이 꽤 있어요. Lenia는 NCA를 부드러운 연속값으로 확장해서 정말 미생물처럼 생긴 생명체들을 만들어냈고요. 요즘 유튜브에서 종종 보이는 Particle Life는 입자 종류별로 끌어당기고 밀어내는 힘만 줬을 뿐인데 세포 같은 구조가 생겨나는 시뮬레이션이에요. 더 거슬러 올라가면 새 떼의 군집 비행을 흉내 낸 보이즈(Boids)도 같은 철학을 공유하죠. 다만 이 친구들은 대부분 규칙을 사람이 정하거나 손으로 튜닝해야 했는데, NPA는 '원하는 결과를 목표로 주고 규칙을 학습으로 뽑아낸다'는 점에서 결이 달라요. 군집 지능(swarm intelligence)과 딥러닝이 만나는 지점이라고 보면 돼요.

한국 개발자에게 주는 시사점

솔직히 말하면 이건 당장 실무에 갖다 쓰는 라이브러리는 아니에요. 연구에 가깝죠. 하지만 여기서 배울 사고방식이 정말 값져요. '중앙 통제 없이, 각 개체가 주변 정보만 보고 행동하는데도 전체가 똑똑하게 동작한다'는 게 자기조직화(self-organization)의 본질인데, 이건 분산 시스템 설계와 똑 닮았거든요. 중앙 서버 하나가 다 통제하는 대신 각 노드가 이웃하고만 통신해서 전체 합의를 만드는 가십 프로토콜이나, 일부 노드가 죽어도 자동으로 복구되는 시스템을 떠올려보면 철학이 같아요. 생성 예술(제너러티브 아트)을 하시는 분이나, 게임에서 살아있는 듯한 군중·생태계 연출이 필요한 분, 군집 로봇에 관심 있는 분이라면 직접 데모를 돌려볼 가치가 충분해요.

핵심만 한 줄로 정리하면, '격자에 묶여 있던 자기조직화 알고리즘이 자유로운 입자로 풀려나 스스로 형태를 만들고 회복하는 단계까지 왔다'는 거예요. 여러분은 어떻게 생각하세요? 중앙 통제 없이 국소 규칙만으로 굴러가는 이런 접근이, 우리가 만드는 백엔드 시스템 설계에도 영감을 줄 수 있을까요?


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://selforg-npa.github.io/
SHARE
처리 중...