Skip to content

Instantly share code, notes, and snippets.

@rbhatia46
Created October 11, 2017 19:22
Show Gist options
  • Save rbhatia46/8023d2f343889f77597e46b6be5ba78c to your computer and use it in GitHub Desktop.
Save rbhatia46/8023d2f343889f77597e46b6be5ba78c to your computer and use it in GitHub Desktop.
A simple neural network to solve the XOR Equation using Synaptic.js written in Javascript.
const { Layer, Network } = window.synaptic;
var inputLayer = new Layer(2);
var hiddenLayer = new Layer(3);
var outputLayer = new Layer(1);
inputLayer.project(hiddenLayer);
hiddenLayer.project(outputLayer);
var myNetwork = new Network({
input: inputLayer,
hidden: [hiddenLayer],
output: outputLayer
});
// train the network - learn XOR
var learningRate = .3;
for (var i = 0; i < 20000; i++) {
// 0,0 => 0
myNetwork.activate([0,0]);
myNetwork.propagate(learningRate, [0]);
// 0,1 => 1
myNetwork.activate([0,1]);
myNetwork.propagate(learningRate, [1]);
// 1,0 => 1
myNetwork.activate([1,0]);
myNetwork.propagate(learningRate, [1]);
// 1,1 => 0
myNetwork.activate([1,1]);
myNetwork.propagate(learningRate, [0]);
}
//Test it out in the console
console.log(myNetwork.activate([0,0])); //Expect value close to 0
console.log(myNetwork.activate([0,1])); //Expect value close to 1
console.log(myNetwork.activate([1,0])); //Expect value close to 1
console.log(myNetwork.activate([1,1])); // Expect value close to 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment