PTENES
MÓDULO 2.5

🎓 Entrenamiento: Imitation Learning, ACT, Diffusion Policy

Cómo aprende el robot observando a humanos: de las demostraciones a la política neuronal. Behavior cloning, Action Chunking Transformers y Diffusion Policy son los 3 paradigmas dominantes, cada uno con claros trade-offs de complejidad, datos y rendimiento.

6
Temas
~45
Minutos
Técnico
Nivel
Práctico
Tipo
Pipeline de Imitation Learning 🧑‍🏫 Demostraciones pares (s, a) Behavior Cloning regresión supervisada ACT (Chunking) Transformer + CVAE Diffusion Policy denoising iterativo Política neuronal π(a | o, lang) obs → acción 🤖 Deploy

Diagrama ilustrativo — tres paradigmas de imitation learning que convergen en una política neuronal desplegable.

1

🎯 Imitation Learning: clonación básica del comportamiento

Behavior cloning (BC) es la forma más simple de imitation learning: se recopilan demostraciones humanas (pares observación-acción) y se entrena una red neuronal supervisada para asignar acciones a observaciones. Es esencialmente regresión sobre trayectorias, sin ninguna simulación del entorno.

🔑 Formulación matemática

# Objetivo de Behavior Cloning

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

# donde D es el dataset de demostraciones humanas

# L es MSE para acciones continuas, cross-entropy para discretas

# Entrenamiento en LeRobot (ACT como baseline de BC)

python lerobot/scripts/train.py \

policy=act \

dataset_repo_id=lerobot/aloha_sim_insertion_human \

training.num_steps=100000

✓ Cuándo BC funciona bien

  • ✓Tareas con baja varianza — tomar el objeto siempre en el mismo lugar
  • ✓Muchas demostraciones — 500+ trayectorias que cubren el espacio de estados
  • ✓Prototipo rápido: se entrena en minutos, sin configurar el reward
  • ✓Baseline interpretable para comparar con ACT y Diffusion

✗ Problemas clásicos del BC

  • ✗Error acumulativo — los pequeños errores se acumulan fuera de la distribución de entrenamiento
  • ✗Covariate shift — el estado de prueba ≠ el estado de entrenamiento, degradación abrupta
  • ✗Multimodalidad mal capturada — MSE promedia entre modos y genera una acción inválida
  • ✗Exige demos consistentes: un humano inconsistente destruye el entrenamiento

💡 Consejo práctico

Usa BC como baseline obligatorio. Si BC con 200 demos no alcanza una tasa de éxito >50%, probablemente tu tarea sea multimodal o tu dataset tenga inconsistencias; ACT/Diffusion Policy resolverán esto de forma sistemática.

2

⚡ ACT: fragmentación de acciones con Transformers

ACT (Zhao et al., 2023) predice chunks de acciones futuras de una vez, en lugar de una acción a la vez. Un encoder CVAE genera un estilo latente y un decoder transformer genera K acciones futuras condicionadas por ese estilo y por la observación actual, lo que resuelve simultáneamente el compounding error y la multimodalidad.

🏗️ Arquitectura ACT en detalle

1. Codificador CVAE

Recibe una secuencia de acciones humanas → produce z (estilo latente). En inferencia, z ~ N(0,1).

2. Backbone visual

ResNet-18 procesa imágenes de cámaras → tokens visuales para el decoder.

3. Decoder Transformer

Genera chunks de K=100 acciones. El ensamblado temporal combina chunks superpuestos.

# Configuración de ACT en LeRobot

policy.chunk_size = 100 # K acciones por inferencia

policy.n_action_steps = 100

policy.temporal_ensemble_coeff = 0.01

policy.kl_weight = 10 # peso del KL en el ELBO

📅 Evolución: de BC a ACT

BC

Behavior Cloning (2010s)

Una acción por observación. Simple, pero con un error acumulativo exponencial en trayectorias largas.

DAgger

DAgger (Ross et al., 2011)

