curriculum-v2

자가학습

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

최근 확인 버전: v6.0.23

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

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

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

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

동작 원리

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

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

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

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

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

사전 조건

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

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

진행 순서

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

다른 페이지와의 연계

  • 플래너 — 자가학습은 플래너 위에 1:1로 얹힙니다. 플래너의 체크포인트 블록과 모션 블록이 그대로 자가학습의 구성 단위가 됩니다.
  • 학습 — 자가학습의 학습은 롤아웃과 독립적으로 시작/중지합니다. 시작하면 데이터셋 그룹의 누적 데이터로 학습하면서 새 가중치를 배포합니다(학습 스텝 수 0 = 중지할 때까지 주기 배포).
  • 데이터셋 — 자가학습이 수집한 데이터셋은 각 체크포인트 블록이 지정한 데이터셋 그룹에 success / failure / dagger 역할별로 묶여 자동 생성됩니다. 수동 데이터셋 화면에서는 편집/병합/삭제가 차단되며, 자가학습의 전체초기화 또는 실패 데이터 버리기로만 정리할 수 있습니다.
  • 추론 — 롤아웃 중 체크포인트 블록은 추론과 동일하게 정책이 자율적으로 로봇을 움직입니다.

관련 문서