carolsmarostica /
Machine-Learning
Repositório criado para salvar os trabalhos e projetos da matéria de Aprendizado de Máquina. As atividades serão/foram desenvolvidas em Python, com o auxílio do Jupyter Notebook.
27/100 healthLoading repository data…
pablo-sampaio / repository
Repositório criado com propósitos didáticos, contendo códigos de exemplo de Reinforcement Learning (RL) em Python com explicações em português.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Repositório criado com propósitos didáticos, contendo códigos de exemplo de Reinforcement Learning (RL) em Python com explicações em português.
Abaixo, damos uma explicação do conteúdo das pastas, que estão organizadas como se fossem capítulos.
Aqui, vocês encontram códigos que implementam versões do "Multi-armed Bandit Problem" de maneira parecida com os ambientes "gym" e também implementações de alguns algoritmos.
Ambientes:
SimpleMultiarmedBandit - recompensas têm valor 0 ou 1, com certa probabilidade distinta por açãoGaussianMultiarmedBandit - recompensas têm valores contínuos quaisquer seguindo uma distribuição Normal (Gaussiana), com média distinta por açãoSoluções:
Nesta pasta, vocês encontram códigos que mostram como executar alguns ambientes gymnasium e como tentar resolver manualmente um deles.
Veja também como criar wrappers de ambientes.
Alguns códigos Python e notebooks Jupyter explicando MDPs e ilustrando conceitos sobre eles usando o gymnasium, onde
alguns ambientes funcionam precisamente como um MDP.
Ilustramos esses conceitos básicos:
Com base nisso, introduzimos os conceitos de funções de valor ($V$ e $Q$) associadas a uma política.
Mostramos Algoritmos Monte Carlo (para previsão) para estimar V e Q. Ele são a base para os próximos algoritmos.
Implementações de algoritmos de aprendizagem por reforço que são baseados em estimativas da função $Q$ (valor estado-ação) representadas na forma de uma tabela (array bidimensional ou similar) que costuma ser chamada Q-Table.
Algoritmo apresentado e implementado:
Aqui tem um notebook explicando as equações de Bellman, usadas nos algoritmos de TD-Learning. Aqui são dadas vários implementações de algoritmos TD-Learning. Todos fazem atualizações (aprendem) a cada passo e são implementados com Q-Tables, como os anteriores.
Algoritmos implementados:
Vemos o algoritmo SARSA de n passos, que atualiza a Q-Table com base nos dados coletadas nos últimos $n$ passos, onde este valor é um parâmetro adicional.
Taambém vemos técnicas que auxiliam nos algoritmos anteriores (e em alguns algoritmos futuros):
Nesta parte do curso, vemos algoritmos com modelo. Estes algoritmos usam alguma informação sobre o funcionamento (a dinâmica) do ambiente.
Em especial, apresentamos o Dyna-Q, que é uma extensão simples do Q-Learning que
Aqui, veremos o DQN, sucessor do Q-Learning que usa uma rede neural para substituir a Q-Table.
Em especial, esse algoritmo pode ser aplicado naturalmente em ambientes com estados contínuos e até em jogos de Atari (ou outros ambientes com observações dadas na forma de imagens).
Nesta parte, vemos métodos que aprendem uma política de forma explícita - métodos baseados em política. Em especial, vamos representar a política com alguma rede neural e vamos focar na família chamada policy gradient.
Estes métodos usam funções de custo (loss function) específicas para RL. Todos os algoritmos vistos aqui são técnicas de Monte Carlo, que rodam episódios inteiros antes de atualizar.
Algoritmos:
Aqui, vemos os métodos policy gradient combinados com TD-Learning, que são os métodos chamados actor-critic.
Algoritmos (nomenclatura minha):
Neste ponto do curso, vamos ver algumas bibliotecas que oferecem algoritmos do estado da arte.
Neste capítulo, vamos focar em tarefas continuadas, ou seja, tarefas que não têm um estado terminal. Vamos ver, em especial, os MDPs de recompensa média, que são uma formulação alternativa do MDP (Markov Decision Process) específica para esse tipo de tarefa.
Nos MDPs de recompensa média, o objetivo é achar a política que maximize a recompensa média (por passo). Existem algoritmos específicos propostos com base nesta formulação.
Aqui, nós explicamos e implementamos, o algoritmo Differential Q-Learning, que é uma adaptação do Q-Learning para esta nova formulação.
Aqui, mostramos outro algoritmo baseado em política (mas que não é da família policy gradient). Trata-se do algoritmo Cross-Entropy de Lapan, encontrado no livro "Deep Reinforcement Learning Hands-On" (Maxim Lapan). Ele aproxima o problema de controle da aprendizagem por reforço de um problema de classificação da aprendizagem supervisionada!
Também mostramos um exemplo de uso de a biblioteca ray rllib, que oferece uma grande coleção de algoritmos de Aprendizagem por Reforço.
Este projeto, no geral, é fruto do meu esforço de concentrar algoritmos com simplicidade de implementação, em uma ordem adequada para aprender progressivamente o assunto.
Porém, nem todo o código foi desenvolvido exclusivamente por mim. Baseei-me em diversas fontes, incluindo livros, cursos online, artigos da web e exemplos fornecidos por bibliotecas (como o stable-baselines). Os códigos aproveitados de outras fontes possuem comentários específicos indicando sua origem (ou inspiração).
Pretendo listar aqui todas as referências específicas para os repositórios utilizados.
É importante observar que este projeto está disponível gratuitamente, sem custos. Se houver alguma preocupação com o uso de segmentos de código específicos, sinta-se à vontade para entrar em contato, e eu tratarei da questão prontamente.
This project, overall, is the result of my effort to concentrate algorithms with simplicity of implementation in a suitable order to progressively learn the subject.
However, not all the code was developed exclusively by me. I relied on various sources, including books, online courses, web articles, and examples provided by libraries (such as stable-baselines). Codes borrowed from other sources have specific comments indicating their origin (or inspiration).
I intend to list here all the specific references for the repositories used.
It is important to note that this project is available for free, without cost. If there are any concerns about the use of specific code segments, feel free to contact me, and I will address the issue promptly.
Selected from shared topics, language and repository description—not editorial ratings.
carolsmarostica /
Repositório criado para salvar os trabalhos e projetos da matéria de Aprendizado de Máquina. As atividades serão/foram desenvolvidas em Python, com o auxílio do Jupyter Notebook.
27/100 healthguisaraiva /
Repositório criado para armazenar os arquivos referente a mineração de Textos e NLP com Python e Jupyter Notebook. Um dos vários módulos do curso "Data Science do Zero - Minerando Dados"
27/100 health