Ultralytics YOLO27: Entre na lista de espera.
Licenciar o YOLO
Voltar ao glossário da Ultralytics

Deep Reinforcement Learning

A aprendizagem por reforço profundo (DRL) usa redes neurais para aprender políticas e valores a partir de entradas brutas, como pixels. Veja DQN, PPO, resultados e limitações.

O aprendizado por reforço profundo (DRL) combina o aprendizado por reforço (RL), em que um agente aprende por tentativa e erro a maximizar a recompensa, com redes neurais profundas, que representam o que o agente aprende. O aprendizado por reforço clássico armazena um valor para cada estado em uma tabela, algo impossível quando um estado é uma imagem de câmera ou os ângulos articulares contínuos de um robô. Em vez disso, uma rede neural mapeia observações brutas de alta dimensionalidade, como pixels, varreduras lidar ou texto, para valores ou probabilidades de ações, e generaliza para estados que nunca viu. O DQN da DeepMind popularizou essa abordagem em 2015 ao aprender a jogar 49 jogos de Atari 2600 usando apenas os pixels da tela e a pontuação do jogo, com uma única arquitetura de rede e um único conjunto de hiperparâmetros, alcançando um nível comparável ao de um testador profissional de jogos.

Como funciona o aprendizado por reforço profundo#

O agente continua seguindo o ciclo do aprendizado por reforço de um processo de decisão de Markov: observa um estado, age, recebe uma recompensa e atualiza seus parâmetros. O que muda é que agora uma rede com milhões de parâmetros representa um ou mais dos seguintes elementos:

  • Função de valor: A rede prevê o retorno esperado de cada ação, e o agente escolhe a de maior valor. A rede do DQN recebia os quatro quadros mais recentes do jogo, reduzidos a 84×84 pixels, para conseguir perceber o movimento.
  • Política: A rede produz uma probabilidade para cada ação ou a média e a dispersão de uma ação contínua, como o ângulo de direção. Métodos de gradiente de política ajustam a rede diretamente para favorecer ações que geraram retornos altos.
  • Ator e crítico: Uma rede ator escolhe as ações, enquanto uma rede crítica estima os valores para informar ao ator quanto cada ação foi melhor do que o esperado, reduzindo o ruído nas atualizações.
  • Modelo de mundo: Agentes baseados em modelos, como o Dreamer, treinam uma rede para prever observações e recompensas futuras e, em seguida, aprendem uma política dentro do simulador aprendido.

Treinar uma rede com dados que o próprio agente gera é instável, pois os quadros consecutivos têm alta correlação e os alvos mudam conforme a rede se altera. O DQN resolveu esse problema com duas ideias mantidas por algoritmos posteriores: um buffer de repetição de experiências, que treina com minilotes aleatórios de transições anteriores, e uma rede-alvo separada, atualizada apenas periodicamente:

Gradientes de política em código#

Os métodos de gradiente de política dispensam completamente as tabelas de valores: eles amostram ações da rede e, em seguida, aumentam a probabilidade das ações seguidas por um retorno alto. Este exemplo em PyTorch treina uma pequena rede de política com REINFORCE, o algoritmo original de gradiente de política, para equilibrar um poste em um carrinho móvel no ambiente CartPole do Gymnasium:

import gymnasium as gym
import torch
from torch import nn

torch.manual_seed(0)
env = gym.make("CartPole-v1")
policy = nn.Sequential(nn.Linear(4, 64), nn.ReLU(), nn.Linear(64, 2))  # cart and pole state -> logits for left/right
optimizer = torch.optim.Adam(policy.parameters(), lr=0.02)
lengths = []

for episode in range(500):
    obs, _ = env.reset(seed=episode)
    log_probs, rewards, done = [], [], False
    while not done:  # play one episode with the current policy, earning +1 per step the pole stays up
        dist = torch.distributions.Categorical(logits=policy(torch.as_tensor(obs)))
        action = dist.sample()
        obs, reward, terminated, truncated, _ = env.step(action.item())
        log_probs.append(dist.log_prob(action))
        rewards.append(reward)
        done = terminated or truncated
    # REINFORCE: raise the log-probability of actions followed by above-average discounted return
    returns = torch.tensor([sum(0.99**k * r for k, r in enumerate(rewards[t:])) for t in range(len(rewards))])
    loss = -(torch.stack(log_probs) * (returns - returns.mean()) / (returns.std() + 1e-8)).sum()
    optimizer.zero_grad()
    loss.backward()
    optimizer.step()
    lengths.append(len(rewards))

