41만 4천 개 매개변수 트랜스포머를 훈련시켜 보이드(boids) 무리를 날게 하고, 탐침이 읽을 수 있는 규칙이 실제로 사용되는지 테스트한
요약
본 글은 트랜스포머 모델을 훈련시켜 보이드(boids) 무리의 움직임을 예측하고, 이 과정에서 숨겨진 규칙이 실제로 추출 가능한지 테스트한 연구 내용을 담고 있습니다. 저자는 새의 다음 움직임을 높은 정확도로 예측했으며, 응집력이나 정렬 같은 기본적인 군체 행동 규칙들이 탐침을 통해 읽어낼 수 있음을 보여주었습니다.
핵심 포인트
- 트랜스포머로 보이드 무리 움직임 예측 성공 (R² 0.99 이상)
- 응집력/정렬 등 기본 군체 규칙이 모델에서 추출 가능함
- 전체 트랜스포머보다 단일 새만 본 작은 네트워크가 더 나은 성능을 보임
저는 작은 보이드 시뮬레이터(새 12마리)를 작성하여 비행하는 모습을 기록했고, 트랜스포머를 훈련시켜 어떤 보이드 규칙에 대해서도 알지 못한 채 각 새의 다음 움직임을 예측하게 했습니다. (Python과 PyTorch로 구축: 처음부터 작성한 트랜스포머, 새당 하나의 토큰, 어텐션 레이어 두 개, 약 41만 4천 개의 가중치, 노트북 CPU에서 훈련)
제가 발견한 것:
- 새 무리를 날게 합니다: 이전에 훈련하지 않은 클립에 대해 R² 값은 0.990에서 0.994 사이를 기록했으며, 4번의 전체 실행을 거쳤습니다.
- 또한 새 50마리도 날게 합니다 (12마리에 대해서만 훈련했음).
- 비교를 위해, 오직 새 자신의 움직임과 무리의 평균 움직임만을 얻는 작은 네트워크(어텐션 없음, 위치 정보 없음)는 R² 값 0.40을 기록했습니다. 이는 동일한 시드와 테스트 클립을 사용했을 때의 결과입니다.
세 가지 규칙은 선형 탐침(linear probe)으로 숨겨진 상태에서 읽어내기 쉬웠습니다:
- 응집력 (cohesion, 이웃 근처에 머무르기): 어떤 훈련 전에도 탐침 R² 값이 약 0.85로 읽힐 수 있었습니다.
- 정렬 (alignment, 이웃과 일직선으로 움직이기): 첫 번째 어텐션 레이어 이후에 읽을 수 있었지만, 만약 두 번째 레이어가 자기 자신에게만 주의를 기울이도록 만들면, 4번의 모든 실행에서 사라졌습니다.
제가 예상하지 못했던 것:
- 제 최초 모델은 무리를 전혀 사용하고 있지 않았습니다. 히스토리 8틱(ticks)을 가지고 이전 답변 자체가 이미 입력에 있었고, 오직 새 한 마리만 본 작은 네트워크가 전체 트랜스포머를 능가했습니다.
제가 여전히 확신하지 못하는 것:
- 레이어가 자기 자신에게만 주의를 기울이도록 만드는 것은 모델이 훈련 과정에서 거치지 않은 것입니다. 이것이 공정한 테스트인지, 아니면 모델에 주입된 이상한 입력 때문에 일부 감쇠가 일어난 것인지요?
사이트: https://kreptiliri.github.io/murmuration/
코드: https://github.com/kreptiliri/murmuration
제출자: /u/rage_81 [링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/MachineLearning (hot)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기