neat_net-js

1.0.14 • Public • Published

NEAT-JS

NeuroEvolution of Augmenting Topologies (NEAT) is a genetic algorithm (GA) for the generation of evolving artificial neural networks.

code coverage license issues

Getting Started:

Setting up the library:

If you are using Node.js you can import this library like so:

let { NEAT, activation, crossover, mutate } = require('neat_net-js');

If you are planning to use this library on the browser:

<script language="javascript" type="text/javascript" src="./lib/NEAT_browser.js"></script>

Basic Usage:

The basic usage of this library is as follows.

let config = {
    model: [
        {nodeCount: 5, type: "input"},
        {nodeCount: 1, type: "output", activationfunc: activation.RELU}
    ],
    mutationRate: 0.05,
    crossoverMethod: crossover.RANDOM,
    mutationMethod: mutate.RANDOM,
    populationSize: 10
};
 
 
let neat = new NEAT(config);

Config parameters:

model: Defines the model your creatures are going to use.
mutationRate: Sets the mutation chance of the creatures. (Default: 0.05)
crossoverMethod: Sets the crossover method. (crossover.RANDOM or crossover.SLICE) (Default: crossover.RANDOM)
mutationMethod: Sets the mutation method. (only mutate.RANDOM for now) (Default: mutate.RANDOM)
populationSize: Sets the population size. (Default: 500)

Functions:

neat.doGen(); // Does one generation with mutation and crossover.
neat.setFitness(fitness, index); { // Sets a creature's score. This will then be normalized for actual fitness value.
neat.bestCreature(); // Returns the best creature from the last generation.
neat.setInputs(array, index); // Sets the inputs of the creature indexed as "index".
neat.getDesicions(); // Returns every creature's desicion in an array.
neat.feedForward();  // Feeds forward every creatıre's neural network.
neat.export(); // Exports all creatures for later training (See import() below) You can also pass an index to this function.
neat.import(data); // Imports creature(s) previously exported.

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

MIT

Package Sidebar

Install

npm i neat_net-js

Weekly Downloads

2

Version

1.0.14

License

MIT

Unpacked Size

513 kB

Total Files

20

Last publish

Collaborators

  • extensionshoe