Aprendizado por Reforço Hierárquico
O que é Aprendizado por Reforço Hierárquico?
Aprendizado por Reforço Hierárquico (Hierarchical Reinforcement Learning, HRL) é uma família de métodos de aprendizado por reforço (reinforcement learning) que aprendem e operam políticas em múltiplos níveis de abstração. Em vez de escolher uma ação primitiva (primitive action) a cada passo de tempo (por exemplo, “mover para a esquerda” ou “aplicar torque”), um agente de aprendizado por reforço hierárquico pode:
- escolher um comportamento de alto nível (por exemplo, “ir para a cozinha”),
- que invoca um controlador de baixo nível que executa muitas ações primitivas até que uma subtarefa seja concluída.
Essa ideia — frequentemente chamada de abstração temporal (temporal abstraction) — ajuda o aprendizado por reforço a escalar para tarefas de horizonte longo (long-horizon tasks), nas quais as recompensas podem ser atrasadas e a exploração ingênua é ineficaz.
O aprendizado por reforço hierárquico é especialmente útil quando as tarefas têm estrutura natural, como:
- robótica (alcançar → agarrar → levantar → posicionar),
- navegação (escolher ponto de passagem → navegar localmente),
- jogos (macroestratégia → táticas → movimentos),
- agentes de diálogo (escolher intenção → gerar enunciado).
O aprendizado por reforço hierárquico se apoia nos fundamentos de Aprendizado por Reforço (reinforcement learning) e pode ser combinado tanto com métodos baseados em valor (value-based methods), como Aprendizado Q (Q-learning), quanto com métodos de gradiente de política/ator-crítico (policy-gradient/actor-critic), como Gradientes de Política (Policy Gradients) e Métodos Ator-Crítico (Actor-Critic Methods) (incluindo algoritmos práticos como Otimização Proximal de Política (Proximal Policy Optimization, PPO)).
Por que a hierarquia ajuda: horizontes longos e recompensas esparsas
Um agente de aprendizado por reforço “plano” precisa resolver dois problemas simultaneamente:
- O que fazer (planejamento de alto nível): qual subobjetivo perseguir em seguida?
- Como fazer (controle de baixo nível): como executar os comandos motores necessários?
Quando as recompensas são esparsas (“+1 apenas quando toda a missão termina”), um agente plano pode precisar de um número enorme de tentativas para chegar ao sucesso por acaso. O aprendizado por reforço hierárquico pode reduzir o horizonte efetivo ao permitir que o agente raciocine em blocos maiores:
- A política de alto nível toma uma decisão a cada k passos (ou nas fronteiras de subtarefas).
- A política de baixo nível foca em controle de curto horizonte, com feedback mais denso.
Na prática, isso frequentemente resulta em:
- melhor exploração (subobjetivos/habilidades produzem comportamentos significativos cedo),
- melhor atribuição de crédito (recompensas podem ser atribuídas a subdecisões),
- reutilização e transferência (habilidades podem ser reutilizadas entre tarefas).
Formalismo central: ações temporalmente estendidas e SMDPs
O aprendizado por reforço padrão costuma ser formalizado como um Processo de Decisão de Markov (Markov Decision Process, MDP), no qual, a cada passo de tempo, o agente escolhe uma ação. O aprendizado por reforço hierárquico introduz ações que podem durar múltiplos passos, levando naturalmente a um Processo de Decisão Semi-Markoviano (Semi-Markov Decision Process, SMDP).
Em um SMDP:
- escolher uma ação abstrata (como uma “habilidade”) leva a uma sequência de ações primitivas,
- o ambiente transiciona ao longo de múltiplos passos de tempo,
- o fator de desconto (discounting) e os cálculos de retorno (return) consideram duração variável.
Essa visão de SMDP é central para o arcabouço mais comum de aprendizado por reforço hierárquico: o arcabouço de opções (options framework).
Opções: o arcabouço canônico de aprendizado por reforço hierárquico
Uma opção (option) é um curso de ação temporalmente estendido. Formalmente, uma opção (o) é um trio:
- Conjunto de iniciação (initiation set) (I_o): estados em que essa opção pode ser iniciada
- Política intra-opção (intra-option policy) (\pi_o(a \mid s)): como agir enquanto a opção está ativa
- Condição de terminação (termination condition) (\beta_o(s)): probabilidade de parar no estado (s)
Quando o agente seleciona a opção (o) no estado (s_t), ele segue (\pi_o) até a opção terminar, produzindo um segmento de trajetória de comprimento (k). A política de alto nível “sobre opções” escolhe a próxima opção.
Exemplo: opções para navegação em escritório
Um robô móvel em um escritório poderia ter opções como:
GoToDoorway(room_A)GoToElevatorAlignWithDockingStation
Cada opção é, por si só, uma política que roda por múltiplos segundos e termina quando uma condição é atendida (por exemplo, estar a menos de 0,2 m de um waypoint).
Aprendizado sobre opções: aprendizado Q em SMDP (SMDP Q-learning) (esboço)
Se você tiver um conjunto discreto de opções, pode aprender uma função de valor (value function) sobre elas usando uma extensão de SMDP do aprendizado Q. A principal diferença é que a atualização de backup (backup) considera a duração (k):
[ Q(s,o) \leftarrow Q(s,o) + \alpha \left(R + \gamma^k \max_{o'} Q(s',o') - Q(s,o)\right) ]
Onde (R) é a recompensa cumulativa coletada durante a execução da opção.
# Pseudocode: SMDP Q-learning over options
initialize Q(s, o)
for each episode:
s = env.reset()
while not done:
o = epsilon_greedy(Q[s, :]) # choose an option
R, k = 0.0, 0
while True:
a = pi_o(s) # intra-option policy
s_next, r, done = env.step(a)
R += (gamma ** k) * r
k += 1
s = s_next
if done or terminate_o(s): # option termination beta_o(s)
break
Q[s_prev, o] += alpha * (R + (gamma ** k) * max_o(Q[s, o]) - Q[s_prev, o])
Essa abordagem funciona bem quando o conjunto de opções é projetado manualmente ou pré-treinado. O aprendizado por reforço hierárquico profundo (deep HRL) moderno frequentemente aprende tanto o seletor de alto nível quanto as políticas intra-opção de forma conjunta.
Aprendizado intra-opção e Crítico de Opções
Um desafio com opções é: quem projeta as opções? A família de métodos Crítico de Opções (Option-Critic) aborda isso aprendendo:
- a política sobre opções (\pi(o \mid s)),
- as políticas intra-opção (\pi_o(a \mid s)),
- as funções de terminação (\beta_o(s)),
usando aprendizado baseado em gradientes (frequentemente implementado com Redes Neurais (neural networks) profundas). O Crítico de Opções é atrativo porque fornece um objetivo de ponta a ponta, mas, na prática, pode sofrer com colapso de opções (option collapse) (múltiplas opções tornam-se idênticas) e instabilidade (ver armadilhas abaixo).
Habilidades, subobjetivos e hierarquias condicionadas por objetivo
Em muitos sistemas modernos de aprendizado por reforço hierárquico, uma “habilidade” é implementada como uma política condicionada por objetivo (goal-conditioned policy):
- Uma política de alto nível propõe um objetivo (g) (frequentemente um vetor no espaço de estados ou no espaço latente (latent space)).
- Uma política de baixo nível (\pi(a \mid s, g)) tenta alcançar/atingir (g) pelos próximos (k) passos.
Essa estrutura é comum em controle contínuo (continuous control) e robótica porque objetivos podem ser contínuos (posições, poses, alvos em espaços de características).
Exemplo: manipulação robótica
Decisões de alto nível (a cada ~1–2 segundos):
- “mover o efetuador final para perto da alça da caneca”
- “fechar a garra”
- “levantar 10 cm para cima”
- “mover acima da pia”
Controlador de baixo nível (a cada ~20 ms):
- torques motores / comandos de velocidade de juntas condicionados ao subobjetivo atual.
Aprendizado por reforço hierárquico fora de política no estilo HIRO (conceitualmente)
Um padrão prático bem conhecido é:
- Gerente (manager) emite o subobjetivo (g_t) a cada (k) passos.
- Trabalhador (worker) executa ações condicionadas em (g_t).
- O gerente é treinado usando a recompensa do ambiente; o trabalhador frequentemente usa uma recompensa intrínseca (intrinsic reward), como “eu me movi em direção ao subobjetivo?”
Um detalhe importante de implementação é a correção fora de política (off-policy correction): como o trabalhador muda durante o treinamento, transições antigas reproduzidas (replayed) podem tornar o aprendizado do gerente inconsistente, a menos que sejam corrigidas.
Aprendizado por Reforço Feudal (arquiteturas gerente–trabalhador)
Aprendizado por Reforço Feudal (Feudal RL) (inspirado em trabalhos iniciais de Dayan & Hinton) enquadra a hierarquia como um gerente que define objetivos e um trabalhador que os executa.
- O gerente opera em uma escala de tempo mais lenta e emite uma diretriz (objetivo).
- O trabalhador opera em uma escala de tempo mais rápida e tenta satisfazer a diretriz.
Em variantes profundas (frequentemente chamadas de “redes feudais (feudal networks)”), o gerente pode definir objetivos em um espaço latente aprendido, e o trabalhador é treinado para alinhar seu comportamento com esse objetivo.
Conceitualmente:
# Pseudocode: Feudal-style manager/worker
for each episode:
s = env.reset()
g = manager(s) # initial goal
for t in range(T):
if t % k == 0:
g = manager(s) # update goal every k steps
a = worker(s, g)
s_next, r, done = env.step(a)
# worker update: intrinsic reward encourages progress toward g
r_int = intrinsic_progress(s, s_next, g)
worker.update(s, g, a, r_int, s_next)
# manager update: uses extrinsic environment reward (often delayed)
manager.update(s, g, r, s_next)
s = s_next
if done:
break
Abordagens feudais podem ser muito eficazes, mas exigem projeto cuidadoso de:
- representação do objetivo (g),
- modelagem de recompensa intrínseca (intrinsic reward shaping) para o trabalhador,
- agendas de atualização (separação de escalas de tempo).
Descoberta não supervisionada de habilidades (aprendendo uma biblioteca de habilidades)
Outro grande ramo do aprendizado por reforço hierárquico foca em aprender um conjunto diverso de habilidades reutilizáveis sem recompensas externas. A ideia é pré-treinar habilidades que produzam comportamentos distintos e, em seguida, reutilizá-las em tarefas posteriores (downstream tasks).
Abordagens típicas maximizam diversidade/cobertura usando objetivos como:
- maximizar a informação mútua (mutual information) entre um ID latente de habilidade (latent skill ID) (z) e os estados resultantes (por exemplo, ideias no estilo DIAYN),
- maximizar a previsibilidade das mudanças de estado dada uma habilidade (objetivos sensíveis à dinâmica (dynamics-aware objectives)).
Após o pré-treinamento:
- a política de alto nível escolhe a habilidade (z),
- o nível baixo executa (\pi(a \mid s, z)).
Isso pode melhorar drasticamente a exploração em tarefas difíceis com recompensas esparsas, mas há o risco de que as habilidades descobertas não estejam alinhadas com o que as tarefas posteriores precisam (ver armadilhas).
Benefícios do aprendizado por reforço hierárquico
1) Melhor exploração via comportamento temporalmente estendido e significativo
Ações primitivas aleatórias frequentemente não fazem nada útil em ambientes complexos. Habilidades/opções podem criar exploração coerente (andar, virar, alcançar), tornando mais provável encontrar recompensa.
2) Redução do horizonte efetivo e melhora da atribuição de crédito
Decisões de alto nível acontecem com menor frequência, encurtando a cadeia de decisões para a política de alto nível e facilitando aprender a partir de recompensas atrasadas.
3) Reuso e transferência
Uma habilidade como “abrir porta” pode ser reutilizada em:
- diferentes salas,
- diferentes tarefas (entregar pacote, missão de resgate),
- até mesmo diferentes mapas (com adaptação).
4) Modularidade e interpretabilidade (às vezes)
Opções bem estruturadas (especialmente quando projetadas manualmente ou restringidas) podem ser mais fáceis de inspecionar do que uma única política monolítica.
Principais armadilhas e modos de falha
O aprendizado por reforço hierárquico pode ser poderoso, mas introduz novos problemas de aprendizado além do aprendizado por reforço plano.
Atribuição de crédito entre níveis
Se a recompensa da tarefa chega apenas após muitas ações de baixo nível, qual componente é responsável?
- A política de alto nível precisa receber crédito/culpa por escolher um subobjetivo/opção.
- A política de baixo nível precisa receber crédito/culpa por executá-lo bem.
Mitigações comuns:
- recompensas intrínsecas para progresso no baixo nível,
- separação cuidadosa de escalas de tempo,
- uso de baselines de vantagem/valor (advantage/value baselines) (como em Métodos Ator-Crítico) em cada nível.
Não estacionariedade e instabilidade
O “ambiente” da política de alto nível inclui a política de baixo nível. Se a política de baixo nível muda durante o treinamento, o alto nível enxerga uma dinâmica de transição não estacionária, o que pode desestabilizar o aprendizado.
Mitigações incluem:
- atualizações mais lentas para o baixo nível (ou pré-treiná-lo),
- uso de grandes buffers de replay (replay buffers) com técnicas de correção para treinamento fora de política,
- congelar um nível periodicamente,
- atualizações conservadoras (conservative updates) (por exemplo, restrições no estilo PPO ao usar Otimização Proximal de Política (PPO)).
Exploração em múltiplos níveis
Mesmo que o baixo nível explore bem, o alto nível pode não explorar. Por outro lado, um bom plano de alto nível não ajuda se o baixo nível não conseguir executar.
Mitigações:
- regularização de entropia (entropy regularization) em ambos os níveis,
- bibliotecas de habilidades diversas (descoberta não supervisionada de habilidades),
- ruído explícito de exploração de subobjetivos.
Colapso de opções e terminações degeneradas
Ao aprender opções de ponta a ponta, patologias comuns incluem:
- múltiplas opções tornarem-se idênticas (sem especialização),
- terminações dispararem imediatamente (opções viram ações primitivas),
- terminações nunca dispararem (opções viram comportamentos “sempre ligados”).
Mitigações:
- regularização que incentive diversidade entre opções,
- restrições de duração mínima/máxima das opções,
- penalidades de terminação ou priores (priors).
Incompatibilidade na representação de subobjetivos
Se objetivos são definidos no espaço de estados bruto (por exemplo, espaço de pixels), podem ser difíceis de o baixo nível interpretar. Se objetivos são definidos em um espaço latente aprendido, eles podem se tornar ininterpretáveis ou derivar (drift).
Mitigações:
- usar espaços de objetivo estruturados (posições, características centradas em objetos),
- aprendizado de representação com objetivos de consistência,
- reetiquetagem de objetivos (goal relabeling) / métodos de hindsight (hindsight methods) (comumente combinados com aprendizado condicionado por objetivo).
Aplicações práticas
Robótica (manipulação e locomoção)
O aprendizado por reforço hierárquico é amplamente usado em robótica porque:
- o controle é contínuo e de alta frequência,
- tarefas são naturalmente composicionais (alcançar, agarrar, mover, inserir),
- segurança e eficiência amostral importam (reutilizar habilidades ajuda).
Uma configuração comum:
- controlador de baixo nível treinado em simulação para estabilização e manobras básicas,
- política de alto nível treinada para decisões em nível de tarefa, frequentemente com randomização de domínio (domain randomization).
Navegação e IA incorporada
Em navegação 3D, uma hierarquia típica é:
- alto nível: escolher waypoint ou subobjetivo semântico (“ir para a cozinha”),
- baixo nível: desvio de obstáculos e movimento local.
Políticas hierárquicas também são usadas com componentes de memória e mapeamento, às vezes combinando aprendizado por reforço hierárquico com planejamento (planning).
Jogos e estratégia de horizonte longo
Em domínios do tipo estratégia em tempo real (RTS):
- alto nível: economia e objetivos estratégicos,
- nível intermediário: movimento de esquadrões e posicionamento tático,
- baixo nível: microações de unidades.
O aprendizado por reforço hierárquico pode reduzir a complexidade do espaço de ações e permitir comportamento mais estratégico do que o controle plano.
Agentes de linguagem e uso de ferramentas
Para agentes que interagem com ferramentas (busca, execução de código, APIs), o aprendizado por reforço hierárquico se mapeia naturalmente para:
- alto nível: selecionar ferramenta / decidir a próxima intenção,
- baixo nível: executar sequências específicas da ferramenta.
Padrões de implementação e escolhas de projeto
Quantos níveis?
A maioria dos sistemas práticos usa dois níveis (alto/baixo). Mais níveis podem ajudar, mas o treinamento fica mais difícil devido à não estacionariedade composta e à complexidade de atribuição de crédito.
Hierarquia fixa vs aprendida
- Hierarquia fixa (habilidades/opções projetadas manualmente): mais fácil de treinar e depurar; menos flexível.
- Hierarquia aprendida (Crítico de Opções, condicionada por objetivo): mais flexível; mais difícil de estabilizar.
Escolhendo a escala de tempo do alto nível
Se o alto nível muda com frequência demais, ele se comporta como uma política plana. Se muda devagar demais, não consegue se adaptar.
Uma heurística comum é definir o período de alto nível (k) de modo que o baixo nível consiga, de forma confiável, fazer progresso mensurável em direção a um subobjetivo dentro de (k) passos.
Design de recompensas: intrínseca vs extrínseca
Uma receita padrão e eficaz:
- alto nível recebe recompensa extrínseca do ambiente,
- baixo nível recebe uma recompensa intrínseca ligada à conclusão/progresso do subobjetivo.
Mas cuidado: se a recompensa intrínseca estiver desalinhada, o baixo nível pode explorá-la (por exemplo, oscilar para obter sinais de “progresso”) sem ajudar a tarefa.
Como o aprendizado por reforço hierárquico se relaciona com outros métodos de aprendizado por reforço neste wiki
- O aprendizado por reforço hierárquico pode ser combinado com aprendizado baseado em valor, como Aprendizado Q, quando opções/habilidades são discretas e a formulação em SMDP é usada.
- Muitos agentes modernos de aprendizado por reforço hierárquico usam treinamento ator-crítico profundo (Métodos Ator-Crítico) em um ou ambos os níveis.
- Para treinamento on-policy (on-policy) de políticas hierárquicas, atualizações no estilo PPO (Otimização Proximal de Política (PPO)) são comuns devido à sua estabilidade relativa.
Quando usar aprendizado por reforço hierárquico (e quando não usar)
O aprendizado por reforço hierárquico é uma escolha forte quando:
- tarefas têm horizontes longos e recompensas esparsas,
- subtarefas são reutilizáveis entre tarefas,
- há estrutura composicional natural (navegação, manipulação, procedimentos em múltiplas etapas).
O aprendizado por reforço hierárquico pode ser desnecessário ou contraproducente quando:
- tarefas têm horizonte curto e recompensas densas (aprendizado por reforço plano é mais simples),
- você não consegue definir subobjetivos significativos ou descobrir habilidades úteis,
- a instabilidade de treinamento e a complexidade de engenharia superam os benefícios.
Resumo
O Aprendizado por Reforço Hierárquico introduz tomada de decisão em múltiplos níveis — seleção de alto nível de opções/habilidades/subobjetivos e execução em baixo nível — para lidar com os limites de escalabilidade do aprendizado por reforço plano em problemas de horizonte longo. Arcabouços centrais incluem:
- Opções (SMDPs, funções de terminação, políticas intra-opção),
- Arquiteturas feudais/gerente–trabalhador (definição e execução de objetivos),
- Aprendizado por reforço hierárquico de subobjetivos condicionado por objetivo (gerente propõe objetivos; trabalhador segue),
- Descoberta não supervisionada de habilidades (pré-treinar uma biblioteca de habilidades reutilizável).
As principais vantagens do aprendizado por reforço hierárquico são exploração aprimorada, redução do horizonte efetivo e transferência via comportamentos reutilizáveis — mas ele traz armadilhas em atribuição de crédito, exploração em múltiplos níveis e estabilidade de treinamento devido à não estacionariedade e degenerescência.
Na prática, sistemas bem-sucedidos de aprendizado por reforço hierárquico tendem a combinar bom projeto de hierarquia (ou descoberta robusta de habilidades) com escolhas cuidadosas de treinamento emprestadas do aprendizado por reforço profundo moderno (baselines ator-crítico, atualizações conservadoras, replay/correções e recompensas intrínsecas bem modeladas).