MÓDULO 2.5

🎓 Treinamento: Imitation Learning, ACT, Diffusion Policy

Como o robô aprende assistindo humanos: das demonstrações à política neural. Behavior cloning, Action Chunking Transformers e Diffusion Policy são os 3 paradigmas dominantes — cada um com trade-offs claros de complexidade, dados e performance.

6
Tópicos
~45
Minutos
Técnico
Nível
Prático
Tipo
Imitation Learning Pipeline 🧑‍🏫 Demonstrações pares (s, a) Behavior Cloning regressão supervisionada ACT (Chunking) Transformer + CVAE Diffusion Policy denoising iterativo Política Neural π(a | o, lang) obs → ação 🤖 Deploy

Diagrama ilustrativo — três paradigmas de imitation learning convergindo para uma política neural deployável.

1

🎯 Imitation Learning: behavior cloning básico

Behavior cloning (BC) é a forma mais simples de imitation learning: coleta-se demonstrações humanas (pares observação-ação) e treina-se uma rede neural supervisionada para mapear observações a ações. É essencialmente regressão sobre trajetórias, sem qualquer simulação de ambiente.

🔑 Formulação matemática

# Objetivo do Behavior Cloning

π* = argminπ E(s,a)~D [ L(π(s), a) ]

# onde D é o dataset de demonstrações humanas

# L é MSE para ações contínuas, cross-entropy para discretas

# Treinamento no LeRobot (ACT como BC baseline)

python lerobot/scripts/train.py \

policy=act \

dataset_repo_id=lerobot/aloha_sim_insertion_human \

training.num_steps=100000

✓ Quando BC funciona bem

  • Tarefas com baixa variância — pegar objeto sempre no mesmo lugar
  • Muitas demonstrações — 500+ trajetórias cobrindo o espaço de estados
  • Protótipo rápido: treina em minutos, sem setup de reward
  • Baseline interpretável para comparar com ACT e Diffusion

✗ Problemas clássicos do BC

  • Compounding error — pequenos erros se acumulam fora da distribuição de treino
  • Covariate shift — estado de teste ≠ estado de treino, degradação abrupta
  • Multimodalidade mal capturada — MSE faz média entre modos, gerando ação inválida
  • Exige demos consistentes — um humano inconsistente destrói o treinamento

💡 Dica prática

Use BC como baseline obrigatório. Se BC com 200 demos não atinge >50% success rate, sua tarefa provavelmente é multimodal ou seu dataset tem inconsistências — e ACT/Diffusion Policy resolverão isso sistematicamente.

2

⚡ ACT: Action Chunking with Transformers

ACT (Zhao et al., 2023) prediz chunks de ações futuras de uma vez, em vez de uma ação por vez. Um encoder CVAE gera um estilo latente, e um decoder transformer gera K ações futuras condicionadas nesse estilo e na observação atual — resolvendo compounding error e multimodalidade simultaneamente.

🏗️ Arquitetura ACT em detalhe

1. CVAE Encoder

Recebe sequência de ações humanas → produz z (estilo latente). Em inferência, z ~ N(0,1).

2. Visual Backbone

ResNet-18 processa imagens de câmeras → tokens visuais para o decoder.

3. Transformer Decoder

Gera chunk de K=100 ações. Temporal ensembling combina chunks sobrepostos.

# Configuração ACT no LeRobot

policy.chunk_size = 100 # K ações por inferência

policy.n_action_steps = 100

policy.temporal_ensemble_coeff = 0.01

policy.kl_weight = 10 # peso do KL no ELBO

📅 Evolução: do BC ao ACT

BC

Behavior Cloning (2010s)

Uma ação por observação. Simples mas com compounding error exponencial em trajetórias longas.

DAgger

DAgger (Ross et al., 2011)

Itera coletando mais demos nos estados onde o agente erra. Resolve covariate shift mas exige expert online.

ACT

ACT — Action Chunking (Zhao et al., 2023)

Prediz K=100 ações futuras + CVAE para multimodalidade. Bimanual com ALOHA: 80%+ success em inserção precisa com 50 demos.

💡 Dica prática

ACT é a política padrão do LeRobot e a escolha certa para manipulação de precisão com 50-200 demos. Comece com chunk_size=100 e kl_weight=10 — ajuste só se a perda KL colapsar.

3

🌀 Diffusion Policy: denoising para ações

Diffusion Policy (Chi et al., 2023) aplica modelos de difusão à geração de trajetórias robóticas. Começa com ruído gaussiano e, em T passos de denoising condicionados na observação, gera uma trajetória de ações suave e multimodal — capturando distribuições complexas que MSE não consegue representar.

Diffusion Policy — Processo de Denoising (T passos) 🎲 Ruído N(0, I) t=T ε_θ(aₜ|o) denoising step T→T-1 ε_θ(aₜ|o) denoising step 2→1 t=0 📈 Trajetória limpa + suave Execução no Robô 🤖 receding horizon Observação o (imagem + propriocepção) condiciona todos os passos

Diagrama ilustrativo — Diffusion Policy itera T passos de denoising condicionados na observação atual.

Comparação: U-Net vs Transformer backbone

CNN (U-Net)

  • • Mais rápido em inferência (10-25ms)
  • • Melhor para ações de baixa dimensão
  • • 50-100 DDPM steps ou 15 DDIM steps
  • • Escolha padrão para tasks com câmera única

Transformer

  • • Melhor scaling com mais dados e câmeras
  • • Contexto longo: histórico de observações
  • • Latência maior (30-100ms)
  • • Escolha para sistemas multimodais complexos

💡 Dica prática

