Skip to main content
Summary

모방학습은 "좋은 행동"을 직접 보여주는 방법이다

LeRobot에서 가장 먼저 이해해야 할 학습 방식은 모방학습 imitation learning이다. 이름 그대로 전문가의 행동을 보고 따라 배우는 방식이다. 여기서 전문가는 보통 사람이다. 사람이 텔레오퍼레이션 장치로 로봇을 조작하고, LeRobot은 그때의 카메라 이미지, 로봇 관절 상태, 그리퍼 상태, 행동값을 데이터셋으로 저장한다.

가장 기본 형태는 행동 복제 Behavior Cloning, BC다. 행동 복제는 로봇 학습을 지도학습 문제로 바꾼다. 이미지 분류 모델이 "이 사진은 고양이"라는 정답을 보고 배우듯, 로봇 정책은 "이 상태에서는 이 행동을 했다"라는 정답을 보고 배운다.

간단히 쓰면 다음과 같다.

입력: 현재 관찰값 observation
  - 카메라 이미지
  - 로봇 관절 위치
  - 그리퍼 상태
  - 필요하다면 이전 프레임들

출력: 행동 action
  - 다음 관절 목표 위치
  - 엔드이펙터 이동량
  - 그리퍼 열림/닫힘

학습 중에는 정책이 예측한 행동과 데이터셋에 기록된 전문가 행동을 비교한다. 차이가 작아지도록 신경망의 파라미터를 조정한다. 이 구조가 단순하기 때문에 모방학습은 로봇 학습의 좋은 출발점이 된다. 강화학습처럼 수많은 시행착오를 실제 로봇에게 시키지 않아도 된다. LeRobot도 실제 로봇을 위한 모델, 데이터셋, 도구를 제공하면서 모방학습과 강화학습을 주요 방향으로 다룬다1.

하지만 행동 복제에는 약점도 있다. 데이터셋에는 전문가가 잘한 장면이 많다. 반대로 정책이 조금 실수해서 물체 옆으로 빗나간 장면은 적다. 실제 실행 중 정책이 그런 낯선 상태에 들어가면 다음 행동도 틀리고, 그 오차가 다시 다음 상태를 더 나쁘게 만든다. 이를 오차 누적이라고 한다. 좋은 정책 알고리즘은 이 문제를 줄이기 위해 시간 정보를 더 잘 쓰거나, 여러 단계의 행동을 한 번에 예측하거나, 가능한 행동 분포를 더 유연하게 모델링한다.

모방학습의 기본 원리와 LeRobot 정책들AI 생성 이미지

LeRobot에서 정책은 무엇을 의미하는가

LeRobot에서 정책 policy은 관찰값을 행동값으로 바꾸는 모델이다. 학습 명령의 --policy.type=act 같은 옵션이 바로 어떤 정책 구조를 쓸지 정한다.

lerobot-train \
  --policy.type=act \
  --dataset.repo_id=lerobot/aloha_mobile_cabinet

일부 오래된 예제에서는 --policy=act처럼 짧은 표기를 볼 수 있다. LeRobot은 활발히 바뀌는 프로젝트이므로, 실제 실행 전에는 현재 설치한 버전의 lerobot-train --help를 기준으로 옵션 이름을 확인해야 한다.

LeRobot은 PyTorch 기반으로 여러 최신 정책을 구현한다. 공식 README는 모방학습 계열로 ACT, Diffusion, VQ-BeT, Multitask DiT Policy를 언급하고, 별도로 VLA 계열 모델도 제공한다고 설명한다2. 이 장에서는 LeRobot 실습에서 자주 만나게 되는 두 축, ACT와 Diffusion Policy를 중심으로 본다. 두 정책 모두 전문가 시연 데이터를 사용하지만 행동을 표현하는 방식이 다르다.

정책을 고르는 일은 모델 이름을 고르는 일이 아니다. 다음 질문에 답하는 일이다.

  • 내 작업은 단순한가, 접촉이 많고 복잡한가?

  • 데이터는 수십 에피소드인가, 수백 에피소드 이상인가?

  • 카메라는 한 대인가, 여러 대인가?

  • 행동은 거의 한 가지 방식으로만 가능한가, 여러 방식이 가능한가?

  • 실제 로봇에서 추론 속도가 얼마나 빨라야 하는가?

이 질문에 따라 같은 데이터셋에서도 적합한 정책이 달라진다.

