CARLsim  6.1.0
CARLsim: a GPU-accelerated SNN simulator
All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
  1. Parameter-Tuning ECJ and LEAP

10.1 Framework Overview

CARLsim provides a software interface for exposing the parameters of a model an external process so that they can be automatically tune to maximize some measure of fitness. The parameter-tuning interface (PTI) is generic, but is built specifically to be compatible with the ECJ framework—an evolutionary computation framework written in Java (Scott and Luke, 2019). Starting CARLsim 6, the PTI is also integrated with LEAP, which is a general purpose Evolutionary Computation package written in Python (Coletti, Scott, and Bassett, 2020).

We find that an automated tuning framework becomes increasingly useful as our SNN models become more complex. Evolutionary Algorithms (EAs) enable flexible parameter tuning by means of optimizing a generic fitness function. The first version of the automated parameter-tuning framework used an EA library called Evolving Objects (EO) as the EA engine (Carlson et al., 2014). ECJ was chosen to supercede EO because it is under active development (Linux), supports multi-threading and distribution, has excellent documentation, and implements a variety of EAs (Scott and Luke, 2019). LEAP complements ECJ with an easy-to-use syntax and powerful visualization features (Coletti, Scott, and Bassett, 2020).

You can find complete examples of Experiment.run() implementations in Tutorial 7: Parameter Tuning Interface (PTI) and in the tools/pti/examples directory of the CARLsim source tree.

Since
v3.0

10.2 References

Scott, E. and Luke, S., ECJ at 20: toward a general metaheuristics toolkit. Proceedings of the Genetic and Evolutionary Computation Conference Companion (GECCO), 1391-1398, 2019.

Coletti, M., Scott, E., and Bassett, J., Library for evolutionary algorithms in Python (leap). Proceedings of the Genetic and Evolutionary Computation Conference Companion (GECCO), 2020.