### Neataptic
Neataptic offers flexible neural networks; neurons and synapses can be removed with a single line of code. No fixed architecture is required for neural networks to function at all. This flexibility allows networks to be shaped for your dataset through neuro-evolution, which is done using multiple threads. ```js // this network learns the XOR gate (through neuro-evolution) var network = new Network(2,1); var trainingSet = [ { input: [0,0], output: [0] }, { input: [0,1], output: [1] }, { input: [1,0], output: [1] }, { input: [1,1], output: [0] } ]; await network.evolve(trainingSet, { equal: true, error: 0.03 }); ``` Neataptic also backpropagates more than 5x faster than competitors. [Run the tests yourself](https://jsfiddle.net/tuet004f/11/). This is an example of regular training in Neataptic: ```js // this network learns the XOR gate (through backpropagation) var network = new architect.Perceptron(2, 4, 1); // training set same as in above example network.train(trainingSet, { error: 0.01 }); network.activate([1,1]); // 0.9824... ``` Use any of the 6 built-in networks with customisable sizes to create a network: ```javascript var myNetwork = new architect.LSTM(1, 10, 5, 1); ``` Or built your own network with pre-built layers: ```javascript var input = new Layer.Dense(2); var hidden1 = new Layer.LSTM(5); var hidden2 = new Layer.GRU(3); var output = new Layer.Dense(1); input.connect(hidden1); hidden1.connect(hidden2); hidden2.connect(output); var myNetwork = architect.Construct([input, hidden1, hidden2, output]); ``` You can even built your network neuron-by-neuron using nodes and groups!
Visit the wiki to get started
or play around with neural networks
## Examples Neural networks can be used for nearly anything; driving a car, playing a game and even to predict words! At this moment, the website only displays a small amount of examples. If you have an interesting project that you want to share with other users of Neataptic, feel free to create a pull request!
Neuroevolution examples (supervised)
LSTM timeseries (supervised)
Color classification (supervised)
Agar.io-AI (unsupervised)
Target seeking AI (unsupervised)
Crossover playground
‌ ## Usage Head over to the [wiki](https://wagenaartje.github.io/neataptic/docs/) for detailed usage. If you want to visualise your graphs, head over to the [graph](https://github.com/wagenaartje/neataptic/tree/master/graph) folder. ## Install Neataptic files are hosted by rawgit, just copy this link into the `` tag: ```html ``` Installing with node is also possible: ```javascript npm install neataptic ``` Make sure you have Node.js `v7.6` or higher installed! ## Further notices Parts of [Synaptic](https://github.com/cazala/synaptic) where used to develop Neataptic. The neuro-evolution algorithm used is the [Instinct](https://medium.com/@ThomasWagenaar/neuro-evolution-on-steroids-82bd14ddc2f6) algorithm.
You made it all the way down! If you appreciate this repo and want to support the development of it, please consider donating :thumbsup: [![Donate](https://img.shields.io/badge/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=CXS3G8NHBYEZE)