초기 상태 128개 숫자로 6,573프레임 생성…417K RNN의 Bad Apple 실험

영상의 시간값이나 직전 프레임을 계속 넣지 않고, 128개의 부동소수점 숫자로 된 초기 상태 하나에서 약 6,573프레임을 끝까지 생성하는 실험이 공개됐다. 소재는 머신러닝 시각화의 단골인 흑백 애니메이션 Bad Apple이다. 모델 전체는 417,129개 파라미터, FP32 기준 약 1.60MB에 불과하다.

추론 때 입력은 64차원 숨은 상태 h와 64차원 내부 기억 c의 첫 값뿐이다. LSTM과 비슷한 4게이트 순환 전이가 다음 상태를 만들고, h를 프레임 디코더가 384×512 회색조 이미지로 바꾼다. 전이부는 16,640개 파라미터로 약 65KB, 4단계 bilinear upsampling과 depthwise-separable convolution을 쓰는 디코더는 400,361개 파라미터다.

흥미로운 부분은 압축률보다 장기 안정성이다. 작은 오차가 6천 번 넘는 순환을 거치면 화면이 쉽게 무너진다. 제작자는 학습 중 시점별 숨은 상태 표를 함께 최적화해 임의 구간에서 병렬로 훈련했다. 이 표는 추론 때 모두 버린다. rollout 길이는 2에서 시작해 4, 8, 16 순으로 늘리고 마지막에는 512까지 확장했다.

궤적이 수치 오차에 약해지지 않도록 상태에 표준편차 0.005의 가우시안 잡음을 넣고, 깨끗한 목표 상태와의 손실을 계산했다. 상태 변화 속도 자체를 억누르면 영상이 멈춘 궤적으로 수렴할 수 있어 2차 차분, 즉 가속도에 벌점을 줬다. 긴 구간의 메모리 부담은 디코더를 32프레임 단위로 나눠 처리했다.

공개 수치로는 RTX 4080에서 초당 200프레임 이상, 디코딩 중 최대 활성 VRAM 약 17.2MB다. attention, skip connection, normalization을 쓰지 않았다는 점도 단순한 구조를 강조한다. 다만 이 값은 특정 하드웨어와 구현의 결과이며, 일반적인 영상 코덱과 화질·학습 비용을 같은 조건에서 비교한 압축 벤치마크는 아니다.

제작자도 실험 중 여러 변경을 동시에 적용해 어느 기법이 얼마나 기여했는지 분리하기 어렵다고 밝혔다. 디코더 품질도 더 개선해야 한다고 적었다. 그럼에도 작은 순환계가 긴 영상의 시간 흐름을 안정적으로 기억하도록 만드는 방법을 코드와 가중치까지 공개했다는 데 프로젝트의 가치가 있다. 구조, 학습 기록, 저장소 링크는 원 게시물에서 확인할 수 있다.