Coder Social home page Coder Social logo

wbgalvao / rlopt Goto Github PK

View Code? Open in Web Editor NEW

This project forked from rl-opt/rlopt

0.0 0.0 0.0 32.43 MB

Os métodos Policy Search (PS) vem sendo utilizados nos últimos anos para se aprender algoritmos de otimização. Nesse repositório, comparamos 4 algoritmos dessa família de métodos (REINFORCE, SAC, TD3 e PPO) para resolver 8 problemas de otimização global, aprendendo diferentes algoritmos de otimização de ordem zero.

Python 100.00%

rlopt's Introduction

Zeroth Order Policy Search Methods for Global Optimization Problems: An Experimental Study

Os métodos Policy Search (PS) vem sendo utilizados nos últimos anos para se aprender, automaticamente, algoritmos de otimização, obtendo resultados animadores. Nesse repositório, disponibilizamos os códigos utilizados para a comparação de 4 algoritmos dessa família de métodos (REINFORCE, SAC, TD3 e PPO) para resolver 8 problemas de otimização global, aprendendo diferentes algoritmos de otimização de ordem zero.

Sumário

  1. Sobre o Repositório
  2. Funções de Benchmark
  3. Gráfico de Convergência
  4. Comparação em diferentes dimensões

Sobre o Repositório

Esse repositório contém os códigos utilizados pelo artigo Zeroth Order Policy Search Methods for Global Optimization Problems: An Experimental Study, submetido ao ENIAC 2021. Encorajamos ao leitor realizar testes com os códigos e agentes disponibilizados.

Estrutura do Repositório

.
├── imgs
│
├── policies
|     ├── PPO
|     ├── REINFORCE
|     ├── SAC
|     └── TD3
|
└── src
     ├── environment
     ├── evaluation
     ├── functions
     └── training
  • A pasta imgs/ contém as imagens utilizadas nesse documento;
  • A pasta policies/ contém as políticas aprendidas pelos agentes, que representam os algoritmos de otimização aprendidos;
  • A pasta src/ contém os códigos utilizados para o treinamento dos agentes (src/training), avaliação dos agentes (src/evaluation), funções de benchmark (src/functions) e o ambiente (src/environment).

Instalação

A implementação dos códigos é feita em Python 3.8 com o TensorFlow 2.5.0 e TF-Agents 0.8. Para realizar executar os códigos, faz-se necessário clonar o repositório e instalar as dependências necessárias.

Primeiro, realize o clone do repositório

$ git clone https://github.com/rl-opt/rlopt
$ cd rlopt

Então, instale as dependências usando o pip (é recomendado utilizar um ambiente virtual do python)

$ pip install -r requirements.txt

Funções de Benchmark

Os problemas de otimização escolhidos consistem em minimizar 8 funções matemáticas (F1—F8):

Descrição das Funções

Essas funções são conhecidas pela literatura ([Laguna and Martí 2005][Molga and Smutnicki 2005]), sendo parte, inclusive, da IEEE WCCI2020 Competition on Evolutionary Multi-task Optimization.

A implementação das funções se encontra em src/functions/, os agentes (representados por suas policies) em policies e os códigos utilizados para o treinamento em src/training.

Gráficos de Convergência

Abaixo, estão os gráficos de convergência dos algoritmos de otimização aprendidos para as funções consideradas (d=30). Os algoritmos aprendidos (policies) se encontram em policies/. Os resultados são apresentados em termos da média de 100 execuções distintas. Utilizamos os algoritmos Gradient Descent (GD) e Nesterov’s Accelerated Gradient (NAG) como baselines.

F1:

Convergência F1

F2:

Convergência F2

F3:

Convergência F3

F4:

Convergência F4

F5:

Convergência F5

F6:

Convergência F6

F7:

Convergência F7

F8:

Convergência F8

Comparação em diferentes dimensões

Abaixo, estão as tabelas comparando os diferentes algoritmos de otimização aprendidos para as funções com diferentes dimensões (d=5, d=10 e d=30). Os agentes foram treinados por 500 (d=5), 1000 (d=10) e 2000 (d=30) episódios. Os valores apresentados representam a média da solução final obtida pelos agentes em 100 execuções distintas.

O tempo médio para o treinamento dos agentes foi cerca de:

  • 2h 45min para 2000 episódios e d = 30;
  • 1h 45min para 1000 episódios e d = 10;
  • 45min para 500 episódios e d = 5.

Comparação F1

Comparação F2

Comparação F3

Comparação F4

Comparação F5

Comparação F6

Comparação F7

Comparação F8

rlopt's People

Contributors

rl-opt 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.