Behavioral Cloning
A clonagem comportamental treina uma política para imitar demonstrações de especialistas através de aprendizagem supervisionada. Como funciona, por que os erros se acumulam e como o DAgger resolve o problema.
A clonagem comportamental (BC) é a forma mais simples de aprendizado por imitação: um agente aprende a agir treinando uma política, com aprendizado supervisionado convencional, para prever a ação que um especialista realizou em cada situação de uma demonstração gravada. Os dados de treinamento consistem em pares de observação e ação, como quadros de câmera associados ao ângulo de direção de um motorista ou leituras das articulações de um robô associadas aos comandos de um operador remoto, e a política é ajustada com uma função de perda de regressão para ações contínuas ou de classificação para ações discretas. A clonagem comportamental não exige uma função de recompensa nem interação com o ambiente durante o treinamento, o que a torna o ponto de partida habitual para ensinar robôs, veículos e agentes de IA de software com demonstrações humanas.
Origens e exemplos clássicos#
O nome vem de trabalhos realizados por Donald Michie e colegas por volta de 1990 sobre a reconstrução de habilidades humanas de controle. Sua demonstração inicial mais conhecida, "Learning to Fly", de Claude Sammut e colegas em 1992, registrou as ações de controle de pessoas pilotando um simulador de voo e induziu pilotos automáticos baseados em árvores de decisão a partir dos registros. O ALVINN de Dean Pomerleau, na Carnegie Mellon, já havia demonstrado em 1989 que uma pequena rede neural podia dirigir um veículo de teste usando imagens de câmera.
O sistema de condução de ponta a ponta da NVIDIA, de 2016, treinou uma rede neural convolucional com cerca de 72 horas de condução humana para mapear diretamente os pixels brutos de uma câmera frontal em comandos de direção e, em uma viagem típica pelo condado de Monmouth, Nova Jersey, o sistema dirigiu por conta própria cerca de 98% do tempo. No caso de ações discretas, a clonagem comportamental é classificação de imagens: um modelo de classificação Ultralytics YOLO26 treinado com quadros da câmera organizados em uma pasta para cada ação realizada pelo motorista, como virar à esquerda, seguir em frente e virar à direita, retorna a ação clonada como classe top-1.
O problema dos erros cumulativos#
Durante o treinamento, a política vê apenas os estados visitados pelo especialista. Na implantação, ela age em malha fechada, portanto cada pequeno erro a leva a um estado ligeiramente diferente de tudo o que aparece nas demonstrações, onde é mais provável que erre de novo, e os erros se acumulam ao longo da trajetória. Essa incompatibilidade entre os estados de treinamento e implantação é uma forma de deslocamento de covariáveis. Em 2010, Stéphane Ross e Drew Bagnell mostraram que o custo esperado de uma política clonada pode crescer com o quadrado do horizonte da tarefa, mesmo quando o erro por etapa é pequeno. O DAgger (Dataset Aggregation), de Ross, Geoffrey Gordon e Bagnell, em 2011, reduziu esse crescimento para linear: a política aprendida age, o especialista rotula com as ações corretas os estados que ela visita e a política é retreinada com todos os rótulos coletados até então.
Este exemplo clona um controlador ajustado manualmente para a tarefa Gymnasium CartPole, que precisa manter um poste equilibrado sobre um carrinho móvel por até 500 etapas, e depois aplica duas rodadas 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 visitsA rodada 0 é clonagem comportamental simples. Treinado com uma demonstração de 500 etapas feita por um especialista que mantém o poste equilibrado durante as 500 etapas, o clone mantém o poste de pé por uma média de 30 etapas em novos episódios. A rodada 1 adiciona os 23 estados visitados pelo clone da rodada 0 em mais um episódio, rotulados pelo especialista, e eleva a média para 135 etapas; depois de mais 70 estados desse tipo na rodada 2, o clone mantém o equilíbrio pelas 500 etapas completas.
Outras soluções transformam as próprias demonstrações. O sistema de condução da NVIDIA adicionou imagens de câmeras à esquerda e à direita, além de deslocamentos e rotações sintéticos da perspectiva da câmera; cada imagem era rotulada com a direção necessária para levar o carro de volta ao centro da faixa em até dois segundos, uma forma de aumento de dados que ensina a recuperar o controle. O DART injeta ruído nas ações do demonstrador durante a gravação, para que os dados incluam as correções do especialista a pequenos desvios. O agrupamento de ações prevê várias ações futuras de uma só vez, reduzindo o horizonte efetivo em que os erros se acumulam; a política ACT aprendeu tarefas bimanuais precisas, como encaixar uma bateria, com uma taxa de sucesso de 80% a 90% usando 10 minutos de demonstrações.
Demonstrações multimodais e políticas modernas#
Quando os demonstradores resolvem a mesma situação de formas diferentes, como passar por um obstáculo pela esquerda ou pela direita, uma política de regressão prevê a média das ações, que pode não corresponder a nenhuma ação realizada. O RT-1 da Google, um Transformer treinado por clonagem comportamental com 130.000 demonstrações robóticas, pode representar vários modos porque discretiza cada dimensão da ação em 256 intervalos e os prevê como tokens. As políticas de difusão modelam a distribuição completa das ações removendo ruído aleatório e tornaram-se uma opção comum para a manipulação em IA incorporada.
Os modelos de linguagem são treinados da mesma forma. O ajuste fino supervisionado de um modelo de linguagem grande (LLM) com respostas escritas por humanos, núcleo do ajuste por instruções, é clonagem comportamental aplicada a texto, e o artigo WebGPT da OpenAI usou exatamente esse nome para a etapa anterior ao aprendizado por reforço com feedback humano (RLHF).
Clonagem comportamental e termos relacionados#
- Aprendizado por reforço: aprende com um sinal de recompensa por tentativa e erro e pode superar o demonstrador, algo que a clonagem comportamental não consegue fazer. Métodos de RL offline, como TD3+BC, adicionam um termo de clonagem comportamental para manter a política aprendida próxima dos dados registrados.
- Aprendizado por reforço inverso: infere a função de recompensa que explica as demonstrações e depois a otimiza. O aprendizado por imitação adversarial generativa (GAIL) treina uma política até que um discriminador não consiga distinguir o comportamento dela do comportamento do especialista.
- Destilação de conhecimento: treina um modelo aluno pequeno para reproduzir as saídas de um modelo professor maior. A clonagem comportamental de uma política treinada, em vez de um ser humano, é chamada destilação de políticas.