Use num_diffusion_iters=15 com DDIM (em vez de 100 com DDPM) para inferência em tempo real. A perda de qualidade é mínima e você mantém latência abaixo de 50ms para controle em 20Hz.

4

🔧 Fine-tuning de VLAs pré-treinados

Fine-tuning adapta um modelo VLA pré-treinado em dados gerais (ex: OpenVLA treinado em Open X-Embodiment com 970k trajetórias) para sua tarefa e robô específicos usando apenas 50-200 demonstrações. É o caminho prático para 99% dos projetos reais.

✓ Estratégias eficientes

  • LoRA/QLoRA — fine-tune apenas 0.1-1% dos parâmetros, sem degradar o backbone
  • Dataset mixing — misture dados específicos (70%) com dados gerais (30%) para evitar catastrophic forgetting
  • Cosine decay com warmup — 5% de warmup steps, LR final 1e-5
  • OpenVLA-OFT supera RT-2-X com 10× menos dados

✗ Erros comuns

  • Full fine-tune com LR alto — destrói features gerais aprendidas no pré-treino
  • Sem dataset mixing — catastrófico esquecimento de generalização
  • Avaliar apenas no dataset de treino — overfitting invisível sem holdout tasks
  • Ignorar a resolução de imagem do modelo base — mudar resolução quebra o ViT

💻 Fine-tuning OpenVLA com LoRA

# Instalar dependências

pip install openvla transformers peft

# Configurar LoRA rank=32 para action head

from peft import LoraConfig, get_peft_model

lora_config = LoraConfig(

r=32,

lora_alpha=64,

target_modules=["q_proj", "v_proj"],

lora_dropout=0.05,

)

# LR baixo para evitar catastrophic forgetting

optimizer = AdamW(params, lr=2e-5)

scheduler = cosine_with_warmup(optimizer, warmup=500)

5

🚀 RL post-training: +24% com reinforcement

Reinforcement Learning post-training aplica RL (PPO, GRPO) sobre uma política inicializada por imitation learning. O robô melhora além das demos humanas ao otimizar reward signals automáticos — como detecção de sucesso por câmera ou sensor de força.

📅 Pipeline IL → RL

Pré-treino via Imitation Learning

50-200 demos humanas → política BC ou ACT como inicialização. Garante comportamento seguro e próximo ao ótimo antes do RL.

Definir reward function

Success reward esparso (0/1) + reward denso auxiliar (distância à posição alvo). Reward shaping crítico para sample efficiency.

RL fine-tuning com PPO/GRPO

KL penalty vs política IL (não divergir). 10k-100k rollouts de simulação. +24% success rate em inserção de conector (Physical Intelligence, 2024).

Avaliação e deploy

Testar em cenários holdout com variações (posição, iluminação, objetos) antes de transferir ao robô real.

Conceitos-chave do RL post-training

KL penalty

Mantém π_RL próxima de π_IL, evitando colapso catastrófico. β_KL típico: 0.01-0.1.

Sample efficiency

RL direto no robô real: custo altíssimo. Simulação + sim-to-real é obrigatório para RL em escala.

Online vs Offline RL

Offline RL (IQL, TD3+BC) usa datasets estáticos — mais seguro. Online RL coleta novos dados mas exige simulador rápido.

GRPO para VLAs

Group Relative Policy Optimization — variante do PPO com estimativa de baseline por grupo de rollouts. Menos hyperparâmetros.

6

📊 Avaliação: success rate, OOD generalization

Avaliação em robótica VLA mede success rate (% de tarefas completadas) em cenários in-distribution e out-of-distribution. Benchmarks como LIBERO, RLBench e SIMPLER padronizam comparações — essencial para saber se sua política generaliza ou apenas memoriza o dataset.

🏋️ LIBERO

4 suítes com 10 tarefas cada. Mede generalização espacial, de objetos, de goals e long-horizon. Padrão HuggingFace.

🤖 RLBench

100 tarefas únicas com dificuldade variável. Strong baseline para comparação de algoritmos de imitation learning.

📐 SIMPLER

Benchmarks realistas com sim-to-real alinhado. Mede robustez a variações de iluminação, textura e posição.

✓ Avaliação rigorosa

  • N≥50 episódios por condição para intervalos de confiança confiáveis
  • Testar com objetos, posições e iluminações não vistas no treino
  • Reportar média ± desvio padrão sobre múltiplas seeds
  • Analisar modo de falha: onde exatamente o robô erra

✗ Avaliação fraca

  • N<10 episódios — variância mascarada; número de sucesso sem significância
  • Testar somente in-distribution — sucesso de treino não é sucesso real
  • Comparar modelos com número diferente de demonstrações sem controlar data budget
  • Avaliar em tarefa diferente da publicação original do benchmark

💡 Dica prática

Antes de rodar 100k steps de treino, avalie com n_eval_episodes=20 a cada 10k steps para detectar plateau cedo. Curva de aprendizado plana após 30k steps com BC geralmente indica tarefa multimodal — mude para Diffusion Policy.

Resumo do Módulo

BC → ACT → Diffusion Policy — progressão de complexidade com ganhos reais: cada paradigma resolve um problema do anterior.
Action chunking resolve compounding error — prever K=100 ações futuras reduz a frequência de decisão e isola erros locais.
Fine-tuning com LoRA é suficiente — adapta um VLA pré-treinado a sua tarefa com 50-200 demos sem GPU cluster.
Avaliação rigorosa com OOD — success rate in-distribution não prediz performance real; teste com variações não vistas.

Próximo módulo

2.6 — Simuladores: Isaac Sim, MuJoCo, Gazebo e Sim-to-Real Transfer