All Projects → stevenmiller888 → Mind

stevenmiller888 / Mind

A neural network library built in JavaScript

Programming Languages

javascript
184084 projects - #8 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to Mind

Neural prophet
NeuralProphet - A simple forecasting model based on Neural Networks in PyTorch
Stars: ✭ 1,125 (-23.26%)
Mutual labels:  prediction
Ml
A high-level machine learning and deep learning library for the PHP language.
Stars: ✭ 1,270 (-13.37%)
Mutual labels:  prediction
Keras Timeseries Prediction
Time series prediction with Sequential Model and LSTM units
Stars: ✭ 100 (-93.18%)
Mutual labels:  prediction
Deep Segmentation
CNNs for semantic segmentation using Keras library
Stars: ✭ 69 (-95.29%)
Mutual labels:  prediction
Dspn
[NeurIPS 2019] Deep Set Prediction Networks
Stars: ✭ 80 (-94.54%)
Mutual labels:  prediction
Flink Jpmml
flink-jpmml is a fresh-made library for dynamic real time machine learning predictions built on top of PMML standard models and Apache Flink streaming engine
Stars: ✭ 88 (-94%)
Mutual labels:  prediction
Tensorflow Lstm Sin
TensorFlow 1.3 experiment with LSTM (and GRU) RNNs for sine prediction
Stars: ✭ 52 (-96.45%)
Mutual labels:  prediction
Tennis Crystal Ball
Ultimate Tennis Statistics and Tennis Crystal Ball - Tennis Big Data Analysis and Prediction
Stars: ✭ 107 (-92.7%)
Mutual labels:  prediction
Ergo
A Python library for integrating model-based and judgmental forecasting
Stars: ✭ 82 (-94.41%)
Mutual labels:  prediction
Btctrading
Time Series Forecast with Bitcoin value, to detect upward/down trends with Machine Learning Algorithms
Stars: ✭ 99 (-93.25%)
Mutual labels:  prediction
Mirdeep2
Discovering known and novel miRNAs from small RNA sequencing data
Stars: ✭ 70 (-95.23%)
Mutual labels:  prediction
Ai Reading Materials
Some of the ML and DL related reading materials, research papers that I've read
Stars: ✭ 79 (-94.61%)
Mutual labels:  prediction
Tracknpred
This is the code base for our ACM CSCS 2019 paper: "RobustTP: End-to-End Trajectory Prediction for Heterogeneous Road-Agents in Dense Traffic with Noisy Sensor Inputs". This codebase contains implementations for several trajectory prediction methods including Social-GAN and TraPHic.
Stars: ✭ 88 (-94%)
Mutual labels:  prediction
Deepzip
NN based lossless compression
Stars: ✭ 69 (-95.29%)
Mutual labels:  prediction
Pylot
Modular autonomous driving platform running on the CARLA simulator and real-world vehicles.
Stars: ✭ 104 (-92.91%)
Mutual labels:  prediction
Limit orderbook prediction
Stars: ✭ 61 (-95.84%)
Mutual labels:  prediction
Stgcn
implementation of STGCN for traffic prediction in IJCAI2018
Stars: ✭ 87 (-94.07%)
Mutual labels:  prediction
Seldon Server
Machine Learning Platform and Recommendation Engine built on Kubernetes
Stars: ✭ 1,435 (-2.11%)
Mutual labels:  prediction
Skpro
Supervised domain-agnostic prediction framework for probabilistic modelling
Stars: ✭ 107 (-92.7%)
Mutual labels:  prediction
Bitcoin Value Predictor
[NOT MAINTAINED] Predicting Bit coin price using Time series analysis and sentiment analysis of tweets on bitcoin
Stars: ✭ 91 (-93.79%)
Mutual labels:  prediction

Mind Logo

CircleCI

A flexible neural network library for Node.js and the browser. Check out a live demo of a movie recommendation engine built with Mind.

Features

  • Vectorized - uses a matrix implementation to process training data
  • Configurable - allows you to customize the network topology
  • Pluggable - download/upload minds that have already learned

