curriculum-v2

자가학습 V2

수집(롤아웃)과 학습을 동시에 무한히 돌리는 온라인 continual 자가학습입니다. 굴리면서 동시에 배우고, 성공률이 목표에 도달하면 같은 체크포인트의 난이도를 단계식으로 올립니다.

최근 확인 버전: v5.0.0

자가학습 V2는 좌측 메뉴의 자가학습 V2 페이지에서 사용합니다. 페이지 헤더 타이틀은 스스로 배우는 로봇입니다. 학습이 끝난 체크포인트를 베이스로 삼아 플래너를 반복 실행(롤아웃)하면서, 로봇이 스스로 데이터를 수집·분류하고 그 데이터로 스스로 학습하는 온라인 continual 자가학습입니다.

자가학습의 핵심은 사람이 데이터를 일일이 수집·라벨링해 주지 않아도 된다는 점입니다. 로봇이 스스로 플래너를 굴리며 성공·실패·교정 데이터를 자동으로 쌓고, 그 데이터로 스스로 다시 학습합니다. V2에서는 한 발 더 나아가, 데이터를 모으는 일(롤아웃)과 그 데이터로 배우는 일(학습)이 동시에 병렬로 무한히 진행됩니다. 즉 로봇이 굴러가는 동안 학습 프로세스가 끊임없이 새 데이터를 흡수해 가중치를 갱신하고, 그 개선된 가중치가 곧바로 다음 롤아웃에 반영되는 온라인 루프입니다.

스크린샷 누락/docs/curriculum-v2/v2-02-overview.png

플래너 선택 후 자가학습 V2 전체 화면 — 좌측 플래너 탭 블록 리스트, 우측 롤아웃/학습 컨트롤 바, 그룹 대시보드 카드

동작 원리

자가학습은 플래너와 1:1로 묶입니다. 플래너를 처음 선택하면 해당 플래너의 자가학습이 자동으로 생성되며(이미 있으면 그대로 불러옵니다), 다시 선택해도 새로 만들어지지 않습니다.

구성 계층은 다음과 같습니다.

계층의미
자가학습(Self-learning)플래너와 1:1로 묶이는 자율 학습 컨테이너
체크포인트 그룹(CheckpointGroup)성공/실패 판정 단위. 함께 성공해야 하는(의존) 체크포인트를 한 그룹으로 묶고, 독립된 과제는 다른 그룹으로 나눕니다.
데이터셋 그룹(DatasetGroup)한 블록의 롤아웃이 남기는 성공 / 실패 / 교정 데이터셋을 하나로 묶는 컨테이너. 체크포인트 블록 설정에서 어느 데이터셋 그룹에 데이터를 모을지 지정하며, 여러 블록이 같은 그룹을 공유할 수 있습니다.
스테이지(Stage)현재 난이도(노이즈·판정 조건) 스냅샷과 진행 상태. 성공률 목표 도달 시 새 스테이지가 만들어집니다.
롤아웃(Rollout)플래너를 1회 실행하는 단위. 타겟 그룹을 지정해 성공/실패를 판정합니다.

전체 루프는 다음 순서로 돕니다. 단, V2에서는 1~4(수집)와 5(학습)가 서로 독립적으로 동시에 진행됩니다.

  1. 타겟 그룹에 대해 플래너를 한 번 실행합니다(롤아웃). 롤아웃은 기본적으로 무한 반복됩니다.
  2. 그룹 안의 체크포인트 블록마다 성공/실패를 판정합니다. 그룹은 속한 체크포인트가 모두 성공해야 한 번의 성공으로 셉니다(하나라도 실패하면 그룹 실패).
  3. 성공 에피소드는 그 블록의 데이터셋 그룹 success 데이터셋에, 실패 에피소드는 실패 저장 확률에 따라 일부만 failure 데이터셋에 저장합니다.
  4. 체크포인트가 실패하면 사용자가 직접 로봇을 조종해 교정(DAgger) 데이터를 수집할 수 있고, 이는 같은 데이터셋 그룹의 dagger 데이터셋에 모입니다.
  5. 학습은 롤아웃과 독립적으로 진행됩니다. 학습 시작을 누르면 해당 데이터셋 그룹의 누적 데이터로 무한 step 학습이 시작되어, 일정 주기마다 새 가중치를 같은 체크포인트에 배포합니다. 롤아웃은 그동안 데이터를 계속 모읍니다.
  6. 현재 스테이지의 성공률이 목표 성공률에 도달하면 더 어려운 다음 스테이지로 진급합니다(노이즈가 단계식으로 커짐). 진급은 노이즈 정책만 갱신하며, 학습은 멈추지 않고 계속 이어집니다.