print(f"Average episode length: first 20 = {sum(lengths[:20]) / 20:.0f}, last 20 = {sum(lengths[-20:]) / 20:.0f}")

O código imprime first 20 = 14, last 20 = 500: a rede sem treinamento deixa o poste cair em cerca de 14 etapas e, depois de 500 episódios, mantém o equilíbrio durante o limite máximo de 500 etapas de cada episódio. Com outras sementes aleatórias, o mesmo script pode estagnar ou apresentar uma queda de desempenho durante o treinamento. O PPO (Proximal Policy Optimization) foi projetado para reduzir essa alta variância com críticos e atualizações limitadas. Bibliotecas como o Stable-Baselines3 oferecem implementações testadas de PPO, DQN e SAC (soft actor-critic).

Aplicações notáveis#

  • Jogos: Depois do Atari, agentes de aprendizado por reforço profundo derrotaram campeões mundiais de Go com o AlphaGo e alcançaram o nível de grande mestre em StarCraft II com o AlphaStar, combinando aprendizado com partidas humanas e autotreinamento por aprendizado por reforço.
  • Corrida de drones: O drone Swift da Universidade de Zurique, treinado com aprendizado por reforço profundo em simulação e ajustado com dados de voo reais, venceu várias corridas diretas contra cada um de três pilotos campeões em 2023 e estabeleceu o tempo de corrida mais rápido já registrado.
  • Energia de fusão: A DeepMind e o Swiss Plasma Center da EPFL usaram uma política de aprendizado por reforço profundo para controlar as bobinas magnéticas de um tokamak, moldando o plasma em várias configurações, incluindo dois "gotículas" de plasma separados ao mesmo tempo.
  • Robótica: Robôs com pernas aprendem a andar em terrenos acidentados usando políticas treinadas com milhares de robôs simulados. O atrito e a massa são aleatorizados para que a política resista à transferência para o hardware real.
  • Modelos de linguagem: O ajuste fino por aprendizado por reforço de políticas Transformer com recompensas baseadas em preferências ou verificadas automaticamente produziu os atuais assistentes de conversa e modelos de raciocínio.

A percepção como observação#

A rede neural convolucional do DQN teve de aprender a enxergar apenas por meio da recompensa, a partir de 84×84×4 = 28,224 valores de píxel por passo. Muitos sistemas robóticos e de condução, em vez disso, fornecem à política a saída de um modelo de visão computacional pré-treinado, o que reduz o tamanho da observação e permite que o algoritmo de RL use as amostras para tomar decisões. O Ultralytics YOLO26 no modo de rastreamento transforma cada frame da câmara numa classe, numa caixa e num ID persistente para cada objeto: um estado centrado nos objetos a partir do qual uma política também pode ler o movimento de cada objeto entre frames.

Desafios#

O RL profundo exige muitos dados: o DQN foi treinado com 50 milhões de frames por jogo, o equivalente a cerca de 38 dias de jogo, razão pela qual a maioria das políticas robóticas é treinada em simulação e depois transferida para o hardware. A física simulada nunca corresponde exatamente à realidade, por isso os engenheiros aleatorizam o atrito, as massas, a iluminação e as texturas com aleatorização de domínio e acrescentam dados sintéticos para condições raras. Os resultados também variam conforme as sementes aleatórias, os hiperparâmetros e os detalhes de implementação, um problema de reprodutibilidade descrito em Deep Reinforcement Learning That Matters. Um otimizador robusto também encontra brechas em qualquer recompensa imperfeita, uma falha conhecida como exploração indevida da recompensa, como quando um agente de corridas de barcos aprendeu a andar em círculos sem parar, acumulando pontos em vez de terminar a corrida.

  • Aprendizagem por reforço: O campo mais abrangente. O RL tabular funciona para problemas pequenos, e o RL profundo é RL com redes neurais como aproximadores de funções.
  • Aprendizagem profunda: A aprendizagem profunda convencional é treinada com um conjunto de dados fixo e rotulado. No RL profundo, as próprias ações do agente geram os dados, e o sinal de treino é uma recompensa atrasada, em vez de um rótulo.
  • Aprendizagem por reforço com feedback humano (RLHF): Um método de RL profundo em que um modelo de recompensa aprendido a partir de comparações de preferências humanas substitui uma recompensa definida manualmente; é usado para alinhar modelos de linguagem.
  • Controlo preditivo baseado em modelo: O MPC resolve uma nova otimização sobre um modelo explícito em cada passo de controlo, enquanto uma política de RL profundo treinada escolhe cada ação numa única passagem direta pela rede.

