AI-ANN
view release on metacpan or search on metacpan
lib/AI/ANN.pm view on Meta::CPAN
AI::ANN is an artificial neural network simulator. It differs from existing
solutions in that it fully exposes the internal variables and allows - and
forces - the user to fully customize the topology and specifics of the
produced neural network. If you want a simple solution, you do not want this
module. This module was specifically written to be used for a simulation of
evolution in neural networks, not training. The traditional 'backprop' and
similar training methods are not (currently) implemented. Rather, we make it
easy for a user to specify the precise layout of their network (including both
topology and weights, as well as many parameters), and to then retrieve those
details. The purpose of this is to allow an additional module to then tweak
these values by a means that models evolution by natural selection. The
canonical way to do this is the included AI::ANN::Evolver, which allows
the addition of random mutations to individual networks, and the crossing of
two networks. You will also, depending on your application, need a fitness
function of some sort, in order to determine which networks to allow to
propagate. Here is an example of that system.
use AI::ANN;
my $network = new AI::ANN ( input_count => $inputcount, data => \@neuron_definition );
my $outputs = $network->execute( \@inputs ); # Basic network use
use AI::ANN::Evolver;
( run in 0.598 second using v1.01-cache-2.11-cpan-49f99fa48dc )