V1 vs V2 한눈에 비교

항목자가학습 (V1)자가학습 V2 (이 페이지)
수집·학습 타이밍순차 — 롤아웃 → 미션 도달 시 학습 → 다음 스테이지동시 — 롤아웃과 학습이 독립 프로세스로 병렬 진행
버튼 구성시작 / 정지 / 업그레이드롤아웃 시작·중지학습 시작·중지 가 독립
승급 기준성공 개수((성공 + 교정) ≥ 목표)성공 (현재 스테이지 성공률 ≥ 목표, 기본 0.8)
새 체크포인트진급마다 새 체크포인트 생성(계보 누적)만들지 않고 같은 체크포인트에 in-place 갱신
학습 step유한(미션 도달 시 1회 재학습)무한(중지할 때까지 continual)
weight 배포재학습 종료 시 1회주기적(m 스텝마다 같은 체크포인트에 배포)
노이즈성공률에 연속 비례(±(성공률 × rate + offset))단계별 계단식(±(offset + step_up × stage_index))

언제 무엇을 쓰나요?

  • 자가학습 V1 — 단계별 커리큘럼을 명확히 끊어 가며 세대별 체크포인트 계보를 남기고 싶을 때. 각 스테이지의 재학습 결과가 별도 체크포인트로 보존됩니다.
  • 자가학습 V2 — 굴리면서 동시에 배우는 빠른 온라인 적응이 필요할 때. 학습을 멈추지 않고 무한 step으로 돌리며 주기적으로 가중치를 배포합니다.

사전 조건

자가학습 V2를 시작하려면 다음이 미리 준비되어 있어야 합니다.

  • 학습이 끝난 체크포인트
  • 그 체크포인트를 사용하도록 구성된 플래너
  • 롤아웃 시 사용할 로봇과 센서
  • 학습을 수행할 학습 서버(비우면 로컬 학습 서버를 자동 사용)

진행 순서

  1. 플래너 선택 / 그룹·블록·정책 설정 — 자가학습을 만들 플래너를 고르고, 좌측 패널에서 블록을 그룹에 배정한 뒤 체크포인트별 데이터셋 그룹·학습 설정·모션 노이즈·그룹 승급 정책(성공률)을 정합니다.
  2. 롤아웃·학습 실행 / 모니터 / 교정 / 진급 — 타겟 그룹을 정해 롤아웃을 시작하고, 별도로 학습을 시작해 가중치를 주기 배포하며, 진행을 모니터링하면서 실패를 교정하고, 성공률 목표 도달 시 스테이지 진급을 확인합니다.

다른 페이지와의 연계

  • 자가학습 V1 — 수집과 학습을 순차적으로 진행하고 진급마다 새 체크포인트를 남기는 배치 방식입니다. 별도의 자가학습 탭으로 제공됩니다.
  • 플래너 — 자가학습은 플래너 위에 1:1로 얹힙니다. 플래너의 체크포인트 블록과 모션 블록이 그대로 자가학습의 구성 단위가 됩니다.
  • 학습 — V2의 학습은 무한 step continual 방식으로, 롤아웃과 독립적으로 시작/중지합니다. 학습 서버 URL을 지정해 시작하면 데이터셋 그룹의 누적 데이터로 학습하면서 주기적으로 같은 체크포인트에 새 가중치를 배포합니다.
  • 데이터셋 — 자가학습이 수집한 데이터셋은 각 체크포인트 블록이 지정한 데이터셋 그룹에 success / failure / dagger 역할별로 묶여 자동 생성됩니다. 수동 데이터셋 화면에서는 편집/병합/삭제가 차단되며, 자가학습의 전체초기화 또는 실패 데이터 버리기로만 정리할 수 있습니다.
  • 추론 — 롤아웃 중 체크포인트 블록은 추론과 동일하게 정책이 자율적으로 로봇을 움직입니다.

관련 문서