Explore as soluções

Visão computacional no desporto

Visão computacional no desporto

Descubra como o Ultralytics YOLO impulsiona a visão computacional no esporte com rastreamento de jogadores e bolas, análise de desempenho, insights para treinadores e reabilitação de atletas.
Saiba mais
Visão computacional para imagens aéreas

Visão computacional para imagens aéreas

Transforma imagens de drones e aéreas em informações em tempo real para a agricultura, a aquacultura, a conservação e a análise geoespacial com Ultralytics YOLO.
Saiba mais
Visão computacional no setor aeroespacial

Visão computacional no setor aeroespacial

Aplica visão computacional na indústria aeroespacial com Ultralytics YOLO para inspecionar aeronaves, detetar objetos estranhos na pista (FOD), apoiar operações aeroportuárias em terra e detetar defeitos em materiais compósitos.
Saiba mais
Visão computacional na segurança

Visão computacional na segurança

Protege todas as instalações com os modelos Ultralytics YOLO. A IA visual permite monitorizar perímetros, detetar ameaças, reconhecer matrículas e melhorar a segurança no local de trabalho.
Saiba mais
Visão computacional na robótica

Visão computacional na robótica

Potencia máquinas mais inteligentes com os modelos Ultralytics YOLO. A IA visual na robótica permite navegação autónoma, perceção, rastreamento de objetos e controlo em tempo real.
Saiba mais
Visão computacional na logística

Visão computacional na logística

Otimize a logística com os modelos Ultralytics YOLO. A IA de visão permite inspecionar pacotes, fazer triagem, rastrear veículos e monitorar a segurança em tempo real nos armazéns.
Saiba mais
Visão computacional no varejo

Visão computacional no varejo

Reinvente o varejo com os modelos Ultralytics YOLO. A IA de visão permite rastrear o estoque, monitorar prateleiras, gerenciar filas e obter insights mais inteligentes sobre clientes.
Saiba mais
Visão computacional na área da saúde

Visão computacional na área da saúde

Desenvolva soluções de saúde com os modelos Ultralytics YOLO. A IA de visão na área da saúde permite obter imagens médicas mais rapidamente, diagnósticos mais inteligentes e monitoramento de pacientes.
Saiba mais
Visão computacional na manufatura

Visão computacional na manufatura

Otimize a manufatura com modelos Ultralytics YOLO. A IA visual impulsiona o controle de qualidade, a detecção de defeitos, a conformidade com o uso de EPI e a automação da linha de montagem.
Saiba mais
Visão computacional no setor automotivo

Visão computacional no setor automotivo

Aplique visão computacional no setor automotivo com modelos Ultralytics YOLO. A IA visual aumenta a segurança viária, aprimora a assistência ao condutor e viabiliza a automação de veículos para estradas mais inteligentes.
Saiba mais
Visão computacional na agricultura

Visão computacional na agricultura

Leve a IA de visão à agricultura inteligente com os modelos Ultralytics YOLO. Aprimore o monitoramento de plantações, o rastreamento de animais e a agricultura de precisão para obter safras maiores e mais inteligentes.
Saiba mais

Vamos construir juntos o futuro da IA!

Comece sua jornada rumo ao futuro do aprendizado de máquina