0.3.3 • Published 5 years ago

al3x v0.3.3

Weekly downloads
5
License
GPL-3.0-or-later
Repository
github
Last release
5 years ago

Alex: Artificial Life form 3X

Alex

Build Status David

Maintainability Test Coverage

GitHub release GitHub Release Date GitHub last commit npm

Description

Alex is a library for preference and reinforcement learning.

As of version 0.3.0, code is still very open, but that should change for 1.0. The goal is to have a very reinforcement learning centered library, that allows easy construction and use of it.

Documentation of code can be found here: documentation.

Versioning

Alex is versioned following Semver 2.0.0

Installation

just run $ npm i al3x, which will install the package into your project.

This library runs out of the box, but will give warnings. These warnings just show that no configuration was created.

It will run without, but it is highly suggested to create a custom network layout.

If you want to see how a configuration file has to look, please look at the default configuration

Use

The API is centered around an Alex class. Other classes might be added later and will be outlined here, if they are part of the public API.

All methods, not explicitely stated here, are counted not part of the public API.

Public methods:

let alex = new Alex();    // Constructor, which also handles model generation,
                          // memory loading and other base functions

alex.remember([0,0], [0]);// A method used to save enviroment state and action
                          // pairs. These are important in later steps.

alex.materialize_memory();// Save the current state of memory to disk, so it can
                          // be loaded back later.

alex.learn();             // Use current memory to train a network.
                          // This method should always be run with a memory that
                          // contains at least one element!

alex.predict([[0,0]]);    // Make a prediction of what action to take, when an
                          // environment state is given.

alex.act([[0,0]], func);  // Same as predict, but accepts a function too, that
                          // is run with the produced prediction

alex.forget_all()         // Empty memory. So it can be filled with new memories

For more information, please refer to the more detailed documentation.

Donations

Patreon KoFi

License

GPLv3

Alex code :copyright: 2018 Maxine Michalski

Alex art :copyright: 2017 Ulvra

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request