Itera recopilando más demos en los estados donde el agente se equivoca. Resuelve el cambio de distribución de covariables, pero requiere un experto en línea.

ACT

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

Predice K=100 acciones futuras + CVAE para multimodalidad. Bimanual con ALOHA: más del 80% de éxito en inserción precisa con 50 demos.

💡 Consejo práctico

ACT es la política estándar de LeRobot y la opción correcta para manipulación de precisión con 50-200 demos. Empieza con chunk_size=100 e kl_weight=10 — Ajusta solo si la pérdida KL colapsa.

3

🌀 Diffusion Policy: eliminación de ruido para acciones

Diffusion Policy (Chi et al., 2023) aplica modelos de difusión a la generación de trayectorias robóticas. Comienza con ruido gaussiano y, en T pasos de denoising condicionados por la observación, genera una trayectoria de acciones fluida y multimodal — capturando distribuciones complejas que MSE no puede representar.

Diffusion Policy — Proceso de Denoising (T pasos) 🎲 Ruido N(0, I) t=T ε_θ(aₜ|o) denoising paso T→T-1 … ε_θ(aₜ|o) denoising paso 2→1 t=0 📈 Trayectoria limpia + suave Ejecución en el Robot 🤖 horizonte móvil La observación o (imagen + propiocepción) condiciona todos los pasos

Diagrama ilustrativo — Diffusion Policy itera T pasos de denoising condicionados por la observación actual.

Comparación: backbone U-Net vs Transformer

CNN (U-Net)

  • • Más rápido en inferencia (10-25ms)
  • • Mejor para acciones de baja dimensión
  • • 50-100 pasos DDPM o 15 pasos DDIM
  • • Elección predeterminada para tasks con una sola cámara

Transformer

  • • Mejor escalado con más datos y cámaras
  • • Contexto largo: historial de observaciones
  • • Latencia mayor (30-100ms)
  • • Elección para sistemas multimodales complejos

💡 Consejo práctico

Usa num_diffusion_iters=15 con DDIM (en vez de 100 con DDPM) para inferencia en tiempo real. La pérdida de calidad es mínima y mantienes la latencia por debajo de 50ms para el control a 20Hz.

4

🔧 Fine-tuning de VLAs preentrenados

El ajuste fino adapta un modelo VLA preentrenado con datos generales (p. ej.: OpenVLA entrenado en Open X-Embodiment con 970k trayectorias) para tu tarea y robot específicos usando solo 50-200 demostraciones. Es el camino práctico para el 99% de los proyectos reales.

✓ Estrategias eficientes

  • ✓LoRA/QLoRA — ajustar solo el 0.1-1% de los parámetros, sin degradar el backbone
  • ✓Mezcla de datasets — mezcla datos específicos (70%) con datos generales (30%) para evitar el catastrophic forgetting
  • ✓Cosine decay con warmup — 5% de pasos de warmup, LR final 1e-5
  • ✓OpenVLA-OFT supera a RT-2-X con 10× menos datos

✗ Errores comunes

  • ✗Full fine-tune con LR alto — destruye las características generales aprendidas durante el preentrenamiento
  • ✗Sin mezcla de datasets — Olvido catastrófico de la generalización
  • ✗Evaluar solo en el dataset de entrenamiento — el overfitting es invisible sin tareas de holdout
  • ✗Ignorar la resolución de imagen del modelo base — cambiarla rompe el ViT

💻 Ajuste fino de OpenVLA con LoRA

# Instalar dependencias

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 bajo para evitar catastrophic forgetting

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

scheduler = cosine_with_warmup(optimizer, warmup=500)

5

🚀 RL post-training: +24% con reinforcement

El post-training con Reinforcement Learning aplica RL (PPO, GRPO) sobre una política inicializada mediante imitation learning. El robot mejora más allá de las demostraciones humanas al optimizar señales de recompensa automáticas — como la detección de éxito mediante cámara o sensor de fuerza.

📅 Pipeline IL → RL

①

