MuJoCo Playground 결과 비교: 같은 랜덤화 설정만으로 부족한 이유

MuJoCo Playground에서 두 정책의 성능이 다를 때는 도메인 랜덤화 범위부터 넓히기보다, 무엇을 같은 조건으로 비교했는지 확인해야 합니다. 같은 작업 이름과 난수 시드를 사용해도 물리 계산 구현, 학습 스크립트, 구동기 기준 모델과 학습 단계가 다르면 같은 실험이 아닐 수 있습니다. 특히 실제 로봇으로 옮길 정책이라면 ‘어느 모델 주변을 랜덤화했는가’가 중요합니다.

이 차이는 MuJoCo Playground의 LEAP Hand 사례에서 구체적으로 드러납니다. 2025년 기술 보고서의 D.4절은 손 안에서 큐브 방향을 바꾸는 작업을 설명하며, 구동기 모델을 정하는 과정과 남은 불확실성을 학습에 넣는 과정을 구분합니다. 아래에서는 그 연구 설정을 현재 저장소의 재현성 안내와 함께 읽습니다.

같은 비율로 흔들어도 출발한 모델이 다를 수 있다

마찰이나 게인을 일정한 비율로 바꾸는 설정은 그 비율을 적용할 기준값이 있어야 뜻이 정해집니다. 두 팀이 같은 랜덤화 비율을 사용했더라도, 한 팀은 제조사 수치와 실제 장치에 맞춰 기준값을 정하고 다른 팀은 예제 기본값을 그대로 썼다면 학습한 물리 조건이 달라질 수 있습니다.

보고서의 LEAP Hand 연구진은 DYNAMIXEL 서보의 특성을 모델에 반영하려고 시스템 식별을 수행했다고 설명합니다. 예를 들어 회전자 관성을 감속기를 거쳐 관절에 반영되는 관성으로 환산하고, 마찰을 정확히 모델링하기 어려운 부분에는 명목값과 랜덤화를 사용했습니다. 이는 이 연구의 모델 구성 방식이며, 모든 로봇 손에 그대로 적용할 파라미터 권고는 아닙니다.

여기서 독자가 확인할 것은 ‘랜덤화를 켰다’는 한 줄보다 구체적입니다. 기준 관성은 어디서 왔는지, 마찰값은 측정·계산·가정 중 무엇인지, 게인은 시뮬레이터와 장치에서 같은 단위와 의미로 쓰이는지를 구분해야 합니다. 로봇 시스템 식별은 이런 기준 모델을 얻고 별도 조건에서 검증하는 과정을 설명합니다.

기준 모델이 잘못됐다는 의심을 랜덤화 범위만 넓혀 해결하려 하면 원인을 구분하기 어려워집니다. 바꾼 정책이 더 다양한 조건을 견딘 것인지, 넓은 분포 안에서 우연히 실제 장치와 가까운 조건을 만난 것인지 같은 성공률 하나로는 알 수 없기 때문입니다. 먼저 기준값의 출처를 맞추고, 남는 불확실성을 별도로 표시하는 편이 비교에 유리합니다.

LEAP Hand의 학습은 처음부터 끝까지 같은 조건이 아니었다

기술 보고서 D.4.1은 초기 학습과 후속 미세조정의 조건을 나눕니다. 후속 단계에서는 갑작스러운 물체 자세 추정 오류를 흉내 내는 변화를 넣고, 실제 하드웨어와 맞추기 위한 토크 제한도 적용합니다. 따라서 같은 환경의 체크포인트라도 어느 단계까지 학습했는지가 비교 조건에 들어갑니다.

이를테면 초기 단계의 체크포인트와 미세조정 후 체크포인트를 놓고 ‘랜덤화를 추가했더니 좋아졌다’고만 설명하면 토크 제한과 학습 단계의 변화가 가려집니다. 변화가 함께 들어간 실험이라면 결과도 그 묶음의 결과로 읽어야 합니다. 특정 요소 하나의 효과를 알고 싶다면 그 요소 외의 조건을 맞춘 별도 비교가 필요합니다.

