Regulierung? Orthogonalisierung! Kompakte Netzwerke verbessern


Während andere Unternehmen über die Fernverwaltung des Teams diskutieren, teilen wir bei Smart Engines weiterhin unseren Technologie-Stack mit Ihnen. Heute über die Optimierung neuronaler Netze. Es ist äußerst schwierig, ein Erkennungssystem auf der Basis neuronaler Netze zu erstellen, das auf Smartphones und anderen Mobilgeräten schnell funktioniert. Noch schwieriger ist es, sicherzustellen, dass die Qualität hoch ist. In diesem Artikel werden wir über eine einfache Methode zur Regularisierung neuronaler Netze sprechen, die wir in Smart Engines verwenden, um die Qualität "mobiler" Netze mit einer kleinen Anzahl von Parametern zu verbessern. Die Idee des Verfahrens basiert auf einer allmählichen Abnahme der linearen Abhängigkeit der Filter in den Faltungsschichten während des Trainings, wodurch jedes Neuron effizienter arbeitet und daher die Generalisierungsfähigkeit des Modells verbessert wird.Dazu präsentieren wir Filter in Form eindimensionaler Vektoren und orthogonalisieren ein Paar mit der längsten Projektionslänge aufeinander.

Beim Entwurf der meisten modernen neuronalen Netze wird davon ausgegangen, dass sie irgendwo auf dem Server ausgeführt werden und die Daten für die Verarbeitung über den Client auf einem PC oder einem mobilen Gerät übertragen werden. Dieser Ansatz ist jedoch nicht akzeptabel, wenn es um die Sicherheit personenbezogener Daten geht, die Sie nicht an einen anderen Ort übertragen möchten (z. B. ein Passfoto oder eine Bankkarte zur Erkennung). Glücklicherweise verfügen mobile Geräte heute über eine ausreichende Kapazität, um neuronale Netze zu betreiben, sodass Sie das Senden von Daten an Dritte vermeiden können. Eine andere Sache ist, dass diese Netzwerke klein sein und eine kleine Anzahl von Operationen enthalten sollten, um die Geduld des Benutzers nicht zu testen. Solche Bedingungen schränken die maximal erreichbare Qualität ihrer Arbeit ein.und wie man leichtgewichtige Netzwerke verbessert, ohne die Laufzeit zu beeinträchtigen, ist eine offene Frage. Um dies zu reflektieren, haben wir eine neue Methode zur Regularisierung in neuronalen Netzen entwickelt, die sich auf kompakte Netze konzentriert und in der Orthogonalisierung von Faltungsfiltern besteht.

Der Beitrag ist eine Kurzversion des Berichts "Convolutional Neural Network Weight Regularization via Orthogonalization", der im November 2019 auf der internationalen Konferenz ICMV 2019 in Amsterdam, Niederlande, vorgestellt wurde.

Die Idee der Regularisierung mittels Orthogonalisierung


Da sich die vorgeschlagene Methode auf die Regularisierung bezieht, erinnern wir uns zunächst kurz daran, was es ist. Die Regularisierung besteht darin, dem Modell einige Einschränkungen aufzuerlegen, die auf unseren Vorstellungen darüber beruhen, wie die Aufgabe gelöst werden soll. Infolgedessen wird die Generalisierungsfähigkeit des Netzwerks erhöht. Zum Beispiel trägt die L1-Regularisierung dazu bei, einen Teil des Gleichgewichts auf Null zu setzen, indem das Netzwerk entladen wird, L2 - Koeffizienten in kleinen Zahlen hält, Dropout die Abhängigkeit einzelner Neuronen beseitigt usw. Diese Methoden sind ein wesentlicher Bestandteil des Lernprozesses vieler moderner Netzwerke, insbesondere wenn sie eine große Anzahl von Parametern enthalten. Durch die Regularisierung können Sie mit Umschulungen ziemlich gut umgehen.

Nun zurück zu unserer Methode. Wir machen sofort einen Vorbehalt, dass wir zunächst das Problem der Klassifizierung von Bildern mit einem Faltungsnetzwerk betrachten. Die Annahme, auf deren Grundlage wir zur Verwendung der Orthogonalisierung gekommen sind, lautet wie folgt: Wenn das Netzwerk in seinen Ressourcen für das Konzept von Mustern in Daten äußerst begrenzt ist, muss jedes Neuron in ihm so effizient wie möglich arbeiten und die ihm streng zugewiesene Funktion ausführen. Mit anderen Worten, so dass solche Merkmale „verbunden“ werden, die kein anderes Neuron erkennen kann. Wir lösen dieses Problem, indem wir die lineare Beziehung zwischen den Neuronengewichtsvektoren während des Trainings schrittweise reduzieren. Zu diesem Zweck haben wir den klassischen Orthogonalisierungsalgorithmus modifiziert und an die Realitäten des Lernprozesses angepasst.

