ann-js
Artificial neural network in vanilla JS
This is a 3-layer neural network that uses sigmoid activation function and stochastic gradient descent as its backpropagation algorithm.
Installation
Install from the npm repository:
npm install ann-js
Small example
Teaching the network logical XOR operation:
// require the networkconst NeuralNetwork = ; // instantiate a network with two inputs, 7 hidden neurons and 1 output// set learning rate to 0.6const NN = ; // define our training dataconst inputs = input: 1 1 expected: 0 input: 1 0 expected: 1 input: 0 1 expected: 1 input: 1 1 expected: 0 ; // and let it runfor let i = 0; i < 10000; i++ for let j = 0; j < inputslength; j++ NN; // let's check it out..forlet i = 0; i < inputslength; i++ console;// --> input: [ 1, 1 ] | output: 0.007655196970540926// --> input: [ 1, 0 ] | output: 0.9918757893434477// --> input: [ 0, 1 ] | output: 0.9925807646447175// --> input: [ 1, 1 ] | output: 0.007655196970540926
Methods
Constructor: NeuralNetwork(numInputs, numHidden, numOutputs, [ learningRate, [ bias ]])
Learning rate is by default set to 0.5 and bias si set to 1.
const NN = ;// 1 input neuron, 3 neurons in hidden layer, 2 output neurons const NN = ;// 2 input neurons, 1 neuron in hidden layer, 2 output neurons, learning rate 0.9, bias set to 2
.train(trainObject)
Trains the network on a single training example
NN; NN;
The .input property is what the network will be fed with, .expected is the result we're hoping to see.
.test(input)
Performs a single feed forward on the network and returns the result
const NN = ;NN;// --> Number
const NN = ; NN;// --> Array(2)
.load(file, callback) && .save(file, callback)
Asynchronously saves or loads the weights of the network. The saved file is in a json format.
NN;
NN;
.loadSync(file) & .saveSync(file)
Synchronous versions of .load & .sync
// loading multiple networksNN1;NN2;