보고서는 정책과 가치 함수에 들어가는 관측도 구분합니다. 학습 중 가치 함수가 이용하는 추가 상태를 실제 배포 정책의 입력으로 오해하면, 시뮬레이션에서 가능한 일을 실제 센서만으로도 할 수 있다고 잘못 판단할 수 있습니다. 체크포인트를 비교할 때는 학습에 등장하는 모든 정보가 아니라 정책이 실제로 받는 관측과 내보내는 행동을 확인하세요.

이 사례가 주는 실용적인 질문은 명확합니다. 지금 비교하는 두 파일에 같은 관측, 행동 단위, 제약과 학습 단계가 적용됐는가? 파일 이름에 같은 환경명이 들어 있다는 사실은 이 질문의 답이 되지 않습니다.

계산 구현과 스크립트 차이도 먼저 확인한다

2026년 10월 15일 확인한 공식 저장소의 고정된 README는 MJX의 JAX 구현과 MuJoCo Warp 구현을 지원한다고 안내합니다. ‘MuJoCo Playground로 학습했다’는 기록만으로는 어느 구현을 사용했는지 알 수 없습니다.

같은 문서에는 TF32 행렬 연산 정밀도가 학습 재현성과 안정성에 영향을 줄 수 있다는 주의사항이 있습니다. 논문 결과에 사용한 학습 스크립트와 다른 스크립트 사이에도 결과 차이가 있다고 설명합니다. 이는 특정 GPU나 백엔드가 늘 더 좋은 정책을 만든다는 비교 결과가 아닙니다. 모델의 우열을 판단하기 전에 실행 경로가 같은지 확인해야 한다는 근거입니다.

두 실행의 저장소 커밋, 물리 구현, 학습 스크립트와 계산 정밀도 설정을 나란히 놓아 보세요. 이 중 하나가 달라졌다면 먼저 그 차이를 기록하고, 정책이나 랜덤화 설정의 변화와 섞어 해석하지 않는 편이 좋습니다. 설치와 첫 GPU 실행 자체가 필요한 경우에는 MuJoCo Playground 시작 안내가 앞선 단계에 해당합니다.

다음 실행 전에 비교 조건을 한 장으로 남긴다

실험을 다시 준비한다면 각 실행에 다음 세 묶음을 연결해 두면 좋습니다.

  1. 계산 조건: 소스 커밋과 패키지 버전, JAX·Warp 선택, 학습 스크립트, 정밀도 설정.
  2. 로봇과 학습 조건: 구동기 기준값과 출처, 랜덤화 항목·범위·단위, 적용 단계, 관측·행동, 토크 등 제약.
  3. 평가 조건: 체크포인트, 초기 상태와 작업 목표, 성공·실패 판정, 평가에서 바꾼 물리 조건과 실제 로봇 시험 여부.

이 목록은 연구 기록을 정리하기 위한 제안입니다. 도구가 모두 자동 저장한다거나 이 항목을 맞추면 결과가 완전히 같아진다는 보장은 아닙니다. 어느 차이를 비교하려는지 정하고 나머지 조건을 확인할 출발점으로 쓰면 됩니다.

랜덤화의 효과를 보고 싶다면 같은 기준 모델에서 랜덤화 조건을 바꾸는 비교와, 기준 모델 자체를 수정하는 비교를 나누세요. 실제 장치로의 이전을 보고 싶다면 시뮬레이션 평가와 실제 장치의 결과도 따로 남겨야 합니다. 도메인 랜덤화의 범위와 검증은 그다음에 어떤 불확실성을 학습에 넣을지 판단하는 데 도움이 됩니다.

이 글은 보고서와 공개 코드를 읽어 비교 조건을 설명한 것으로, Playground 학습이나 LEAP Hand 시험을 직접 수행한 기록은 아닙니다. 성능이 달라졌다는 결과를 해석하려면 우선 두 실행에서 무엇이 같았고 무엇이 달랐는지 설명할 수 있어야 합니다.