Code Monkey home page Code Monkey logo

professor_aluno's Introduction

Framework Professor-Aluno

Linux Python Tensorflow

⚠️ Implementação do Framework Professor-Aluno aplicado ao desafio Cart-Pole, usando python, tensorflow e gym. Adicionalmente, os agentes DQN foram adaptados da implementação disponibilizada por Keon. Todos os detalhes do ambiente, do framework e dos resultados obtidos estão descritos no relatório do projeto.

Overview

Este projeto aborda a implementação do Framework Professor-Aluno e investiga seus efeitos sobre o treinamento de um agente para resolver o jogo Cart-Pole. Ambos os agentes, professor e aluno, utilizam-se do algoritmo de aprendizado por reforço conhecido como Q-Learning, combinado a uma rede neural profunda, uma abordagem conhecida como DQN. Dos algoritmos presentes no framework, três foram investigados, sendo eles: early advising, importance advising e mistake correcting. Esses métodos foram utilizados para treinar um novo agente, e comparados ao treinamento de um agente sem a utilização do framework. Por fim, algumas variações de parâmetros do framework também foram investigadas.

No framework para aprendizado por reforço, o agente referido como aluno, aprende a realização de uma tarefa, enquanto outro agente, conhecido como professor, tem a possibilidade de sugerir uma ação para cada estado encontrado pelo aluno, como representado na figura:

treinamento

O CartPole-v1 é um ambiente simples que consiste em um mastro localizado sobre um carrinho móvel. A cada turno, o sistema aplica uma força sobre o mastro com o intuito de desequilibrá-lo. O agente deve então tentar reequilibrar o mastro movendo o carrinho para direita ou para esquerda.

animacao

A cada turno que o mastro passa em pé, o jogador recebe 1 ponto, e a recompensa máxima para vencer uma rodada é de 500 pontos. No entanto, o episódio acaba caso o mastro se mova mais que 15 graus, para qualquer lado, ou caso o carrinho se mova mais do que 2,4 unidades do centro do mapa.

Instalação

Crie um ambiente e ative-o, em seguida clone o repositório e instale os requerimentos utilizando os seguintes comandos:

git clone https://github.com/eduardoatr/Professor_Aluno.git
cd Professor_Aluno
pip install -r requirements.txt

Execução

Execute o script cartpole.py, fornecendo como parâmetro o método de recomendação utilizado no framework, como mostrado no exemplo a seguir:

python cartpole.py "mistake"

As opções de recomendação são: early, importance e mistake. Adicionalmente, a flag --show pode ser passada como parâmetro para que uma animação mostrando cada execução do ambiente seja renderizada. Por fim, outras configurações do método podem ser modificadas passando-as por parâmetro. Use o comando de ajuda para consultar as alterações possíveis da seguinte maneira:

python cartpole.py --help

Para mais informações, consulte o relatório.

professor_aluno's People

Contributors

eduardoatr avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.