Faltungsfilterorthogonalisierung


Definieren Sie die Faltungsschichtfilter als einen Satz von Vektoren , wobei c der Index der Faltungsschicht und N die Anzahl der Filter darin ist. Nachdem die Gewichte während der Rückausbreitung des Fehlers aktualisiert wurden, suchen wir in jeder einzelnen Faltungsschicht nach einem Vektorpaar mit einer maximalen Projektionslänge übereinander:



Die Projektion des Vektors f g auf f k kann berechnet werden als . Um die Filter f a und f b zu orthogonalisieren , ersetzen wir dann den ersten Schritt des Gram-Schmidt-Algorithmus durch die



folgende Formel:



wobei η die Lerngeschwindigkeit und Würze istOrthogonalisierungskoeffizient, dessen Werte auf dem Intervall liegen [0.0, 1.0]. Die Einführung des Orthogonalisierungskoeffizienten beruht auf der Tatsache, dass die „sofortige“ Orthogonalisierung von Filtern den Lernprozess stark beeinträchtigt und die systematischen Änderungen der Gewichte gegenüber früheren Iterationen negiert. Kleine Würzewerte bewahren die Dynamik des Lernens und tragen zu einer gleichmäßigen Abnahme der linearen Beziehung zwischen den Filtern in jeder Schicht separat bei. Wir stellen noch einmal einen wichtigen Punkt in der Methode fest: In einer Iteration modifizieren wir nur einen Vektor, um den Optimierungsalgorithmus nicht zu beschädigen.


Feige. Visualisierung einer Iteration.

Wir betrachten nur die Orthogonalisierung von Faltungsfiltern, da in modernen neuronalen Netzen Faltungsschichten einen großen Teil der Architektur ausmachen. Der Algorithmus lässt sich jedoch leicht auf die Gewichte von Neuronen in vollständig verbundenen Schichten verallgemeinern.

Experimente


Wir gehen von der Theorie zur Praxis über. Für Experimente haben wir uns entschieden, die 2 beliebtesten Datensätze zur Bewertung neuronaler Netze im Bereich Computer Vision zu verwenden - MNIST (Klassifizierung von Bildern handgeschriebener Zahlen) und CIFAR10 (Fotos von 10 Klassen - Boote, Lastwagen, Pferde usw.).

Da wir davon ausgehen, dass die Orthogonalisierung hauptsächlich für kompakte Netzwerke nützlich ist, haben wir eine LeNet-ähnliche Architektur in drei Modifikationen verwendet, die sich in der Anzahl der Filter in Faltungsschichten voneinander unterscheiden. Die Architektur unseres Netzwerks, die der Einfachheit halber als LeNet 1.0 bezeichnet wird, ist in Tabelle 1 dargestellt. Die daraus abgeleiteten LeNet 2.0- und LeNet 3.5-Architekturen unterscheiden sich durch eine große Anzahl von Filtern in Faltungsschichten, 2- bzw. 3,5-mal.

Bei der Auswahl der Aktivierungsfunktion haben wir bei ReLU nicht nur angehalten, weil dies die beliebteste und rechnerisch effizienteste Funktion ist (wir erinnern Sie daran, dass es sich immer noch um schnelle Netzwerke handelt). Tatsache ist, dass die Verwendung nicht stückweise linearer Funktionen den Effekt der Orthogonalisierung negiert: Beispielsweise verzerrt die hyperbolische Tangente die Eingabevektoren stark, da sie in Regionen nahe der Sättigung eine ausgeprägte Nichtlinearität aufweist.

Tabelle 1. In den Experimenten verwendete LeNet 1.0-Netzwerkarchitektur.
Schichten
#Eine ArtParameter
Aktivierungsfunktion
1konv8 Filter 3x3, Schritt 1x1, keine PolsterungRelu
2konv16 Filter 5x5, Schritt 2x2, Polsterung 2x2Relu
3konv16 Filter 3x3, Schritt 1x1, Polsterung 1x1Relu
4konv32 Filter 5x5, Schritt 2x2, Polsterung 2x2Relu
5konv32 Filter 3x3, Schritt 1x1, Polsterung 1x1Relu
6konv32 Filter 3x3, Schritt 1x1, Polsterung 1x1Relu
7voll verbunden10 NeuronenSoftmax

Wir versuchten 3 Werte der Orthogonalisierung Koeffizienten Würze : 0,01, 0,05, 0,1. Alle Experimente wurden 10 - mal durchgeführt, und die Ergebnisse wurden gemittelt (Standardabweichung ( STD ) für die Fehlerrate ist in der Tabelle mit den Ergebnissen gezeigt). Wir haben auch berechnet, um wie viel Prozent die Anzahl der Fehler ( Nutzen ) abgenommen hat .

