Visual Inspector for NeuroEvolution (VINE)
This repo contains implementations of VINE, i.e., Visual Inspector for NeuroEvolution, an interactive data visualization tool for neuroevolution. An article describing this visualization tool can be found here.
Dependencies that need to be downloaded by end-user from a third party
In addition to requirements in
- Matplotlib -- version 2.0.2
- Sklearn -- version 0.19.1
- Pandas -- version 0.22.0
- Colour -- version 0.1.5
Visualize the pseudo-offspring clouds
Example 1: visualize the sample Mujoco Humanoid 2D BC (i.e., final x-y location) data for Generations 90 to 99
python -m main_mujoco 90 99 sample_data/mujoco/final_xy_bc/
This will bring up the GUI which consists of two interrelated plots: a pseudo-offspring cloud plot, and a fitness plot, similar to Figure 2 of the article, which is described in detail there.
Example 2: click
Movie button on the GUI to generate a visualization of the moving cloud similar to Figure 3 of the article, which can be saved as a movie clip by checking
save movie checkbox.
Example 3: right click any point of the pseudo-offspring cloud to view videos of the corresponding agent’s deterministic and stochastic behaviors (only available for Generation 97 in
sample_data). Follow the steps (all "clicks" are right click) illustrated in Figure 5 of the article.
To see HELP for the complete description of all available options (e.g., multiple BCs, and hi-dimensional BCs):
python -m main_mujoco --help
Using dimensionality reduction to process high-dimensional BC
Assume you would like to reduce 2000D BCs to 2D for Generations 0 to 99 using PCA:
python -m process_bc 0 99 <path_to_hd_bc> 2000 --method pca
The reduced BC data is stored at
To see HELP for the complete description of all available options:
python -m process_bc --help
Create and visualize your own data
- Choose proper behavior characterizations (BCs) (refer to the article for examples).
- Moderately modify your GA or ES code that dump out the BCs during neuroevolution.
Examples of BC choices and modified version of GA and ES, namely,
ga_modified.py, are privode in
../es_distributedfor your references.
- If applicable, using dimensionality reduction (see above) to reduce hi-dimensional BCs to 2D.
- Create (if necessary) and run main_.py file to launch GUI.
main_atari.pycan be used directly or used as a template for most of your use cases.