You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
REINFORCEjs is a Reinforcement Learning library that implements several common RL algorithms, all with web demos. In particular, the library currently includes:
Deep Q-Learning for Q-Learning with function approximation with Neural Networks
Stochastic/Deterministic Policy Gradients and Actor Critic architectures for dealing with continuous action spaces. (very alpha, likely buggy or at the very least finicky and inconsistent)
See the main webpage for many more details, documentation and demos.
Code Sketch
The library exports two global variables: R, and RL. The former contains various kinds of utilities for building expression graphs (e.g. LSTMs) and performing automatic backpropagation, and is a fork of my other project recurrentjs. The RL object contains the current implementations:
RL.DPAgent for finite state/action spaces with environment dynamics
RL.TDAgent for finite state/action spaces
RL.DQNAgent for continuous state features but discrete actions
A typical usage might look something like:
// create an environment objectvarenv={};env.getNumStates=function(){return8;}env.getMaxNumActions=function(){return4;}// create the DQN agentvarspec={alpha: 0.01}// see full options on DQN pageagent=newRL.DQNAgent(env,spec);setInterval(function(){// start the learning loopvaraction=agent.act(s);// s is an array of length 8//... execute action in environment and get the rewardagent.learn(reward);// the agent improves its Q,policy,model, etc. reward is a float},0);
The full documentation and demos are on the main webpage.
License
MIT.
About
Reinforcement Learning Agents in Javascript (Dynamic Programming, Temporal Difference, Deep Q-Learning, Stochastic/Deterministic Policy Gradients)