Tanner Lab GmbH

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.

Cover Image

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

  1. 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.

Netzwerkvisualisierung

  1. 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.