AlexNet ist eine Convolutional-Neuronale-Netzwerk-Architektur zur Bildklassifikation, die 2012 von Alex Krizhevsky, Ilya Sutskever und Geoffrey Hinton an der University of Toronto entwickelt wurde. Sie klassifiziert Bilder in 1.000 verschiedene Objektkategorien und gilt weithin als die erste groß angelegte Demonstration tiefer convolutional neuronaler Netze in der visuellen Erkennung. Das Modell enthält 60 Millionen Parameter und 650.000 Neuronen, und seine Tiefe war entscheidend für seine hohe Leistung, die durch den Einsatz von Grafikprozessoren (GPUs) während des Trainings ermöglicht wurde.
Die drei Forscher bildeten das Team SuperVision und reichten AlexNet am 30. September 2012 bei der ImageNet Large Scale Visual Recognition Challenge (ILSVRC) ein. Das Netzwerk erreichte eine Top-5-Fehlerrate von 15,3 % und gewann den Wettbewerb mit einem Vorsprung von mehr als 10,8 % gegenüber dem Zweitplatzierten. Dieses Ergebnis war ein Wendepunkt für Deep Learning und beeinflusste eine große Anzahl nachfolgender Arbeiten in der Computer Vision und der künstlichen Intelligenz.
Architektur
AlexNet enthält acht Schichten: Die ersten fünf sind convolutional Schichten, einige 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 es nicht in den 3 GB VRAM einer einzelnen Nvidia GTX 580 passte. Die Struktur kann als (CONV → RN → MP)2 → (CONV3 → MP) → (FC → DO)2 → Linear → softmax geschrieben werden, wobei CONV eine convolutional Schicht mit ReLU-Aktivierung ist, RN lokale Antwortnormalisierung, MP Max-Pooling, FC eine vollständig verbundene Schicht mit ReLU, Linear eine vollständig verbundene Schicht ohne Aktivierung und DO Dropout.
Bemerkenswerterweise sind die convolutional Schichten 3, 4 und 5 ohne Pooling oder Normalisierung verbunden. AlexNet verwendete die nicht-sättigende ReLU-Aktivierungsfunktion, die besser trainierte als tanh und sigmoid. Diese Wahl war ein Schlüsselfaktor für seine Trainingseffizienz.
Training
Der ImageNet-Trainingssatz enthielt 1,2 Millionen Bilder. Das Modell wurde über 90 Epochen über fünf bis sechs Tage mit zwei Nvidia GTX 580 GPUs (je 3 GB) trainiert, die eine theoretische Leistung von 1,581 TFLOPS in Float32 haben und bei ihrer Veröffentlichung 500 US-Dollar kosteten. Jeder Vorwärtsdurchlauf erforderte etwa 1,43 GFLOPs, sodass die beiden GPUs zusammen theoretisch über 2.200 Vorwärtsdurchläufe pro Sekunde unter idealen Bedingungen durchführen konnten.
Die Datensatzbilder wurden im JPEG-Format gespeichert und belegten 27 GB Speicherplatz. Das neuronale Netzwerk verwendete 2 GB RAM auf jeder GPU und etwa 5 GB Systemspeicher während des Trainings. Die GPUs übernahmen das Training, während die CPUs Bilder von der Festplatte luden und Datenaugmentation durchführten.
AlexNet wurde mit Momentum-Gradientenabstieg mit einer Batchgröße von 128 Beispielen, Momentum von 0,9 und Gewichtsabfall von 0,0005 trainiert. Die Lernrate startete bei 10−2 und wurde manuell um den Faktor 10 verringert, wann immer der Validierungsfehler zu stagnieren schien, und wurde dreimal reduziert, um bei 10−5 zu enden. Zwei Formen der Datenaugmentation wurden on-the-fly auf der CPU berechnet, was sie "rechnerisch kostenlos" machte: Erstens wurde jedes Bild so skaliert, dass seine kürzere Seite 256 Pixel betrug, dann wurde der zentrale 256×256-Patch zugeschnitten und normalisiert; zweitens wurden zufällige 224×224-Patches (und ihre horizontalen Spiegelungen) extrahiert, was die Trainingssatzgröße um das 2048-fache erhöhte. Zusätzlich wurden die RGB-Werte zufällig entlang der Hauptrichtungen der Pixelwerte verschoben.
Die Auflösung 224×224 wurde gewählt, weil 256 - 16 - 16 = 224, was bedeutet, dass das Einrahmen von 16 Pixeln auf jeder Seite eines 256×256-Bildes ein 224×224-Bild ergibt. AlexNet verwendete lokale Antwortnormalisierung und Dropout-Regularisierung mit einer Drop-Wahrscheinlichkeit von 0,5. Alle Gewichte wurden als Gauß-Verteilungen mit Mittelwert 0 und Standardabweichung 0,01 initialisiert, und die Biase in den convolutional Schichten 2, 4, 5 und allen vollständig verbundenen Schichten wurden auf konstant 1 initialisiert, um das Problem des sterbenden ReLU zu vermeiden.
Zur Testzeit wird ein Bild so skaliert, dass seine kürzere Seite 256 beträgt, der zentrale 256×256-Patch wird zugeschnitten, und dann werden fünf 224×224-Patches (vier Ecken und Mitte) plus ihre horizontalen Spiegelungen berechnet, was 10 Patches ergibt. Die vorhergesagten Wahrscheinlichkeiten des Netzwerks auf allen 10 Patches werden gemittelt, um die endgültige Vorhersage zu erzeugen.
ImageNet-Wettbewerb
Die Version, die für den ImageNet-Wettbewerb 2012 verwendet wurde, war ein Ensemble aus sieben AlexNets. Fünf AlexNets der Standardarchitektur wurden auf dem ILSVRC-2012-Trainingssatz trainiert. Zwei Varianten von AlexNets wurden ebenfalls trainiert, jede mit einer zusätzlichen convolutional Schicht über der letzten Pooling-Schicht, zuerst auf der gesamten ImageNet-Fall-2011-Veröffentlichung (15 Millionen Bilder in 22K Kategorien) und dann auf dem ILSVRC-2012-Trainingssatz feinabgestimmt. Das endgültige System mittelte die vorhergesagten Wahrscheinlichkeiten aller sieben Netzwerke.
Geschichte
Frühere Arbeiten
1980 schlug Kunihiko Fukushima ein frühes CNN namens Neocognitron vor, das durch unüberwachtes Lernen trainiert wurde. LeNet-5, entwickelt von Yann LeCun et al. im Jahr 1989, verwendete überwachtes Lernen mit Backpropagation und hatte eine Architektur, die im Wesentlichen dieselbe wie AlexNet in kleinem Maßstab war. Max-Pooling wurde 1990 für Sprachverarbeitung und erstmals 1992 für Bildverarbeitung im Cresceptron verwendet.
Während der 2000er Jahre, als sich die GPU-Hardware verbesserte, passten Forscher GPUs für allgemeine Zwecke an, einschließlich des Trainings neuronaler Netzwerke. 2006 trainierte K. Chellapilla et al. ein CNN auf einer GPU, das viermal schneller war als eine äquivalente CPU-Implementierung. 2009 trainierte Raina et al. 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. bei IDSIA im Jahr 2011 war 60-mal schneller als eine äquivalente CPU-Implementierung, und zwischen dem 15. Mai 2011 und dem 10. September 2012 gewann ihr CNN vier Bildwettbewerbe und erzielte State-of-the-Art-Ergebnisse auf mehreren Datenbanken. Laut dem AlexNet-Papier ist Cireșans früheres Netzwerk "etwas ähnlich" zu AlexNet, und beide wurden mit CUDA geschrieben, um auf GPUs zu laufen.
Computer Vision
Während des Zeitraums 1990–2010 waren neuronale Netzwerke nicht besser als andere Methoden des maschinellen Lernens wie Kernel-Regression und Support-Vektor-Maschinen. AlexNets Erfolg im Jahr 2012 demonstrierte die Leistungsfähigkeit des Deep Learning für die Computer Vision, was zur weit verbreiteten Übernahme von CNNs und zur Entwicklung nachfolgender Architekturen wie Residualnetzwerken führte. Es förderte auch das Interesse an GPU-basiertem Rechnen für maschinelles Lernen und trug zum Aufstieg des Deep Learning als dominierenden Ansatz in der KI bei.