ACT: 여러 시간 단계의 행동을 한꺼번에 예측한다

ACT Action Chunking with Transformers는 이름에 핵심이 들어 있다. 행동을 한 스텝씩 예측하지 않고, 여러 스텝을 하나의 청크 chunk로 묶어 예측한다. 예를 들어 정책이 현재 이미지를 보고 다음 행동 하나만 내는 대신, 앞으로 20개 또는 50개 시간 단계의 행동 시퀀스를 한꺼번에 예측하는 식이다.

왜 굳이 여러 행동을 한 번에 예측할까? 로봇 조작은 한 순간의 명령보다 흐름이 중요하기 때문이다. 컵을 집는 장면을 생각해 보자. 로봇은 먼저 컵에 접근하고, 그리퍼를 열고, 컵 양쪽에 맞추고, 닫고, 들어 올린다. 이 동작은 서로 연결되어 있다. 한 스텝씩만 예측하면 작은 흔들림이 계속 누적될 수 있다. 반면 일정 길이의 행동 묶음을 예측하면 "지금부터 컵을 잡는 방향으로 움직인다"는 짧은 계획을 만들 수 있다.

ACT 논문은 정밀한 양팔 조작에서 모방학습이 겪는 오차 누적과 사람 시연의 불안정성을 줄이기 위해 행동 시퀀스에 대한 생성 모델을 학습한다고 설명한다3. 여기서 생성 모델은 하나의 숫자만 찍는 모델이 아니라, 그럴듯한 행동 흐름을 만들어내는 모델이라고 이해하면 된다.

ACT의 전형적인 처리 흐름은 다음과 같다.

  1. 카메라 이미지를 시각 인코더가 압축한다.

  2. 로봇 관절 상태 같은 저차원 상태를 함께 넣는다.

  3. Transformer가 이미지 특징, 상태, 시간 정보를 연결해 해석한다.

  4. 디코더가 앞으로의 행동 청크를 출력한다.

  5. 실제 실행에서는 청크 전체를 모두 쓰거나, 일부만 쓰고 다음 관찰로 다시 예측한다.

ACT가 좋은 선택인 경우는 명확하다. 작업이 비교적 정해진 절차를 따르고, 언어 이해가 필요 없고, RGB 이미지와 로봇 상태만으로 충분할 때다. 예를 들어 물체 집기, 지정 위치로 옮기기, 버튼 누르기, 간단한 조립 동작처럼 반복 패턴이 있는 작업에 잘 맞는다.

단점도 있다. 행동 방식이 매우 다양하거나, 같은 상태에서 여러 정답 행동이 모두 가능한 작업에서는 평균적인 행동을 내며 애매해질 수 있다. 또한 청크 길이를 너무 길게 잡으면 중간에 환경이 바뀌었을 때 반응이 느려질 수 있다. 그래서 ACT를 쓸 때는 청크 길이, 카메라 입력, 상태 입력, 추론 주기를 함께 봐야 한다.

Diffusion Policy: 복잡한 행동 분포를 점진적으로 만든다

Diffusion Policy는 행동을 생성하는 방식이 다르다. 확산 모델은 원래 이미지 생성에서 유명해진 방식이다. 아주 거칠게 말하면, 노이즈에서 시작해 조금씩 노이즈를 걷어내며 원하는 결과를 만든다. Diffusion Policy는 이 아이디어를 로봇 행동에 적용한다. 즉, 무작위에 가까운 행동 시퀀스에서 시작해 현재 관찰값에 맞는 그럴듯한 행동 시퀀스로 점차 다듬는다.

이 방식의 장점은 여러 가능한 행동 방식을 다루기 좋다는 점이다. 예를 들어 컵 손잡이가 오른쪽에 있을 때 로봇은 손잡이를 잡을 수도 있고, 컵 몸통을 잡을 수도 있다. 둘 다 성공할 수 있다. 이런 상황을 하나의 평균 행동으로 섞어 버리면 오히려 실패한다. Diffusion Policy는 행동의 분포를 모델링하기 때문에, 여러 가능한 방식 중 하나를 선택해 일관된 행동 흐름으로 이어가기 쉽다.

