node package manager


Machine Learning library for Node.js


Machine Learning library for Node.js

Status : Under development

ml-js depends on FANN (Fast Artificial Neural Network Library) witch is a free, open source and high performence neural network library.

To build great app with it :

  • Make sure you glib2 is installed : sudo apt-get install glib2.0
  • make sure pkg-config is installed : sudo apt-get install pkg-config
  • make sure cmake is installed : sudo apt-get install cmake
  • Install FANN :
    • download here
    • unzip
    • goto to FANN directory
    • run cmake . and sudo make install
    • run sudo ldconfig

Finally, you should be able to install all npm dependancies with npm install ml-js --save

ml-js currently supports :

  • Supervised learning :
    • fann - Neural Networks provided by node-fann addon
    • svm - Support vector machine provided by node-svm addon
  • Reinforcement learning :
    • QLearning, model-free reinforcement learning technique
  • Exploration policies
  • BoltzmannExploration

Q-learning is a model-free reinforcement learning technique. Specifically, Q-learning can be used to find an optimal action-selection policy for any given MDP.

ml = require 'ml-js'
myprocess = new SomeProcess
qValues = new ml.CSDAQValues nb_featuresnb_actions
options = {
  learning_rate: 0.1
  discount_factor: 0.9
  exploration_policy: new ml.BoltzmannExploration 0.2 # temperature 
agent = new ml.QLearningAgent qValuesoptions
myprocess.on 'do_something'(currentState)->
  next_action = agent.getAction currentState next_action
myprocess.on 'feedback_received'(initState, action, newState, reward)->
    agent.learn initStateactionnewStatereward

Availables QValues managers :

  • CSDAQValues for Continuous States and Discrete Actions QValues. It uses neural networks to perform learning on continuous states.