Dezember 2023
Trainieren eines PyTorch-Neuronalen Netzes mit Genetischem Algorithmus
Projektübersicht
Wir haben einen massgeschneiderten Genetischen Algorithmus (GA) entwickelt, der kleine PyTorch-Neuronale Netze trainiert, indem er Gewichte und Biases direkt evolviert. Eine adaptive Parametersteuerung ermöglicht dem GA, automatisch Exploration und Exploitation auszubalancieren. Zusätzlich wurde ein schlankes Python-Paket erstellt, das die Architektur, Gewichte und Biases vollständig verbundener PyTorch-Modelle visualisiert.

Ziele
- Direkte Parameter-Evolution: Optimierung von Netzparametern ohne gradientenbasierte Verfahren durch Anwendung evolutionärer Prinzipien.
- Adaptive Parametersteuerung: Automatische Anpassung von Mutations- und Kreuzungsraten, um Exploration und Exploitation in Balance zu halten.
- Visualisierung: Bereitstellung von Einblicken in Netzwerkarchitektur sowie Gewichte und Biases während des gesamten Evolutionsprozesses.
Lösung
Eigenes GA-Framework
- Kodierung von Netzwerkgewichten und Biases als GA-Chromosomen zur direkten Evolution.
- Implementierung von Selektion-, Kreuzungs- und Mutationsoperatoren, die auf PyTorch-Modellparameter zugeschnitten sind.
- Integration adaptiver Parametersteuerung, um genetische Operatoren basierend auf Populationsdiversität dynamisch anzupassen.

Visualisierungs-Paket
Entwicklung einer Python-Bibliothek, die darstellt:
- Netzwerk-Topologie.
- Gewichte und Biases.
Ergebnisse
- Effektive Optimierung: Erfolgreiches Training kleiner PyTorch-Netzwerke ohne Backpropagation bei konkurrenzfähiger Leistung.
- Automatisiertes Tuning: Adaptive GA-Parameter verringerten manuelles Hyperparameter-Tuning und beschleunigten die Konvergenz.
- Visualisierung: Das Visualisierungs-Package ermöglicht sofortiges Feedback zu Gewichten und Biases während der Evolution.