Destillation und Pruning sind zwei wichtige Verfahren zur Komprimierung neuronaler Netze. Sie können die Parameterzahl und den Rechenaufwand wirksam verringern und damit Ausführungseffizienz und Leistung verbessern. Im Folgenden werden beide Verfahren näher erläutert.
Modelldestillation
Bei der Modelldestillation wird ein kleines Modell darauf trainiert, die Vorhersagen eines großen Modells nachzubilden. Das große Modell heißt „Lehrermodell“, das kleine „Schülermodell“. Der Lehrer hat meist mehr Parameter und eine höhere Komplexität und kann sich daher besser an Trainings- und Testdaten anpassen. Der Schüler lernt, das Vorhersageverhalten des Lehrers zu imitieren, um mit einem kleineren Modell eine ähnliche Leistung zu erreichen.
Die Destillation erfolgt konkret in diesen Schritten:
1. Lehrermodell trainieren: Ein großes tiefes neuronales Netz wird mit üblichen Verfahren wie Backpropagation und stochastischem Gradientenabstieg trainiert, damit es auf den Trainingsdaten gute Ergebnisse liefert.
2. Soft Labels erzeugen: Das Lehrermodell sagt die Trainingsdaten voraus; seine Ausgaben dienen als Soft Labels. Dieses Konzept baut auf herkömmlichen harten, One-Hot-codierten Labels auf. Es liefert kontinuierlichere Informationen und kann Beziehungen zwischen Klassen besser beschreiben.
3. Schülermodell trainieren: Die Soft Labels dienen als Trainingsziel für ein kleines tiefes neuronales Netz, das auf den Trainingsdaten gute Ergebnisse erzielen soll. Seine Ein- und Ausgaben entsprechen denen des Lehrers, während Parameter und Struktur einfacher und kompakter sind.
Der Vorteil der Destillation besteht darin, dass kleine Modelle ihre Leistung bei geringerem Rechenaufwand und Speicherbedarf beibehalten können.Soft Labels liefern außerdem kontinuierlichere Informationen und helfen dem Schüler, Beziehungen zwischen Klassen besser zu lernen. Modelldestillation wird unter anderem in der Verarbeitung natürlicher Sprache, der Computer Vision und der Spracherkennung häufig eingesetzt.
Modell-Pruning
Beim Pruning wird ein neuronales Netz durch das Entfernen unnötiger Neuronen und Verbindungen komprimiert. Solche Netze besitzen meist viele Parameter und redundante Verbindungen, die möglicherweise wenig zur Leistung beitragen, den Rechenaufwand und Speicherbedarf aber erheblich erhöhen. Durch ihre Entfernung lassen sich Modellgröße und Rechenaufwand reduzieren, während die Leistung erhalten bleibt.
Das Pruning erfolgt in diesen Schritten:
1. Ausgangsmodell trainieren: Ein großes tiefes neuronales Netz wird mit üblichen Verfahren wie Backpropagation und stochastischem Gradientenabstieg auf gute Ergebnisse mit den Trainingsdaten trainiert.
2. Wichtigkeit der Neuronen bewerten: Verfahren wie L1-Regularisierung, Hesse-Matrix oder Taylor-Entwicklung bewerten den Beitrag jedes Neurons zur endgültigen Ausgabe. Neuronen mit geringer Bedeutung können als überflüssig gelten.
3. Unnötige Neuronen und Verbindungen entsprechend ihrer Wichtigkeit entfernen. Dazu können ihre Gewichte auf null gesetzt oder die jeweiligen Neuronen und Verbindungen gelöscht werden.
Der Vorteil des Prunings liegt darin, Modellgröße und Rechenaufwand wirksam zu reduzieren und so die Leistung zu verbessern.Pruning kann außerdem Überanpassung verringern und die Generalisierungsfähigkeit verbessern. Auch dieses Verfahren wird häufig in der Verarbeitung natürlicher Sprache, der Computer Vision und der Spracherkennung eingesetzt.
Obwohl Destillation und Pruning beide neuronale Netze komprimieren, unterscheiden sich ihre Vorgehensweisen und Ziele etwas. Bei der Destillation steht das Trainieren des Schülers anhand des Vorhersageverhaltens des Lehrers im Vordergrund; beim Pruning die Entfernung überflüssiger Parameter und Verbindungen.