mvrahden / reinforce-js

[INACTIVE] A collection of various machine learning solver. The library is an object-oriented approach (baked with Typescript) and tries to deliver simplified interfaces that make using the algorithms pretty simple.
https://npmjs.com/package/reinforce-js
MIT License
31 stars 6 forks source link
ai artificial-intelligence deep-learning deep-q-network deep-reinforcement-learning deepmind deterministic-policy-gradients dqn dqn-solver learning-agents machine-learning-solver neural-network npm reinforce-js reinforcement reinforcement-learning solver td-solver temporal-differencing-learning typescript

reinforce-js

Build Status Build status js-google-style

Call For Volunteers: Due to my lack of time, I'm desperately looking for voluntary help. Should you be interested in building reinforcement agents (even though you're a newbie) and willing to develop this educational project a little further, please contact me :) There are some points on the agenda, that I'd still like to see implemented to make this project a nice library for abstract educational purposes.

INACTIVE: Due to lack of time and help

reinforce-js – a collection of various simple reinforcement learning solver. This library is for educational purposes only. The library is an object-oriented approach and tries to deliver simplified interfaces that make using the algorithms pretty easy (baked with Typescript). More over it is an extension of Andrej Karpathy's reinforcement learning library that implements several common RL algorithms. In particular, the library currently includes:

For Production Use

What does the Library offer?

Currently exposed Classes:

DQN-Solver

Code-Example and General Information

TD-Solver (not tested)

Code-Example

Planned to be implemented:

How to install as a dependency:

Download available @npm: reinforce-js

Install via command line:

npm install --save reinforce-js@latest

The project directly ships with the transpiled Javascript code. And for TypeScript development it also contains Map-files and Declaration-files.

How to import?

These classes can be imported from this npm module, e.g.:

import { DQNSolver, DQNOpt, DQNEnv } from 'reinforce-js';

For JavaScript usage require classes from this npm module as follows:

const DQNSolver = require('reinforce-js').DQNSolver;
const DQNOpt = require('reinforce-js').DQNOpt;
const DQNEnv = require('reinforce-js').DQNEnv;

Example Application

For the DQN-Solver please visit Learning Agents (GitHub Page).

Community Contribution

Everybody is more than welcome to contribute and extend the functionality!

Please feel free to contribute to this project as much as you wish to.

  1. clone from GitHub via git clone https://github.com/mvrahden/reinforce-js.git
  2. cd into the directory and npm install for initialization
  3. Try to npm run test. If everything is green, you're ready to go :sunglasses:

Before triggering a pull-request, please make sure that you've run all the tests via the testing command:

npm run test

This project relies on Visual Studio Codes built-in Typescript linting facilities. Let's follow primarily the Google TypeScript Style-Guide through the included tslint-google.json configuration file.

Dependencies

This Library relies on the object-oriented Deep Recurrent Neural Network library:

Work in Progress

Please be aware that this repository is still under construction. Changes are likely to happen. There are still classes to be added, e.g. DPSolver, SimpleReinforcementSolver, RecurrentReinforcementSolver, DeterministPG and their individual Opts and Envs

License

As of License-File: MIT