Diffusion Policy 공식 페이지는 이 방법이 로봇의 시각-운동 정책을 조건부 denoising diffusion process로 표현하고, 단일 행동이 아니라 행동 시퀀스를 예측하며, 다중 모드 행동 분포와 고차원 행동 공간에 강점을 보인다고 설명한다4. 여기서 다중 모드란 정답이 하나의 평균점이 아니라 여러 갈래로 존재한다는 뜻이다.

실제 조작 작업에서는 이런 상황이 자주 나온다.

  • 물체를 왼쪽에서 잡아도 되고 오른쪽에서 잡아도 된다.

  • 장애물을 피해 돌아가는 경로가 여러 개다.

  • 액체를 붓거나 펴는 동작처럼 부드럽고 주기적인 움직임이 필요하다.

  • 접촉 때문에 매번 물체가 조금씩 다르게 움직인다.

이런 작업에서 Diffusion 계열은 강력하다. 행동을 한 번에 딱 정하는 대신, 후보 행동 시퀀스를 점진적으로 정제하는 구조이기 때문이다. 다만 비용이 있다. 여러 번의 denoising 단계를 거치므로 일반적으로 추론이 더 무겁다. 실제 로봇 제어 주기가 빡빡하다면 GPU 성능과 지연 시간을 반드시 확인해야 한다.

CNN, Transformer, MLP는 각자 맡은 일이 다르다

정책 이름을 보면 복잡해 보이지만, 내부 구성은 역할별로 나누어 생각하면 쉽다.

CNN은 이미지에서 특징을 뽑는다. 원본 이미지는 픽셀 덩어리다. 정책이 바로 사용하기에는 너무 크고 불필요한 정보도 많다. CNN은 물체의 윤곽, 그리퍼 위치, 색상 대비, 접촉 지점 같은 시각 단서를 압축된 벡터로 바꾼다. 최신 구조에서는 CNN 대신 Vision Transformer나 사전학습된 비전 인코더가 들어갈 수도 있지만, 역할은 같다. 이미지를 행동 결정에 쓸 수 있는 특징으로 바꾸는 것이다.

Transformer는 여러 정보 사이의 관계를 본다. 여러 카메라가 있다면 어느 카메라의 정보가 중요한지, 이전 프레임과 현재 프레임이 어떻게 이어지는지, 행동 청크 안의 시간 순서가 어떻게 되는지 처리한다. ACT에서 Transformer가 중요한 이유도 여기에 있다. 로봇 행동은 순서가 있는 데이터이기 때문이다.

MLP는 가장 단순한 형태의 신경망 블록이다. 여러 층의 선형 변환과 비선형 함수를 쌓아 입력 벡터를 출력 벡터로 바꾼다. 로봇 상태처럼 이미 숫자로 정리된 입력을 처리하거나, 시각 특징과 상태 특징을 합친 뒤 최종 행동값을 만드는 데 자주 쓰인다.

정리하면 이렇다.

구성요소주 역할로봇 정책에서의 예
CNN/비전 인코더이미지 압축카메라 이미지에서 물체와 그리퍼 특징 추출
Transformer시간·카메라·토큰 관계 처리행동 청크 예측, 여러 관찰 정보 통합
MLP숫자 벡터 변환관절 상태 처리, 최종 행동값 출력

좋은 정책은 이 구성요소를 적절히 조합한다. 이미지가 중요하면 비전 인코더가 강해야 한다. 시간 흐름이 중요하면 Transformer나 시퀀스 모델이 중요하다. 상태 기반의 단순 작업이면 MLP 중심 정책도 충분할 수 있다.

정책 선택 기준: 태스크와 데이터에 맞춰 고른다

처음부터 가장 복잡한 정책을 고를 필요는 없다. 좋은 기준은 "내 데이터와 태스크가 요구하는 만큼만 복잡하게"다.

데이터가 적고 작업이 단순하면 ACT부터 시작하는 것이 좋다. ACT는 LeRobot 예제에서도 기본 정책처럼 자주 등장한다. 물체를 집어 옮기거나, 특정 위치에 놓는 작업처럼 시연 패턴이 비교적 일정하면 빠르게 기준 성능을 만들 수 있다.

행동이 복잡하고 가능한 경로가 여러 개라면 Diffusion Policy를 고려한다. 특히 접촉이 많거나, 물체가 매번 조금씩 다르게 놓이거나, 부드러운 연속 동작이 필요한 작업에서 강점이 있다. 대신 학습과 추론 비용이 커질 수 있으므로 실제 제어 주기를 확인해야 한다.

