시즌 3를 시작하며 적어 둔 질문이 하나 있었습니다. 로봇이 무엇을 할지 머릿속으로 미리 그려 보는 작은 모델을 만들면, 그 상상은 물리와 어디서부터 어긋날까요? 저는 “물체에 닿는 순간”이라고 예상했습니다. 틀렸습니다. 이 노트는 그 예상이 틀린 자리와, 대신 찾은 세 군데의 기록입니다.
월드 모델이 뭔가요
월드 모델은 “지금 장면과 내가 할 행동을 주면, 다음 장면이 어떻게 될지”를 예측하는 모델입니다. 시뮬레이터가 물리 법칙으로 계산하는 일을, 데이터에서 배운 신경망이 흉내 내는 것입니다. 요즘 로봇 연구에서는 이런 모델로 정책을 미리 시험해 보거나, 실제로 움직이기 전에 결과를 상상해 보는 데 씁니다.
크게 만들 필요는 없었습니다. 알고 싶은 것은 “상상이 어디서 틀리는가”이지, 얼마나 잘 상상하는가가 아니었기 때문입니다. 그래서 작게 만들었습니다.
- 재료: 19편부터 쓴 스크립트 전문가의 시연 1,000편. 로봇 팔이 큐브를 집어 받침에 옮기는 장면입니다. 배치(큐브와 받침을 늘어놓은 장면) 200개에 지시문 다섯 개씩이고, 전부 성공한 시연입니다.
- 보는 것: 측면 카메라 영상을 112×112로 줄이고, 제어 4스텝(0.16초)마다 한 장씩, 한 편에 75장.
- 모델: 이미지를 작게 줄였다가 다시 키우며 그리는 작은 U-Net, 파라미터 245만 개. 지금 장면과 직전 장면, 로봇 팔의 관절 각도, 다음 4스텝 동안 줄 관절 목표를 받아 0.16초 뒤 장면을 그립니다.
- 학습: 시연 900편으로 4만 스텝, 73분. 나머지 100편은 학습에 한 번도 안 쓴 배치 20개로, 평가에만 씁니다.
두 가지 방식으로 시켜 봤습니다
한 스텝 예측은 매번 실제 장면을 보여 주고 바로 다음 한 장만 그리게 하는 것입니다. 오차가 쌓이지 않으니 “그 순간이 얼마나 예측하기 어려운가”를 봅니다.
상상 롤아웃은 첫 두 장만 실제로 주고, 그다음부터는 모델이 그린 장면을 다시 모델에게 넣어 끝까지 이어 가게 하는 것입니다. 팔의 관절과 행동은 실제 값을 줍니다. 팔이 어디로 갈지는 알려 주고, 그 결과 장면이 어떻게 되는지를 상상하게 하는 셈입니다. 이 상상을 실제 물리 결과와 프레임마다 비교합니다.

26편에서 잣대 때문에 두 번 오진한 뒤라, 이번에는 평균 픽셀 오차 하나로 판단하지 않았습니다. 대상 큐브를 색으로 찾아서, 상상 속 큐브와 실제 큐브의 위치가 몇 픽셀 떨어져 있는지를 직접 쟀습니다.
예상: 닿는 순간에 틀릴 것이다
그리퍼가 큐브를 무는 순간은 물리가 가장 복잡한 곳입니다. 두 물체가 부딪히고, 마찰이 생기고, 큐브가 손에 붙어서 같이 움직이기 시작합니다. 그래서 상상이 여기서 무너질 거라고 예상했습니다.

