Crate evo_rl

Crate evo_rl 

Source
Expand description

Evo RL is a machine learning library built on the concept of Neuroevolution – evolving an architecture for neural networks as opposed to pre-specifying it. This library is best suited for Reinforcement Learning tasks in which a reward (or fitness) score can be assigned to agents.

Evo RL is a WIP and is in the pre-alpha state.

Modules§

agent_wrapper
A wrapper class for neural network that creates an interface to other environments such as Python
api
doctest
This module contains constants and examples used in unit tests.
enecode
Module which specifies the genetic encoding for neural network and neural properties. The genetic encoding is used to reconstruct neural network graphs and for recombination of offspring.
graph
This module implements neural networks in the form of directed graphs (from petgraph). Evolutionary changes are projected onto the graph first before being encoded genetically.
neuron
Module for the neuron struct which defines the individual unit of computation for the neural network.
population
This module focuses on implementing an evolutionary algorithm for neural network optimization. It uses Stochastic Universal Sampling (SUS) and Truncation for selection within a population of neural network agents.

Functions§

ez_input
Convenience function to easily create a vector of owned Strings.
hash_em
Convenience function to easily create maps when specifying gene strings.
increment_innovation_number
Increments the ID of a neuron when creating a daughter
progenitor_code
Returns progenitor code base for an innnovation number
relu
rng_box
Returns an rng based on Option
setup_logger
Utility function for logging unit tests
sigmoid
sort_genes_by_neuron_type
Sorts topology gene in the order of Input, Hidden, Output and then by innovation number