Die experimentellen Ergebnisse bestätigten, dass die Verbesserung durch Orthogonalisierung umso größer ist, je kleiner die Parameter im Netzwerk sind (Tabellen 2 und 3). Wir haben auch ein interessantes Ergebnis erhalten, dass die Verwendung der Orthogonalisierung bei „schweren“ Netzwerken zu einer schlechten Qualität führt.

Tabelle 2. Versuchsergebnisse für MNIST
MnistLeNet 1.0 (52k Parameter)LeNet 2.0 (179.000 Parameter)LeNet 3.5 (378.000 Parameter)
FehlerratestdVorteilFehlerratestdVorteilFehlerratestdVorteil
Grundlinie0,402%0,033- -0,366%0,026- -0,361%0,028- -
Würze = 0,010,379%0,0275,72%0,355%0,013,01%0,359%0,0260,55%
Würze = 0,050,36%0,02210,45%0,354%0,0183,28%0,356%0,0341,39%
Würze = 0,10,368%0,0158,46%3,53%0,0243,55%0,353%0,0182,22%

Tabelle 3. Versuchsergebnisse für CIFAR10
Cifar10LeNet 1.0 (52k Parameter)LeNet 2.0 (179.000 Parameter)LeNet 3.5 (378.000 Parameter)
FehlerratestdVorteilFehlerratestdVorteilFehlerratestdVorteil
Grundlinie22,09%0,65- -18,49%1.01- -17,08%0,47- -
Würze = 0,0121,56%0,862,38%18,14%0,651,89%17,33%0,49-1,46%
Würze = 0,0521,59%0,482,24%18,30%0,571,03%17,59%0,31-3,02%
Würze = 0,121,54%0,412,48%18,15%0,531,85%17,53%0,4-2,63%

LeNet-Netzwerke sind jedoch heutzutage selten und es werden normalerweise modernere Modelle verwendet. Daher haben wir auch mit dem ResNet-Modell experimentiert, das durch die Anzahl der Filter, die aus 25 Faltungsschichten bestehen, erleichtert wird. Die ersten 7 Schichten enthielten 4 Filter, die nächsten 12 mal 8 Filter und die letzten 6 mal 16 Filter. Die Gesamtzahl der trainierten Parameter dieses Modells betrug 21.000. Das Ergebnis war ähnlich: Die Orthogonalisierung verbessert die Qualität des Netzwerks.


Feige. Vergleich der ResNet-Lerndynamik bei MNIST mit und ohne Orthogonalisierung.

Trotz der erzielten Qualitätsverbesserungen müssen Sie sehen, welche Änderungen an den Filtern selbst vorgenommen wurden, um volles Vertrauen in den korrekten Betrieb der vorgeschlagenen Methode zu haben. Hierzu wurden die Werte der maximalen Filterprojektionslänge in 2, 12 und 25 ResNet-Schichten für alle Trainingszeiten abgeschrieben. Die Dynamik der Änderungen geben wir in den folgenden Diagrammen an. Das Wichtigste dabei ist, dass in allen Schichten die lineare Abhängigkeit der Filter abnimmt.


Feige. Dynamik von Änderungen der maximalen Projektionslänge von Filtern in einer Faltungsschicht am Beispiel von ResNet.

Orthogonalisierungsbasierte Regularisierung ist extrem einfach zu implementieren: Bei Python mit dem Numpy-Modul werden weniger als 10 Codezeilen benötigt. Gleichzeitig verlangsamt es das Training nicht und ist mit anderen Regularisierungsmethoden kompatibel.

Fazit


Trotz ihrer Einfachheit trägt die Orthogonalisierung dazu bei, die Qualität von „leichten“ Netzwerken zu verbessern, die durch Größe und Ausführungsgeschwindigkeit eingeschränkt sind. Angesichts der zunehmenden Verbreitung mobiler Technologien treten solche Einschränkungen immer häufiger auf: Ein neuronales Netzwerk sollte nicht irgendwo in der Cloud ausgeführt werden, sondern direkt auf einem Gerät mit einem schwachen Prozessor und wenig Speicher. Das Training solcher Netzwerke widerspricht den modernen Trends in der neuronalen Netzwerkwissenschaft, in denen Ensembles von Modellen mit Millionen trainierter Parameter, die kein Smartphone ziehen kann, aktiv verwendet werden. Aus diesem Grund ist es im Rahmen der Lösung industrieller Probleme äußerst wichtig, Methoden zur Verbesserung der Qualität einfacher und schneller Netzwerke zu erfinden und zu entwickeln.

Liste der verwendeten Quellen


Alexander V. Gayer, Alexander V. Sheshkus, "Faltungsneurales Netzwerk gewichtet Regularisierung durch Orthogonalisierung", Proc. SPIE 11433, Zwölfte Internationale Konferenz für Bildverarbeitung (ICMV 2019), 1143326 (31. Januar 2020); https://doi.org/10.1117/12.2559346

All Articles