Kompression künstlicher neuronaler Netze
Masterarbeit,Studienarbeit
Im Rahmen des Projekts Transform and subband coding

Beschreibung

Künstliche neuronale Netze (KNNs) sind heutzutage in vielen Bereichen führend hinsichtlich vielfältiger Leistungsindikatoren. Aufgebaut sind KNNs aus einzelnen Schichten, welche über sogenannten Aktivierungsfunktionen zusammengeschaltet sind. Dadurch entstehen Verbindungen zwischen den einzelnen Elemente der Schichten, den Neuronen. Die Stärke dieser Verbindung wird durch die Größe des Gewichtes bestimmt, ein Wert der jeder Verbindung zugeordnet ist. Jenachdem welche Werte die Gewichte haben ergibt sich eine andere mathematische Funktion.

Mathematisch lässt sich zeigen, dass eine sehr große Klasse an Funktionen durch diese Art von Struktur darstellen lassen. Eine typische Methode ein KNNs zu trainieren, d.h. die Gewichte anzupassen, ist der Gradientenabstieg. Bei diesem wird der Gradient der sogenannten Verlustfunktion des neuronalen Netzes bezüglich der Gewichte gebildet und anschließend neue, bessere Werte der Gewichte berechnet. Ist dieser Gradient gleich Null, so wurde ein Extremum gefunden. Optimalerweise sollte dabei das globale Minimum der Verlustfunktion gefunden werden.

In vielen Anwendungsfällen ist es von Interesse ein neuronales Netz an einen mobilen Rechner, z.B. dargestellt durch ein Smartphone, zu senden. Ein wesentlicher Aspekt davon besteht in der Übertragung der Netzgewichte. Damit dies im Falle der drahtlosen Übertragung möglichst schnell und energiearm geschehen kann ist es notwendig das KNN zu komprimieren. Dabei werden üblicherweise die Gewichte des Netzes quantisiert und/oder geprunt, also aus dem Netz entfernt. Dadurch kann sich die Leistung des KNN deutlich verändern bzw. verschlechtern. Daher sollte diese Quantisierung möglichst so geschehen, dass die Funktion des KNN möglichst wenig beeinträchtigt ist.

Im Rahmen dieser Arbeit soll untersucht werden, ob durch Verwendung von Krümmungsinformationen der Verlustfunktion eine verbesserte Kompression von KNNs erreicht werden kann. Hierbei sollte die Änderung der Verlustfunktion über einen gewissen Bereich mit in das Training des Netzes einfließen.

Eine (nicht ganz aktuelle) Übersicht über das Thema ist z.B. in [1] zu finden.

Näheres erläutere ich gerne in einem Gespräch.

[1] https://arxiv.org/pdf/2006.03669.pdf

Voraussetzungen

  • Selbstständiges Arbeiten
  • Solide Mathematikkenntnisse
  • Solide Pythonkenntnisse
  • Grundkenntnisse Statistische Methoden der hilfreich

Ansprechpartner: Reemt Hinrichs