카메라 수가 많을수록 모델과 GPU 부담이 커진다. 한 대의 고정 카메라로 충분한 작업도 많다. 하지만 손목 카메라가 있어야 그리퍼 주변 접촉을 볼 수 있는 작업도 있다. 여러 카메라를 쓴다면 정책이 각 시점의 정보를 잘 결합할 수 있어야 하고, 데이터셋의 timestamp 정렬도 더 중요해진다.

행동 차원이 높을수록 강한 시퀀스 모델이 필요하다. 단일 팔의 6~7차원 관절 제어보다 양팔 로봇, 이동 베이스, 손가락 많은 그리퍼를 함께 제어하는 작업이 훨씬 어렵다. 행동 차원이 커지면 단순한 평균 예측은 쉽게 불안정해진다.

추론 속도는 실제 로봇에서 성능 그 자체다. 학습 손실이 낮아도 행동이 늦게 나오면 로봇은 이미 다른 상태에 가 있을 수 있다. ACT는 비교적 직접적으로 행동 청크를 내기 때문에 빠른 편이다. Diffusion 계열은 여러 단계의 샘플링이 필요할 수 있어 지연 시간을 측정해야 한다.

실전 선택을 간단히 요약하면 다음과 같다.

상황먼저 고려할 정책
첫 실험, 단순 조작, 적은 데이터ACT
정해진 절차가 있는 반복 작업ACT
접촉이 많고 경로가 여러 개인 작업Diffusion Policy
부드러운 고차원 행동 시퀀스가 중요한 작업Diffusion Policy
언어 명령 이해가 중요한 작업VLA 계열 모델
빠른 제어 주기가 최우선인 작업가벼운 ACT 또는 작은 정책

첫 기준선은 단순하게, 비교는 공정하게

정책을 고를 때 가장 흔한 실수는 한 번의 결과만 보고 결론을 내리는 것이다. ACT가 실패했다고 해서 Diffusion이 무조건 답은 아니다. 데이터가 부족했을 수도 있고, 카메라 위치가 나빴을 수도 있고, 행동값 정규화가 맞지 않았을 수도 있다.

좋은 절차는 다음과 같다.

  1. 같은 데이터셋으로 ACT 기준선을 만든다.

  2. 실패 장면을 기록한다.

  3. 실패가 시간 흐름 문제인지, 시각 정보 문제인지, 행동 다양성 문제인지 나눈다.

  4. 필요할 때 Diffusion Policy나 다른 정책으로 비교한다.

  5. 성공률뿐 아니라 추론 속도, 실패 유형, 재현성을 함께 본다.

모방학습 정책은 마법이 아니다. 데이터에 들어 있는 행동을, 모델이 표현할 수 있는 방식으로 배운다. 그래서 정책 알고리즘의 차이를 이해해야 한다. ACT는 행동을 청크로 묶어 짧은 계획처럼 예측한다. Diffusion Policy는 복잡한 행동 분포에서 그럴듯한 시퀀스를 점진적으로 생성한다. CNN, Transformer, MLP는 각각 이미지, 시간 관계, 숫자 벡터 처리를 맡는다.

이 관점을 갖고 나면 LeRobot의 정책 선택은 훨씬 명확해진다. "어떤 모델이 제일 좋은가?"가 아니라 "내 태스크, 내 데이터, 내 로봇 속도에 어떤 정책이 맞는가?"를 묻게 된다. 그 질문이 실제 로봇 학습을 안정적으로 만드는 출발점이다.

참고

1LeRobot Hugging Face 조직 페이지

2Hugging Face LeRobot GitHub 저장소

3Learning Fine-Grained Bimanual Manipulation with Low-Cost Hardware

4Diffusion Policy: Visuomotor Policy Learning via Action Diffusion

책 목록

LeRobot 실전 가이드: 데이터 수집부터 로봇 배포까지

전체 목차 보기

이 노트는 보도·비평·교육·연구 목적으로 작성되었습니다. 저작권 문의가 있으시면 에서 알려주세요.

틸노트는 사용자가 AI를 활용해 노트를 쉽게 작성하거나 편집할 수 있는 서비스입니다.

AI 스퀘어 단톡방에 함께해요

AI 활용과 틸노트 사용 팁을 나누는 오픈채팅방입니다. 입장 비밀번호는 tilnote입니다.

참여하기