Installation

$ yarn add node-mind

Usage

const Mind = require('node-mind');

/**
 * Letters.
 *
 * - Imagine these # and . represent black and white pixels.
 */

const a = character(
  '.#####.' +
  '#.....#' +
  '#.....#' +
  '#######' +
  '#.....#' +
  '#.....#' +
  '#.....#'
)

const b = character(
  '######.' +
  '#.....#' +
  '#.....#' +
  '######.' +
  '#.....#' +
  '#.....#' +
  '######.'
)

const c = character(
  '#######' +
  '#......' +
  '#......' +
  '#......' +
  '#......' +
  '#......' +
  '#######'
)

/**
 * Learn the letters A through C.
 */

const mind = new Mind({ activator: 'sigmoid' })
  .learn([
    { input: a, output: map('a') },
    { input: b, output: map('b') },
    { input: c, output: map('c') }
  ])

/**
 * Predict the letter C, even with a pixel off.
 */

const result = mind.predict(character(
  '#######' +
  '#......' +
  '#......' +
  '#......' +
  '#......' +
  '##.....' +
  '#######'
))

console.log(result) // ~ 0.5

/**
 * Turn the # into 1s and . into 0s.
 */

function character(string) {
  return string
    .trim()
    .split('')
    .map(integer)

  function integer(symbol) {
    if ('#' === symbol) return 1
    if ('.' === symbol) return 0
  }
}

/**
 * Map letter to a number.
 */

function map(letter) {
  if (letter === 'a') return [ 0.1 ]
  if (letter === 'b') return [ 0.3 ]
  if (letter === 'c') return [ 0.5 ]
  return 0
}

Plugins

Use plugins created by the Mind community to configure pre-trained networks that can go straight to making predictions.

Here's a cool example of the way you could use a hypothetical mind-ocr plugin:

const Mind = require('node-mind')
const ocr = require('mind-ocr')

const mind = Mind()
  .upload(ocr)
  .predict(
    '.#####.' +
    '#.....#' +
    '#.....#' +
    '#######' +
    '#.....#' +
    '#.....#' +
    '#.....#'
  )

To create a plugin, simply call download on your trained mind:

const Mind = require('node-mind')

const mind = Mind()
  .learn([
    { input: [0, 0], output: [ 0 ] },
    { input: [0, 1], output: [ 1 ] },
    { input: [1, 0], output: [ 1 ] },
    { input: [1, 1], output: [ 0 ] }
  ]);

const xor = mind.download()

Here's a list of available plugins:

API

Mind(options)

Create a new instance of Mind that can learn to make predictions.

The available options are:

  • activator: the activation function to use, sigmoid or htan
  • learningRate: the speed at which the network will learn
  • hiddenUnits: the number of units in the hidden layer/s
  • iterations: the number of iterations to run
  • hiddenLayers: the number of hidden layers

.learn()

Learn from training data:

mind.learn([
  { input: [0, 0], output: [ 0 ] },
  { input: [0, 1], output: [ 1 ] },
  { input: [1, 0], output: [ 1 ] },
  { input: [1, 1], output: [ 0 ] }
])

.predict()

Make a prediction:

mind.predict([0, 1])

.download()

Download a mind:

const xor = mind.download()

.upload()

Upload a mind:

mind.upload(xor)

.on()

Listen for the 'data' event, which is fired with each iteration:

mind.on('data', (iteration, errors, results) => {
  // ...
})

Releasing / Publishing

CircleCI will handle publishing to npm. To cut a new release, just do:

$ git changelog --tag <version>
$ vim package.json # enter <version>
$ git release <version>

Where <version> follows the semver spec.

Note

If you're interested in learning more, I wrote a blog post on how to build your own neural network:

Also, here are some fantastic libraries you can check out:

License

MIT


stevenmiller888.github.io  ·  GitHub @stevenmiller888  ·  Twitter @stevenmiller888

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].