Sieć AlexNet wygrała w 2012 r. wyzwanie ImageNet LSVRC-2012 z ogromną przewagą (15,3% Versus 26,2% (drugie miejsce) błędów). W tym miejscu analizujemy subtelności inżynierii neuronów z pokrewnego papieru ImageNet Characterization with Profound Convolutional Neural Systems.

Cechy papieru

Użyj raczej Relu niż Tanh, aby włączyć nieliniowość. Przyspiesza on wielokrotnie prędkość z podobną precyzją.

Użyj dropout zamiast regularności, aby zarządzać overfittingiem. Tak czy inaczej, czas przygotowania jest pomnożony przez tempo porzucania 0,5.

Pulowanie pokrywy w celu zmniejszenia rozmiaru systemu. Zmniejsza to najlepszy wskaźnik błędów 1 i top-5 odpowiednio o 0,4% i 0,3%.

Inżynieria

Zawiera 5 warstw fałdowych i 3 całkowicie powiązane ze sobą warstwy. Relu nakłada się po bardzo fałdowej i całkowicie związanej z nią warstwie. Relu aplikuje się przed pierwszym i drugim rokiem całkowicie związanym. Wielkość obrazu w towarzyszącym wykresie architektury powinna wynosić 227 * 227, a nie 224 * 224, na co zwraca uwagę Andriej Karpathy w swoim słynnym CS231n Course. Co ciekawsze, rozmiar informacyjny to 224 * 224 z 2 amortyzatorami w wizji opalenizny pytetu. Szerokość i wysokość plonu powinna wynosić (224-11+4)/4 + 1=55,25! Wyjaśnieniem jest tu zastosowanie przez pytorch Conv2d administratora podłogi do powyższego wyniku, i zgodnie z tymi wytycznymi ostatnia amortyzacja nie jest brana pod uwagę.

https://miro.medium.com/max/1536/1*qyc21qM0oxWEuRaj-XJKcw.png

System ma 62,3 miliona parametrów i wymaga 1,1 miliarda jednostek obliczeniowych w zaliczce. Możemy również zaobserwować warstwy konwolucyjne, które stanowią 6% znacznej liczby parametrów, pochłaniają 95% kosztów obliczeń. To prowadzi do innego opracowania Alexa, który wykorzystuje ten komponent do poprawy wykonania. Zasadnicza myśl tego papieru jest taka, jak w przypadku, gdy jesteś zaintrygowany:

Duplikowanie warstw zwojów do różnych układów GPU; Przenoszenie całkowicie powiązanych ze sobą warstw do różnych układów GPU.

Nakładaj na każdy układ GPU (Information Parallel) jeden zespół przygotowujący informacje na warstwy typu convolutional layers.

Po osiągnięciu ostatniego postępu dla każdego układu GPU, należy wprowadzić konsekwencje warstw konwolucyjnych do rozpowszechnianych całkowicie powiązanych ze sobą warstw kumulujących się w klastrze (Model Parallel). Zbierz w klaster inklinacje backpropogate według grupy i zsynchronizuj obciążenia warstw konwolucyjnych.

Najwyraźniej wykorzystuje to, o czym mówiliśmy powyżej: warstwy spiralne mają kilka parametrów i wiązek obliczeń, a całkowicie powiązane warstwy są dokładnie odwrotne.

Przygotowanie

Przygotowanie systemu na dwóch układach GPU GTX 580 zajmuje 90 lat w ciągu pięciu lub sześciu dni. Wykorzystuje się SGD o współczynniku uczenia się 0,01, energii 0,9 i masie ciała 0,0005. Szybkość uczenia się jest dzielona przez 10 po osiągnięciu poziomów dokładności. Stopień nachylenia jest wielokrotnie zmniejszany podczas procedury przygotowania.

https://miro.medium.com/max/866/1*zRCEzN657yvGBXZGBoG2Jw.png