실습 5-B: Episode split과 정규화 누출

목표

  • frame random split과 episode split을 비교한다.
  • train-only statistics를 적용한다.
  • outlier와 작은 표준편차 문제를 찾는다.

절차

  1. python code/normalization.py를 실행한다.
  2. split_by_episode() 대신 frame을 무작위 분할한 조건을 만든다.
  3. 인접 frame의 state 차이를 기준으로 train/validation 유사도를 비교한다.
  4. 전체 dataset stats와 train-only stats로 validation을 각각 정규화한다.
  5. 한 joint에 큰 encoder spike를 한 개 주입하고 mean/std/min/max 변화를 기록한다.
  6. 한 joint를 상수로 만들고 epsilon 없이 나누었을 때 결과를 확인한다.
  7. min-max, z-score, percentile clipping을 비교한다.
  8. LeRobot meta/stats.json의 dataset-global stats와 train episode에서 다시 계산한 policy stats를 비교하고, 후자와 split/hash를 checkpoint manifest에 저장한다.

질문

  1. frame split의 validation loss가 낮아진다면 왜 일반화 향상으로 해석할 수 없는가?
  2. joint limit clamp와 statistical clipping은 어떤 순서와 목적으로 적용해야 하는가?
  3. validation에 train 범위를 벗어나는 값이 있을 때 자동으로 제거하면 안 되는 이유는 무엇인가?

제출물

  • 분할별 episode ID 목록
  • train-only normalization stats
  • outlier 전후 통계표
  • 선택한 normalization과 근거

가상실습: 수집·분할·행동 청크 설계

장비 없이 변수를 조절해 결과를 관찰하는 단순 개념 모형입니다.

episode 수와 길이, 수집 주파수로 데이터 행 수를 계산하세요. 행동 청크가 길어질수록 환경 변화에 대응하지 못하는 구간이 얼마나 길어지는지 확인합니다.

결과 해설과 실제 환경에서 확인할 점

행 수는 episode 수×길이×수집 주파수입니다. 인접 프레임을 무작위 분할하면 누출될 수 있어 episode 단위로 나눕니다. chunk 길이는 새 관측을 반영하는 빈도와 구분해야 합니다.

직접 답하고 피드백 받기

답안은 이 브라우저에 저장됩니다. AI 평가는 학습을 위한 피드백이며 실제 코드 실행이나 장비 동작을 검증하지 않습니다.

1. 수행 결과와 근거

위 과제를 수행하고 설정값, 관찰 결과, 해석과 개선안을 작성하세요. 실제 장비 없이 한 경우 가상실습 결과임을 명시하세요.

0 / 8,000자 · 최소 10자
이 장의 예제 코드·설정 파일 (5)

이 장의 자가 점검·가상실습