틀렸습니다. 그리퍼를 닫고 들어 올리는 동안 상상 속 큐브는 손을 따라 올라갔습니다. 실제 큐브와의 거리는 0.3픽셀에서 0.8픽셀로, 1픽셀도 안 벌어졌습니다. 닿는 순간에 오차가 뛰는 모습은 없었습니다.
무너진 곳은 그 뒤였습니다. 들어 올린 큐브를 받침 쪽으로 빠르게 옮기기 시작하는 프레임 41에서 44 사이, 거리가 0.8픽셀에서 2.4픽셀로 뛰고 상상 속 큐브가 흐려져 색으로 찾을 수 없는 편이 2%에서 14%로 늘었습니다. 끝까지 가면 16%가 큐브를 잃어버렸습니다.
픽셀을 종류별로 나눠 봤습니다
시간축만으로는 “무엇을” 틀리는지 모릅니다. 그래서 큐브를 든 뒤의 픽셀을 종류별로 나눠 오차를 쟀습니다. 괄호 안은 평가 100편으로 계산한 부트스트랩 95% 구간입니다. 편을 무작위로 다시 뽑아 평균을 2,000번 구했을 때 가운데 95%가 들어간 범위라서, 두 구간이 겹치지 않으면 차이가 우연이 아니라고 봅니다.

| 픽셀 | 한 스텝 예측 | 상상 롤아웃 |
|---|---|---|
| 가려진 적 없는 배경 | 0.3 | 4.3 |
| 잡기 전 가만히 있는 큐브 | 2.0 | 12 |
| 팔이 지나간 뒤 드러난 배경 | 13 | 283 [240, 332] |
| 움직이는 팔과 그림자 | 36 | 358 |
| 움직이는 팔의 가장자리 | 70 [64, 77] | 665 [578, 757] |
| 손에 들린 큐브 | 202 [184, 220] | 2,092 [1,639, 2,579] |
값은 픽셀당 평균 제곱 오차이고, 밝기를 0~255로 쳤을 때의 값입니다. 두 가지가 눈에 띕니다.
첫째, 손에 들린 큐브가 가장 많이 틀립니다. 움직이는 팔보다도 더 틀립니다. 여기서 함정 하나를 피해야 했습니다. 큐브는 6×6픽셀로 작아서 거의 전부가 가장자리입니다. 조금만 어긋나도 픽셀 오차가 커집니다. 팔은 커서 안쪽 픽셀이 오차를 희석합니다. 그래서 팔의 가장자리 픽셀만 따로 떼어 크기를 맞췄습니다. 그래도 손에 든 큐브가 한 스텝 예측에서 2.9배, 상상에서 3.1배 더 틀렸고, 구간은 겹치지 않았습니다.
팔은 어디로 움직일지 행동으로 알려 줍니다. 큐브는 아무도 알려 주지 않습니다. 손에 물렸으니 손을 따라간다는 것을, 모델이 장면만 보고 스스로 알아내야 합니다. 접촉의 순간이 아니라 접촉의 결과로 움직이는 물체가 어려웠던 것입니다.
둘째, 가려졌다 드러난 배경이 많이 틀립니다. 팔이 지나간 뒤 다시 보이는 바닥은, 한 번도 가려진 적 없는 바닥보다 상상에서 약 65배 틀립니다. 위의 비교 그림에서 팔이 쓸고 간 자리에 잡티가 줄지어 남는 것이 이것입니다. 큐브를 들어 올린 자리에는 어두운 얼룩도 남습니다. 모델이 보는 것은 직전 두 장뿐이라, 팔 뒤에 무엇이 있었는지를 기억할 방법이 없습니다.
기억을 줬더니 큐브가 두 개가 됐습니다
“기억이 없어서”라면 기억을 주면 됩니다. 에피소드의 첫 장면, 즉 팔이 아무것도 가리기 전의 장면을 모델에 함께 넣어 주고 같은 조건으로 다시 학습했습니다. 비교를 위해 관절과 행동을 아예 빼고 학습한 모델도 하나 더 만들었습니다.

| 모델 | 드러난 배경 (상상) | 손에 든 큐브 (상상) | 빈 옛 자리에 상상 속 큐브 |
|---|---|---|---|
| 기본 | 283 [240, 332] | 2,092 | 10% |
| 첫 프레임 기억 | 182 [151, 225] | 3,435 | 66% |
| 상태·행동 없음 | 9,488 | 15,840 | 98% |
기억을 주자 드러난 배경은 36% 좋아졌습니다. 구간도 겹치지 않습니다. 그런데 이상한 일이 생겼습니다.

