This repository contains my final-year AI machine learning project. The assignment focused on evolutionary algorithms and involved implementing either a single-layer perceptron or a multi-layer perceptron (neural network).
The approach:
- Population Initialization – Generate
nperceptrons with random weightings. - Evaluation – Assess each candidate using a fitness function.
- Selection & Evolution – Apply natural selection to:
- Maintain population diversity
- Guide candidate solutions toward the most optimal configuration
The goal was to explore how evolutionary principles can be applied to neural networks and how diversity and selection pressures affect learning performance.
Core learning outcomes here was:
- Maintaining population diversity is crucial, even if counter-intuitive, to prevent premature convergence on sub-optimal solutions.
- Iteratively analyzing model performance is imperative when training ML models. In this project, this involved adjusting selection pressure and the fitness function parameters and observing their impact on the population's evolution.