Curso de Aprendizagem por Reforço

Jul 3, 2024

Curso de Aprendizagem por Reforço

Apresentação

  • Nicholas Chernote: Bem-vindo ao curso de Aprendizagem por Reforço.
  • Objetivo: Levar desde o iniciante absoluto até a capacidade de usar a aprendizagem por reforço de maneira prática.

Plano do Curso

  1. Introdução à Aprendizagem por Reforço (RL)

    • Como RL funciona e aprende.
    • Aplicações de RL e limitações.
  2. Configuração do Ambiente

    • Uso da biblioteca Stable Baselines.
  3. Trabalho com Ambientes (Environments)

    • Configuração do ambiente usando OpenAI Gym.
  4. Treinamento de Modelos

    • Configuração e utilização de algoritmos diversos de RL.
    • Avaliação e visualização dos resultados usando TensorBoard.
  5. Chamadas de Retorno (Callbacks) e Arquiteturas Alternativas

    • Uso de callbacks para interromper o treinamento.
    • Experimentação com diferentes algoritmos e arquiteturas.
  6. Projetos Práticos

    • Jogos Atari (Breakout).
    • Condução autônoma (carro de corrida).
    • Construção de ambientes personalizados.

Tópicos Detalhados

Introdução à Aprendizagem por Reforço

  • Definição Básica: RL ensina agentes por tentativa e erro.
  • Exploração vs. Exploração: Trade-off entre explorar novas ações e explorar ações já conhecidas.
  • Conceitos Fundamentais:
    • Agente
    • Ambiente
    • Ação
    • Recompensa
    • Observação
  • Exemplo: Comparação com treinamento de cachorro.
  • Aplicações Práticas:
    • Condução autônoma, trade de valores, busca de arquitetura de redes neurais, robótica, jogos.
  • Limitações e Considerações:
    • Overkill para problemas simples.
    • Suposições Markovianas.
    • Tempo e estabilidade de treinamento.

Configuração do Ambiente

  • Instalação de Dependências
    • pip install stable-baselines3[extra].
  • Criação de Ambientes OpenAI Gym
    • Controles clássicos (p. ex., CartPole).
    • Observação do ambiente e ações disponíveis.
    • Exemplo: emv.reset(), emv.action_space.

Treinamento de Modelos

  • Group Learning Algorithms:
    • Model-free RL: Baseado apenas em valores de estado atuais.
    • Algoritmos usados: PPO, A2C, DQN.
  • Configuração de Algoritmos:
    • Alinhamento com espaços de ação.
    • Métricas de treinamento: comprimento do episódio, recompensa média etc.
  • Aceleração GPU
    • Instalação: PyTorch com suporte CUDA.

Avaliação e Teste

  • Avaliação: Função evaluate_policy para medir desempenho.
  • TensorBoard: Visualização de métricas de treinamento.
  • Desempenho e Melhorias
    • Terminar treinamento mais cedo se desempenho cair.
    • Sintonização de hiperparâmetros.

Chamadas de Retorno e Algoritmos Alternativos

  • Uso de Callbacks
    • Interromper treinamento quando atingir um limite de recompensa.
  • Alternativas de Arquitetura de Rede Neural
    • Mudança para MLP Policy ou CNN Policy.
  • Experimentação com Algoritmos Diferentes
    • Testar DQN, A2C etc.

Projetos Práticos

  1. Breakout (Jogos Atari)

    • Configuração e treinamento usando CNN Policy.
    • Observação da melhoria por treinamento prolongado.
  2. Condução Autônoma

    • Simulação de carro de corrida com ML.
    • Ações contínuas e observação como dados de imagem.
  3. Ambientes Personalizados

    • Criação de ambientes como uma simulação de banho.
    • Integração de diferentes tipos de espaços OpenAI Gym.

Recursos Adicionais

  • Cursos de reforço de David Silva.
  • Livro: "Reinforcement Learning: An Introduction" de Richard Sutton e Andrew Barto.