neura
TypeScript icon, indicating that this package has built-in type declarations

1.1.1 • Public • Published

neura

Neura is an intuitive, fast, simple and customizable neural network for JavaScript.

It doesn't use classes or external libraries (e.g. ndarray). All data should be just a regular native 2-d arrays (e.g. [[1, 2, 3], [4, 5, 6]]). All operations are pure functions, so neura doesn't store your data anywhere. The methods always return some sort of results or/and metadata.

Requirements:

Node.js 8+

Installation:

npm i neura
# or
yarn add neura

Usage:

Import neura

import neura from 'neura'
// or
import {train, run} from 'neura'
// or
const neura = require('neura')

Train the neural network using data sets (e.g. xor)

const neura = require('neura')
const train = neura.train
const run = neura.run
const trainOutput = train(
    // inputs
    [[0, 0, 1], [0, 1, 1], [1, 0, 1], [1, 1, 1]],
    // known outputs/results for the inputs, respectively
    [[0, 0, 1, 1]],
    // options
    {iterations: 10000}
)
// Get the results for some unknown cases
const result = run([[0, 0, 0]], trainOutput) // 1

Tic-Tac-Toe AI

There's a browser tic-tac-toe game, where 2 AI teach each other using neura. You can also play against them. The app is made with create-react-app, so you can install, try and modify it easily.

Another example

Let's create a real estate scoring (chance of some property to be sold) Yes or no denoted by 1/0

id Price in M$ Rooms Area Sold
1 1.12 3 25 0
2 25.2 4 116 1
... ... ... ... ...
100000 4.1 1 65 1

input is 2, 3 and 4 columns (e.g. [[1.12, 3, 25], ...]), output is 5 column (just put all results to the single row, e.g. [[0, 1, ..., 1]]

First of all, let's train the network using the data above

const trainOutput = train(input, output, {iterations: 100000})

find the result for some unsold house

run([[18, 2, 95]], trainOutput) // 0.85 => This house is likely to be sold

Options

  • iterations (required) is the number of iterations for the error backpropagation. It affects how precise are results, however, it also can overtrain the network.
  • initialSynapse train the existing neural network again using another initial synapse
  • initialNetwork re-train the existing neural network using some extra data

TODO

Build & tests

# Run tests
yarn run test
# Build the distributive
yarn run build

Readme

Keywords

none

Package Sidebar

Install

npm i neura

Weekly Downloads

3

Version

1.1.1

License

MIT

Unpacked Size

59.7 kB

Total Files

25

Last publish

Collaborators

  • alexile