Deep Neural Networks (DNNs) sind als Hilfsmittel für die Bearbeitung von Aufgabenstellungen in der Bildklassifizierung, Texterkennung oder Sprachtranskription nicht mehr wegzudenken. In der Praxis müssen die verwendeten Modelle aber stets auf die konkrete Herausforderung hin angepasst werden, um bestmögliche Resultate zu liefern. Unter dem Namen MorphNet hat Google bereits im vergangenen Jahr einen neuen Ansatz vorgestellt, mit dem sich die Struktur eines vorhandenen DNN automatisiert Schritt für Schritt weiterentwickeln und optimieren lässt. Nun gibt Google die TensorFlow-Implementierung von MorphNet als Open Source für die Community frei.

Modelloptimierung durch Targeted Regularization

MorphNet unterstützt die Modelloptimierung unter anderen im Hinblick auf Skalierbarkeit und Portabilität. Im Zuge eines iterativen Prozesses von Schrumpf- und Expansionsphasen lassen sich so nicht nur die Trainingskosten reduzieren, sondern die Modelle auch für andere Aufgabenstellungen erneut heranziehen und neu trainieren. Eine der Kernfunktionen von MorphNet ist aber die zielgerichtete Regularisierung (Targeted Regularization), bei der relevante Parameter wie FLOPS per Inferenz oder die Modellgröße auf die angepeilte Aufgabenstellung hin optimiert werden. Die nachfolgende Grafik verdeutlicht die Vorgehensweise beispielhaft anhand des ResNet-101-Modells, das mit dem JFT-Datensatz trainiert wurde.

MorphNet Targeted Regularization: Die Rechteckbreite ist proportional zur Anzahl der Kanäle in der Schicht. Der violette Balken am unteren Rand ist die Eingabeschicht. Links: Basis-Netzwerk, das als Eingang für MorphNet verwendet wird. Mitte: Ausgabe mit FLOP-Regulierer. Rechts: Ausgabe mit Größenanpassung. (Bild: Google)

Topology Morphing

Beim sogenannten Topology Morphing entfernt MorphNet gegebenenfalls ganze Zweige aus einem Netzwerk. Das ergibt sich beispielsweise, wenn bei der Optimierung der Neuronen pro Schicht der Algorithmus die Neuronenzahl auf Null reduzieren sollte. Im Fall von ResNet-Modellen entfernt MorphNet dann Restverbindungen, in Modellen vom Typ Inception können komplette parallele Stränge betroffen sein.

Abhängig von der Zahl der durchlaufenen Optimierungszyklen lassen sich die Modelle mit MorphNet entweder im Hinblick auf die FLOP-bezogenen Kosten verbessern oder auf höhere Genauigkeit trimmen. Google selbst setzt MorphNet vor allem bei der Bildklassifizierung ein, um DNNs bei gleichbleibender Qualität zu verkleinern beziehungsweise mit geringeren FLOP-Kosten betreiben zu können. Weitere Details zu MorphNet finden sich im Blogbeitrag, die technischen Hintergründe beschreibt ein Artikel (PDF-Download). Wer MorphNet ausprobieren möchte, findet die TensorFlow-Implementierung auf der GitHub-Projektsite zum Herunterladen. (map)