csmangum / GCA

Generative Cellular Automata
Apache License 2.0
0 stars 0 forks source link

Neuroevolution #8

Open csmangum opened 3 months ago

csmangum commented 3 months ago

Experimenting with Neuroevolution

Description

This issue aims to explore the implementation and experimentation of neuroevolution techniques within the project. Neuroevolution represents a promising avenue for optimizing neural networks through evolutionary algorithms, diverging from traditional gradient descent methods.

Objectives

Proposed Methodology

  1. Define Neural Network Structure: Establish a flexible neural network model in PyTorch to serve as the base for evolution.
  2. Setup Evolutionary Algorithm: Implement an evolutionary algorithm framework that includes population initialization, fitness evaluation, selection, crossover, mutation, and generation replacement.
  3. Evolution Process Experimentation:
    • Selection: Experiment with different selection strategies to identify top-performing networks.
    • Crossover and Mutation: Implement and test various approaches for network crossover and mutation to generate offspring.
    • Diversity Maintenance: Incorporate techniques to ensure or increase population diversity across generations.
  4. Hybrid Approach Exploration: Explore potential hybrid approaches, where evolution optimizes network architecture and hyperparameters, while gradient descent is used for network training.
  5. Parallelization and Efficiency: Leverage PyTorch’s parallel computation capabilities to enhance the efficiency of the evolutionary process.

Considerations

Expected Outcomes

Next Steps