Behavioral Cloning
La clonación del comportamiento entrena una política para imitar demostraciones de expertos mediante aprendizaje supervisado. Cómo funciona, por qué se acumulan los errores y cómo lo soluciona DAgger.
La clonación del comportamiento (BC) es la forma más sencilla de aprendizaje por imitación: un agente aprende a actuar entrenando una política mediante el aprendizaje supervisado convencional para predecir la acción que realizó un experto en cada situación de una demostración grabada. Los datos de entrenamiento son un conjunto de pares de observación-acción, como fotogramas de cámara emparejados con el ángulo de giro del volante de un conductor o lecturas de las articulaciones de un robot emparejadas con las órdenes de un teleoperador, y la política se ajusta con una función de pérdida de regresión para acciones continuas o una función de pérdida de clasificación para las discretas. La clonación del comportamiento no requiere una función de recompensa ni interacción con el entorno durante el entrenamiento, lo que la convierte en el punto de partida habitual para enseñar a robots, vehículos y agentes de IA basados en software a partir de demostraciones humanas.
Orígenes y ejemplos clásicos#
El nombre procede del trabajo de Donald Michie y sus colaboradores hacia 1990 sobre la reconstrucción de habilidades humanas de control. Su demostración inicial más conocida, «Learning to Fly», de Claude Sammut y sus colaboradores en 1992, registró las acciones de control de personas que pilotaban un simulador de vuelo y, a partir de esos registros, indujo pilotos automáticos de árboles de decisión. La red ALVINN de Dean Pomerleau, en Carnegie Mellon, ya había demostrado en 1989 que una pequeña red neuronal podía dirigir un vehículo de pruebas a partir de imágenes de cámara.
En 2016, el sistema de conducción de extremo a extremo de NVIDIA entrenó una red neuronal convolucional con unas 72 horas de conducción humana para convertir directamente los píxeles sin procesar captados por una cámara frontal en órdenes de dirección y, en un trayecto típico por el condado de Monmouth, en Nueva Jersey, controló la dirección de forma autónoma aproximadamente el 98 % del tiempo. Con acciones discretas, la clonación del comportamiento equivale a la clasificación de imágenes: un modelo de clasificación Ultralytics YOLO26 entrenado con fotogramas de cámara agrupados en una carpeta por cada acción que realizó el conductor, como girar a la izquierda, seguir recto y girar a la derecha, devuelve la acción clonada como su clase top-1.
El problema del error acumulado#
Durante el entrenamiento, la política solo ve los estados por los que pasó el experto. En el despliegue actúa en bucle cerrado, por lo que cada pequeño error la lleva a un estado ligeramente distinto de los de las demostraciones, donde es más probable que vuelva a equivocarse, y los errores se acumulan a lo largo de la trayectoria. Esta discrepancia entre los estados de entrenamiento y despliegue es una forma de cambio de covariables. En 2010, Stéphane Ross y Drew Bagnell demostraron que el coste esperado de una política clonada puede crecer con el cuadrado del horizonte de la tarea aunque su error por paso sea pequeño. DAgger (agregación de conjuntos de datos), propuesto por Ross, Geoffrey Gordon y Bagnell en 2011, redujo ese crecimiento a lineal: la política aprendida actúa, el experto etiqueta los estados que visita con las acciones correctas y la política se vuelve a entrenar con todas las etiquetas recopiladas hasta el momento.
Este ejemplo clona un controlador ajustado a mano para la tarea CartPole de Gymnasium, que debe mantener un poste en equilibrio sobre un carro móvil durante un máximo de 500 pasos, y luego aplica dos rondas de DAgger:
import gymnasium as gym
import numpy as np
from sklearn.tree import DecisionTreeClassifier
env = gym.make("CartPole-v1")
expert = lambda obs: int(obs[2] + 0.5 * obs[3] > 0) # push toward the side the pole leans and falls
def rollout(policy, seed):
"""Run one episode with a policy and return the states it visited."""
obs, _ = env.reset(seed=seed)
states, done = [], False
while not done:
states.append(obs)
obs, _, terminated, truncated, _ = env.step(policy(obs))
done = terminated or truncated
return states
states = rollout(expert, seed=0) # one expert demonstration
for i in range(3):
# Behavioral cloning: fit a classifier from states to the expert's actions
clone = DecisionTreeClassifier(max_depth=5, random_state=0).fit(states, [expert(s) for s in states])
policy = lambda obs: int(clone.predict(obs[None])[0])
steps = np.mean([len(rollout(policy, seed)) for seed in range(100, 110)])
print(f"Round {i}: {len(states)} labeled states, clone balances for {steps:.0f} steps")
states += rollout(policy, seed=i + 1) # DAgger: the expert labels the states the clone visitsLa ronda 0 es clonación del comportamiento pura. Entrenada con una demostración de 500 pasos de un experto que mantiene el poste en equilibrio durante los 500 pasos, la copia consigue mantenerlo levantado una media de 30 pasos en episodios nuevos. La ronda 1 añade los 23 estados que visitó la copia de la ronda 0 en otro episodio, etiquetados por el experto, y eleva la media a 135 pasos; tras añadir otros 70 estados en la ronda 2, la copia mantiene el equilibrio durante los 500 pasos completos.
Otras soluciones modifican las propias demostraciones. El sistema de conducción de NVIDIA añadió imágenes de cámaras izquierda y derecha, así como desplazamientos y rotaciones sintéticos de la vista de cámara, cada uno etiquetado con la dirección necesaria para devolver el coche al centro del carril en menos de dos segundos; se trata de una forma de aumento de datos que enseña a recuperar el control. DART introduce ruido en las acciones del demostrador durante la grabación, de modo que los datos incluyen las correcciones del experto ante pequeñas desviaciones. La segmentación de acciones predice varias acciones futuras a la vez, lo que acorta el horizonte efectivo en el que se acumulan los errores; la política ACT aprendió tareas bimanuales de precisión, como encajar una batería, con un éxito del 80 % al 90 % a partir de 10 minutos de demostraciones.
Demostraciones multimodales y políticas modernas#
Cuando los demostradores resuelven la misma situación de formas distintas, como pasar un obstáculo por la izquierda o por la derecha, una política de regresión predice su promedio, que puede corresponder a una acción que nadie realizó. RT-1 de Google, un transformer entrenado mediante clonación del comportamiento con 130 000 demostraciones robóticas, puede representar varios modos porque discretiza cada dimensión de acción en 256 intervalos y los predice como tokens. Las políticas de difusión modelan la distribución completa de las acciones eliminando ruido aleatorio y se han convertido en una opción habitual para la manipulación en IA incorporada.
Los modelos de lenguaje se entrenan del mismo modo. El ajuste fino supervisado de un modelo de lenguaje grande (LLM) con respuestas escritas por personas, núcleo del ajuste de instrucciones, es clonación del comportamiento aplicada al texto, y el artículo de OpenAI sobre WebGPT utilizó exactamente ese nombre para la etapa anterior al aprendizaje por refuerzo a partir de la retroalimentación humana (RLHF).
Clonación del comportamiento y términos relacionados#
- Aprendizaje por refuerzo: Aprende a partir de una señal de recompensa mediante ensayo y error, y puede superar al demostrador, algo que la clonación del comportamiento no puede hacer. Los métodos de RL offline, como TD3+BC, añaden un término de clonación del comportamiento para mantener la política aprendida cerca de los datos registrados.
- Aprendizaje por refuerzo inverso: Deduce la función de recompensa que explica las demostraciones y luego la optimiza. El aprendizaje por imitación generativa adversaria (GAIL) entrena una política hasta que un discriminador no puede distinguir su comportamiento del del experto.
- Destilación de conocimiento: Entrena un modelo estudiante pequeño para que reproduzca las salidas de un modelo profesor más grande. La clonación del comportamiento de una política entrenada, en lugar de la de una persona, se denomina destilación de políticas.