큐브를 들어 올린 뒤, 원래 큐브가 있던 자리에 초록 큐브가 다시 나타났습니다. 손에도 하나, 바닥에도 하나, 상상 속 큐브가 둘이 됩니다. 실제로는 비어 있어야 할 옛 자리에 상상 속 큐브가 있는 프레임이 기본 모델 10%에서 66%로 늘었습니다.
이유는 기억의 내용에 있습니다. 첫 장면에는 바닥만 있는 게 아니라 큐브도 있습니다. 모델은 “가려졌던 자리는 첫 장면대로 그린다”를 배웠고, 큐브의 옛 자리도 첫 장면대로 그렸습니다. 기억은 무엇이 가려져 있었는지는 알려 주지만, 무엇이 떠났는지는 알려 주지 못합니다. 아기가 눈앞에서 숨긴 장난감이 여전히 있다고 아는 능력을 대상 영속성이라고 하는데, 이 모델은 그 거울상을 보여 줬습니다. 떠난 것이 아직 있다고 믿은 셈입니다.
상태와 행동을 뺀 모델은 상상 자체가 무너졌습니다. 팔이 어디로 갈지 모르니 팔을 제대로 그리지 못하고, 큐브도 들어 올리지 못합니다. 98%는 되살아난 큐브가 아니라 끝까지 제자리에 남은 큐브입니다. 기본 모델이 접촉을 그럭저럭 상상한 것은, 팔의 움직임을 행동으로 받았기 때문이었습니다.
한 편 전체
실제 물리, 월드 모델의 상상, 둘의 차이를 나란히 놓은 영상입니다. 차이 칸은 밝을수록 많이 틀린 곳입니다. 팔이 지나간 자리와 손에 든 큐브가 밝게 빛납니다.

전체 영상:
한계
- 모델이 작습니다. 파라미터 245만 개, 112픽셀짜리 영상입니다. 큐브가 6×6픽셀이라 흐려짐의 일부는 해상도 탓일 수 있습니다. 큰 월드 모델에서도 같은 자리가 약한지는 이 실험으로 말할 수 없습니다.
- 한 가지 작업, 한 가지 카메라, 성공한 시연만 썼습니다. 큐브를 떨어뜨리는 실패 장면이 없으니, 모델은 “놓치는 물리”를 본 적이 없습니다.
- 큐브의 옛 자리를 재는 잣대는 팔의 그림자와 겹쳐서 100편 중 12편에서만 쓸 수 있었습니다. 그 칸의 숫자는 구간이 넓습니다.
- 각 모델은 한 번씩만 학습했습니다. 학습 씨앗을 바꿔도 같은 결과가 나오는지는 확인하지 않았습니다.
종합
- 상상은 닿는 순간에 틀리지 않았습니다. 그리퍼가 큐브를 물고 들어 올리는 동안 상상 속 큐브는 1픽셀 안에서 손을 따라갔습니다.
- 가장 많이 틀린 것은 접촉의 결과로 움직이는 물체였습니다. 손에 든 큐브는 크기를 맞춰도 팔보다 약 3배 틀렸고, 빠르게 옮기는 동안 16%가 흐려져 사라졌습니다.
- 가려졌다 드러난 배경도 많이 틀렸습니다. 가려진 적 없는 배경의 약 65배였습니다.
- 첫 장면을 기억시키면 배경은 나아지지만, 떠난 큐브를 옛 자리에 되살려 상상 속 큐브가 둘이 됩니다(66%).
- 행동을 빼면 상상이 무너집니다. 이 작은 월드 모델이 그럭저럭 상상한 것은 팔의 움직임을 알려 줬기 때문입니다.
예상이 틀린 덕에 더 재미있는 걸 봤습니다. 이 모델의 상상은 손이 물체에 닿는 찰나보다, 물체를 들고 가는 동안과 팔이 지나간 자리에서 더 크게 틀렸습니다.
이 시리즈의 전체 글 목록 → 시리즈 목차