eCode
eCode is a powerful yet easy to use tool, allowing engineers working on Machine Learning to solve to problems by leveraging genetic search of linear software. The output of ecode is a series of linear software instructions that minimise, or maximise, a fitness function. These linear software instructions form a software program, and this program is discovered during a search process. The search process is a genetic search algorithm where the instructions are encoded as a sequence or genes that are manipulated by genetic operations.
ecode can be used to perform supervised learning or reinforcement learning. The user is in control of the problem definition via a python file which is called from within evolve. As an example, during reinforcement learning the problem definition supplied by the user will perform the functions of the environment and the observer. ecode performs the functions of the agent and the agent leaning.
The output of the learning process is a file containing a list of instructions. This file can be loaded into a tool to supply a set of inputs and to run the program to yield the corresponding outputs. In this way the learned program can be built into the user’s application.
With evolutionary software, it is possible to convert the learned program into a C code equivalent. This allows the result of learning to be analysed in a way that is not possible with standard deep learning or reinforcement learning tools. This feature will soon be available for eCode.
The search process uses a number of individuals arranged into a population. Each individual represents a potential solution to the problem and each one is tested on the problem to yield a performance score. The best individuals are kept and used as the basis for the next iteration at solving the problem. Every iteration is called a generation and the best individuals become the parents of the children in the next generation. ecode includes a number of patent-pending innovations that accelerate the convergence of this process.
Every search yields a unique solution. It is possible to use the result of any generation as the basis for the start of a new search and it is even possible to use multiple search results (possibly containing different characteristics) to start a new search and thereby search for solutions that incorporate features that are deemed to be interesting. This feature is called seeding
This website will show how to install, run and configure ecode. The example of reinforcement learning is used and an OpenAI gym learning example is given.