Giter Club home page Giter Club logo

easyagents's Introduction

Reinforcement Learning for Practitioners (v1.2, 19Q4)

Travis_Status Coverage Status License Downloads Docs

Status: under active development, breaking changes may occur. Release notes.

EasyAgents logo

EasyAgents is a high level reinforcement learning api focusing on ease of use and simplicity. Written in Python and running on top of established reinforcement learning libraries like tf-Agents, tensorforce or keras-rl. Environments are implemented in OpenAI gym. For an example of an industrial application of reinforcement learning see here.

In collaboration with Oliver Zeigermann.

Features


  • provides the same, simple api across all libraries. Thus you can easily switch between different implementations and you don't have to learn for each of them a new api.
  • to create and run any algorithm you only need 2 lines of code, all the parameters are named consistently across all algorithms.
  • supports a broad set of different algorithms
  • runs inside jupyter notebooks as well as stand-alone, easy to install requiring only a single 'pip install easyagents'.
  • easy to understand, ready-made plots and logs to investigate the algorithms and environments behaviour

Examples


from easyagents.agents import PpoAgent
from easyagents.callbacks import plot

ppoAgent = PpoAgent('CartPole-v0')
ppoAgent.train([plot.State(), plot.Loss(), plot.Rewards()])

Scenario_Simple

More Detailed

from easyagents.agents import PpoAgent
from easyagents.callbacks import plot

ppoAgent = PpoAgent( 'Orso-v1',fc_layers=(500,500,500))
ppoAgent.train([plot.State(), plot.Loss(), plot.Rewards(), plot.Actions(), 
                plot.StepRewards(), plot.Steps(), plot.ToMovie()], 
                learning_rate = 0.0001, num_iterations = 500, max_steps_per_episode=50 )

Scenario_Detailed

Try it on colab


Available Algorithms and Backends


algorithm tf-Agents tensorforce keras-rl easyagents class name
CEM not available not available yes CemAgent
Dqn yes yes yes DqnAgent
Double Dqn open not available yes DoubleDqnAgent
Dueling Dqn not available not yet available yes DuelingDqnAgent
Ppo yes yes not available PpoAgent
Random yes yes not available RandomAgent
REINFORCE yes yes not available ReinforceAgent
SAC preview not available not available SacAgent

[191001]

  • if you are interested in other algorithms, backends or hyperparameters let us know by creating an issue. We'll try our best to support you.
  • for a documentation of the agents api see here.
  • keras-rl is not compatible with tensorflow eager execution mode. Thus keras-rl based agents should run in a different python / jupyter notebook instance than tf-agents or tensorforce based agents.

Industrial Application


Geberit - a sanitary technology company with > 12'000 employees - produces in particular pipes and other parts to get rain-water of flat roofs - so called syphonic roof drainage systems. They warrant that large buildings like stadiums, airports or shopping malls do not collapse during heavy rainfalls. However it is surprisingly difficult to find the right dimensions for the pipes. It is actually so difficult, that as of today no feasable, deterministic algorithm is known. Thus traditional heuristics and classic machine learning were used to support the users in finding a suitable solution.

Using reinforcement learning the failrate of the previous solution was reduced by 70%, resulting in an end-to-end success-rate of > 98%.

For more details take a look at this talk.

Installation


Install from pypi using pip:

pip install easyagents

More


Documentation

for release notes & class diagram, for agents & api.

Guiding Principles

  • easily train, evaluate & debug policies for (you own) gym environment over "designing new algorithms"
  • simple & consistent over "flexible & powerful"
  • inspired by keras:
    • same api across all algorithms
    • support different implementations of the same algorithm
    • extensible (pluggable backends, plots & training schemes)

EasyAgents may not be ideal if

  • you would like to leverage implementation specific advantages of an algorithm
  • you want to do distributed or in parallel reinforcement learning

Note

  • If you have any difficulties in installing or using easyagents please let us know by creating an issue. We'll try our best to help you.
  • Any ideas, help, suggestions, comments etc in python / open source development / reinforcement learning / whatever are more than welcome.

easyagents's People

Contributors

christianhidber avatar djcordhose 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.