Preentrenamiento mediante Imitation Learning

50-200 demostraciones humanas → política BC o ACT como inicialización. Garantiza un comportamiento seguro y cercano al óptimo antes del RL.

②

Definir la función de recompensa

Recompensa de éxito dispersa (0/1) + recompensa densa auxiliar (distancia a la posición objetivo). El reward shaping es clave para la eficiencia de muestreo.

③

Fine-tuning de RL con PPO/GRPO

Penalización KL frente a la política de IL (para que no diverja). 10k-100k rollouts de simulación. +24% de tasa de éxito en la inserción de conectores (Physical Intelligence, 2024).

④

Evaluación y deploy

Probar en escenarios holdout con variaciones (posición, iluminación, objetos) antes de transferirlo al robot real.

Conceptos clave del post-training de RL

KL penalty

Mantiene π_RL cerca de π_IL y evita el colapso catastrófico. β_KL típico: 0.01-0.1.

Eficiencia de muestreo

RL directamente en el robot real: costo altísimo. La simulación + sim-to-real es obligatoria para escalar RL.

Online vs Offline RL

Offline RL (IQL, TD3+BC) usa datasets estáticos, lo que es más seguro. Online RL recopila datos nuevos, pero requiere un simulador rápido.

GRPO para VLAs

Optimización de políticas relativas por grupo: variante de PPO con estimación de baseline por grupo de rollouts. Menos hyperparámetros.

6

📊 Evaluación: tasa de éxito, generalización OOD

La evaluación en robótica VLA mide tasa de éxito (% de tareas completadas) en escenarios in-distribution y out-of-distribution. Benchmarks como LIBERO, RLBench y SIMPLER estandarizan las comparaciones — algo esencial para saber si tu política generaliza o solo memoriza el dataset.

🏋️ LIBERO

4 suites con 10 tareas cada una. Mide la generalización espacial, de objetos, de objetivos y a largo plazo. Estándar de HuggingFace.

🤖 RLBench

100 tareas únicas con dificultad variable. Una sólida referencia inicial para comparar algoritmos de imitation learning.

📐 SIMPLER

Benchmarks realistas con sim-to-real alineado. Mide la robustez ante variaciones de iluminación, textura y posición.

✓ Evaluación rigurosa

  • ✓N≥50 episodios por condición para obtener intervalos de confianza confiables
  • ✓Probar con objetos, posiciones e iluminaciones no vistas durante el entrenamiento
  • ✓Reportar la media ± la desviación estándar sobre varias seeds
  • ✓Analizar modo de falla: dónde exactamente falla el robot

✗ Evaluación deficiente

  • ✗N<10 episodios — varianza enmascarada; número de éxitos sin significancia
  • ✗Probar solo in-distribution — el éxito del entrenamiento no es éxito en el mundo real
  • ✗Comparar modelos con distinto número de demostraciones sin controlar el data budget
  • ✗Evaluar en una tarea distinta de la publicación original del benchmark

💡 Consejo práctico

Antes de ejecutar 100k steps de entrenamiento, evalúa con n_eval_episodes=20 cada 10k steps para detectar un plateau temprano. Una curva de aprendizaje plana después de 30k steps con BC suele indicar una tarea multimodal: cambia a Diffusion Policy.

✅ Resumen del módulo

✓
BC → ACT → Diffusion Policy — progresión de complejidad con avances reales: cada paradigma resuelve un problema del anterior.
✓
Action chunking resuelve el error acumulativo — predecir K=100 acciones futuras reduce la frecuencia de decisión y aísla los errores locales.
✓
El ajuste fino con LoRA es suficiente — Adapta una VLA preentrenada a tu tarea con 50-200 demos, sin un clúster de GPU.
✓
Evaluación rigurosa con OOD — el success rate in-distribution no predice el rendimiento real; prueba con variaciones no vistas.

Siguiente módulo

2.6 — Simuladores: Isaac Sim, MuJoCo, Gazebo y transferencia de sim-to-real