AlexNet ist eine Architektur für faltende neuronale Netze, die für Bildklassifizierungsaufgaben entwickelt wurde und insbesondere durch ihre Leistung in der ImageNet Large Scale Visual Recognition Challenge (ILSVRC) Bekanntheit erlangte. Sie klassifiziert Bilder in 1.000 verschiedene Objektkategorien und gilt als die erste weithin anerkannte Anwendung tiefer faltender Netze in der großflächigen visuellen Erkennung.
Entwickelt im Jahr 2012 von Alex Krizhevsky in Zusammenarbeit mit Ilya Sutskever und seinem Doktorvater Geoffrey Hinton an der Universität von Toronto, enthält das Modell 60 Millionen Parameter und 650.000 Neuronen. Das wichtigste Ergebnis des ursprünglichen Papers war, dass die Tiefe des Modells für seine hohe Leistung entscheidend war, was rechenintensiv war, aber durch die Nutzung von Grafikprozessoren (GPUs) während des Trainings machbar wurde.
Die drei bildeten das Team SuperVision und reichten AlexNet am 30. September 2012 bei der ImageNet Large Scale Visual Recognition Challenge ein. Das Netzwerk erreichte eine Top-5-Fehlerrate von 15,3 % und gewann damit den Wettbewerb, mehr als 10,8 % über dem Zweitplatzierten. Die Architektur beeinflusste eine große Anzahl nachfolgender Arbeiten im Bereich Deep learning, insbesondere bei der Anwendung von neuronalen Netzen auf Computer Vision.
Architektur
AlexNet enthält acht Schichten: Die ersten fünf sind faltende Schichten, einige davon gefolgt von Max-Pooling-Schichten, und die letzten drei sind vollständig verbundene Schichten. Das Netzwerk ist, mit Ausnahme der letzten Schicht, in zwei Kopien aufgeteilt, die jeweils auf einer GPU laufen, da das Netzwerk nicht in den VRAM einer einzelnen Nvidia GTX 580 3GB GPU passte. Die gesamte Struktur kann als (CONV → RN → MP)2 → (CONV3 → MP) → (FC → DO)2 → Linear → softmax geschrieben werden, wobei CONV = faltende Schicht (mit ReLU-Aktivierung), RN = lokale Antwortnormalisierung, MP = Max-Pooling, FC = vollständig verbundene Schicht (mit ReLU-Aktivierung), Linear = vollständig verbundene Schicht (ohne Aktivierung) und DO = Dropout bedeutet.
Bemerkenswerterweise waren die faltenden Schichten 3, 4 und 5 ohne Pooling oder Normalisierung miteinander verbunden. Es verwendete die nicht sättigende ReLU-Aktivierungsfunktion, die besser trainierte als tanh und sigmoid. Diese Wahl der Aktivierungsfunktion war eine wichtige Abweichung von früheren Praktiken und trug zu einer schnelleren Trainingskonvergenz bei.
Training
Der ImageNet-Trainingssatz enthielt 1,2 Millionen Bilder. Das Modell wurde über 90 Epochen über einen Zeitraum von fünf bis sechs Tagen mit zwei Nvidia GTX 580 GPUs (je 3GB) trainiert. Diese GPUs haben eine theoretische Leistung von 1,581 TFLOPS in float32 und kosteten bei ihrer Veröffentlichung 500 US-Dollar. Jeder Vorwärtsdurchlauf von AlexNet erforderte ungefähr 1,43 GFLOPs. Basierend auf diesen Werten waren die beiden GPUs zusammen theoretisch in der Lage, unter idealen Bedingungen über 2.200 Vorwärtsdurchläufe pro Sekunde durchzuführen.
Die Datenbilder wurden im JPEG-Format gespeichert. Sie belegten 27GB Speicherplatz. Das neuronale Netzwerk belegte 2GB RAM auf jeder GPU und etwa 5GB System-RAM während des Trainings. Die GPUs waren für das Training verantwortlich, während die CPUs für das Laden von Bildern von der Festplatte und die Datenaugmentierung der Bilder zuständig waren.
AlexNet wurde mit Momentum-Gradientenabstieg mit einer Batchgröße von 128 Beispielen, einem Momentum von 0,9 und einem Gewichtsabfall von 0,0005 trainiert. Die Lernrate begann bei 10−2 und wurde manuell um den Faktor 10 verringert, wann immer der Validierungsfehler aufhörte zu sinken. Sie wurde während des Trainings dreimal reduziert und endete bei 10−5.
Es verwendete zwei Formen der Data Augmentation, beide on-the-fly auf der CPU berechnet, also "rechnerisch kostenlos":
- Jedes Bild von ImageNet wurde zuerst skaliert, sodass seine kürzere Seite eine Länge von 256 hatte. Dann wurde der zentrale 256×256-Ausschnitt herausgeschnitten und normalisiert (die Pixelwerte werden so geteilt, dass sie zwischen 0 und 1 fallen, dann wird [0,485, 0,456, 0,406] subtrahiert und dann durch [0,229, 0,224, 0,225] geteilt. Dies sind die Mittelwerte und Standardabweichungen für ImageNet, sodass die Eingabedaten weiß gemacht werden).
- Extrahieren zufälliger 224×224-Ausschnitte (und ihrer horizontalen Spiegelungen) aus dem 256×256-Ausschnitt. Dies vergrößert die Größe des Trainingssatzes um das 2048-fache.
- Zufälliges Verschieben der RGB-Werte jedes Bildes entlang der drei Hauptrichtungen der RGB-Werte seiner Pixel.
Die Auflösung 224×224 wurde gewählt, weil 256 - 16 - 16 = 224, was bedeutet, dass bei einem 256×256-Bild das Einrahmen einer Breite von 16 auf seinen 4 Seiten zu einem 224×224-Bild führt.
Es verwendete lokale Antwortnormalisierung und Dropout-Regularisierung mit einer Drop-Wahrscheinlichkeit von 0,5. Alle Gewichte wurden als Gaußsche Verteilungen mit Mittelwert 0 und Standardabweichung 0,01 initialisiert. Die Bias in den faltenden Schichten 2, 4, 5 und allen vollständig verbundenen Schichten wurden auf die Konstante 1 initialisiert, um das Problem des sterbenden ReLU zu vermeiden.
Beim Testen, um ein trainiertes AlexNet zur Vorhersage der Klasse eines Bildes zu verwenden, wird das Bild zuerst skaliert, sodass seine kürzere Seite eine Länge von 256 hat. Dann wird der zentrale 256×256-Ausschnitt herausgeschnitten. Dann werden die fünf 224×224-Ausschnitte (die vier Eckausschnitte und der Mittelausschnitt) sowie ihre horizontalen Spiegelungen berechnet, insgesamt 10 Ausschnitte. Die vorhergesagten Wahrscheinlichkeiten des Netzwerks für alle 10 Ausschnitte werden gemittelt, und das ist die endgültige vorhergesagte Wahrscheinlichkeit.
ImageNet-Wettbewerb
Die Version, die sie für den ImageNet-Wettbewerb 2012 verwendeten, war ein Ensemble von 7 AlexNets. Konkret trainierten sie 5 AlexNets der zuvor beschriebenen Architektur (mit 5 CONV-Schichten) auf dem ILSVRC-2012-Trainingssatz (1,2 Millionen Bilder). Sie trainierten auch 2 Varianten von AlexNets, die durch Hinzufügen einer zusätzlichen CONV-Schicht über der letzten Pooling-Schicht erhalten wurden. Diese wurden trainiert, indem zuerst auf der gesamten ImageNet-Fall-2011-Veröffentlichung (15 Millionen Bilder in 22K Kategorien) trainiert und dann auf dem ILSVRC-2012-Trainingssatz feinabgestimmt wurde. Das endgültige System aus 7 AlexNets wurde verwendet, indem ihre vorhergesagten Wahrscheinlichkeiten gemittelt wurden.
Geschichte
Frühere Arbeiten
Im Jahr 1980 schlug Kunihiko Fukushima ein frühes CNN namens Neocognitron vor. Es wurde mit einem unüberwachten Lernalgorithmus trainiert. Das LeNet-5 (Yann LeCun et al., 1989) wurde mit überwachtem Lernen mit dem Backpropagation-Algorithmus trainiert, mit einer Architektur, die im Wesentlichen dieselbe wie AlexNet in kleinem Maßstab ist.
Max-Pooling wurde 1990 für die Sprachverarbeitung verwendet (im Wesentlichen ein 1-dimensionales CNN) und für die Bildverarbeitung erstmals im Cresceptron von 1992 verwendet. In den 2000er Jahren, als sich die GPU-Hardware verbesserte, passten einige Forscher diese für allgemeine Berechnungen an, einschließlich des Trainings neuronaler Netze. (K. Chellapilla et al., 2006) trainierten ein CNN auf der GPU, das 4-mal schneller war als eine äquivalente CPU-Implementierung. (Raina et al 2009) trainierten ein tiefes Belief-Netzwerk mit 100 Millionen Parametern auf einer Nvidia GeForce GTX 280 mit bis zu 70-facher Beschleunigung gegenüber CPUs. Ein tiefes CNN von (Dan Cireșan et al., 2011) bei IDSIA war 60-mal schneller als eine äquivalente CPU-Implementierung. Zwischen dem 15. Mai 2011 und dem 10. September 2012 gewann ihr CNN vier Bildwettbewerbe und erreichte den Stand der Technik für mehrere Bilddatenbanken. Laut dem AlexNet-Paper ist Cireșans früheres Netz "etwas ähnlich". Beide wurden mit CUDA geschrieben, um auf der GPU zu laufen.
Computer Vision
Während des Zeitraums 1990–2010 waren neuronale Netze für viele visuelle Erkennungsaufgaben nicht besser als andere Machine learning-Methoden wie Kernel-Regression und Support-Vektor-Maschinen. Der Erfolg von AlexNet im Jahr 2012 zeigte, dass tiefe faltende Netze, wenn sie mit ausreichenden Daten und Rechenressourcen trainiert werden, handgefertigte merkmalsbasierte Ansätze mit großem Abstand übertreffen können. Dieses Ergebnis katalysierte eine Verschiebung im Bereich der Computer Vision hin zu Deep-Learning-Ansätzen, was zu schnellen Fortschritten bei der Objekterkennung, Bildsegmentierung und anderen visuellen Aufgaben führte.
Die Auswirkungen reichten über die akademische Welt hinaus. Die von AlexNet popularisierten Techniken, einschließlich GPU-basiertem Training, ReLU-Aktivierungen und Dropout-Regularisierung, wurden zu Standardkomponenten in nachfolgenden Architekturen. Viele spätere Modelle wie ResNet und U-Net bauten direkt auf dem Fundament auf, das AlexNet gelegt hatte. Das Paper wird häufig als Ausgangspunkt für die moderne Ära der Artificial intelligence zitiert und beeinflusste nicht nur Computer Vision, sondern auch die Verarbeitung natürlicher Sprache und andere Bereiche, die später Deep-Learning-Methoden übernahmen.