Kąt Andersona
Procesory GPU mogą być lepsze, a nie tylko szybsze, w szkoleniu głębokich sieci neuronowych

Badacze z Polski i Japonii, pracujący z Sony, znaleźli dowody na to, że systemy machine learning szkolone na procesorach GPU zamiast CPU mogą zawierać mniej błędów podczas procesu szkolenia i dawać lepsze wyniki, co sprzeciwia się powszechnemu zrozumieniu, że procesory GPU wykonują takie operacje tylko szybciej, a nie lepiej.
Badanie, zatytułowane Wpływ niepewności procesora GPU na szkolenie predykcyjnych głębokich sieci neuronowych, pochodzi z Wydziału Psychologii i Nauk Kognitywnych Uniwersytetu im. Adama Mickiewicza oraz dwóch japońskich uczelni, wraz z Laboratoriami Naukowymi Sony Computer Science.
Badanie sugeruje, że ‘niepewności’, których głębokie sieci neuronowe wykazują wobec różnych konfiguracji sprzętu i oprogramowania, faworyzują droższe (i coraz rzadsze) jednostki przetwarzania grafiki, i stwierdziło w testach, że głęboka sieć neuronowa szkolona wyłącznie na CPU wykazywała wyższe wskaźniki błędów w tym samym liczbie epok (liczba razy, gdy system ponownie przetwarza dane szkoleniowe w trakcie sesji).

Na tym przykładowym obrazie z artykułu widać (dwa dolne wiersze), podobną jakość wyników uzyskaną z różnych procesorów GPU, oraz (pierwszy wiersz), gorsze wyniki uzyskane z różnych procesorów CPU. Source: https://arxiv.org/pdf/2109.01451.pdf
Zjawiska niezwykłe
Te wstępne wyniki nie mają zastosowania jednolicie w przypadku popularnych algorytmów machine learning, i w przypadku prostych architektur autoencoder, zjawisko to nie występuje.
Niemniej praca wskazuje na możliwą ‘prędkość ucieczki’ dla skuteczności szkolenia w złożonych sieciach neuronowych, gdzie pokrywanie tych samych operacji przy niższej prędkości i dłuższym czasie szkolenia nie daje równorzędnej wydajności, jakiej można by oczekiwać od rutyn matematycznych.
Badacze sugerują, że ta różnica w wydajności może być szczególna dla pewnych typów sieci neuronowych, i że nieoznaczone aspekty specyficznej dla procesora GPU przetwarzania, często postrzegane jako przeszkoda do przezwyciężenia, mogą nie tylko zapewnić znaczące korzyści, ale mogą być również celowo włączone do późniejszych systemów. Artykuł sugeruje również, że wyniki mogą dostarczyć głębszych wglądów w przetwarzanie obliczeniowe związane z mózgiem.
Identyfikacja cech, które zwiększają wydajność i jakość wyników w ten sposób na procesorach GPU, ma potencjał dostarczenia głębszych wglądów w ‘czarne skrzynki’ architektur AI, a nawet poprawy wydajności CPU – choć obecnie, podstawowe przyczyny są niejasne.
Autoencoder Vs. PredNet
Podczas badania anomalii, badacze wykorzystali podstawowy autoencoder oraz sieć neuronową PredNet z Uniwersytetu Harvarda, badanie z 2016 roku, które miało na celu zbadanie i odtworzenie zachowania ludzkiej kory mózgowej.
Oba systemy są głębokimi sieciami neuronowymi zaprojektowanymi do syntezy odpowiednich obrazów za pomocą nieprzepuszczalnego uczenia (z danymi, z których usunięto etykiety), chociaż autoencoder zajmuje się liniowo jednym obrazem na partię, który następnie wytwarza wyjście jako następny obraz w powtarzalnym potoku. Autoencoder został wyszkolony na bazie MNIST bazy danych pisma odręcznego.

Autoencoder w testach badawczych został wyszkolony na bazie MNIST, która składa się z 60 000 obrazów szkoleniowych o rozmiarze 28×28 pikseli, przefiltrowanych dla indukcji skali szarości, a także 10 000 obrazów testowych.
W przeciwieństwie do tego, PredNet ocenia złożone dane wideo, a w przypadku tego badania, został wyszkolony na FPSI zbiorze danych, który zawiera obszerny materiał wideo nagrany kamerą noszoną przez osobę, z dnia spędzonego w Disney World w Orlando na Florydzie (Disney był jednym z partnerów badawczych w 2012 roku).

Sekwencje obrazów z FPSI, pokazujące widoki z pierwszej osoby z dnia spędzonego w Disney World.
Dwa architektury są bardzo różne pod względem złożoności. Autoencoder jest zaprojektowany do odtwarzania obrazów, a nie do predykcji wartości docelowych. W przeciwieństwie do tego, PredNet składa się z czterech warstw, z których każda składa się z neuronów reprezentacji wykorzystujących pamięć krótkotrwałą LSTM.
Warstwy wytwarzają predykcje kontekstowe, które są następnie porównywane z celem, aby wytworzyć wyraz błędu, który rozchodzi się po sieci. Obie architektury wykorzystują nieprzepuszczalne uczenie.

Prosta, liniowa architektura autoencoder, oraz bardziej złożona i rekursywna sieć PredNet.
Oba systemy zostały przetestowane na różnych konfiguracjach sprzętu i oprogramowania, w tym procesorach CPU bez procesorów GPU (Intel i5-4590, i7-6800K, i5-7600K, lub AMD Ryzen-5-3600) i procesorach CPU z procesorami GPU (Intel i5-7600K + NVIDIA GTX-750Ti, i5-7600K + GTX-970, i7-6700K + GTX-1080, i7-7700K + GTX-1080Ti, i7-9700 + RTX-2080Ti, i5-7600K + RTX-2060 super, AMD Ryzen-5-3600 + RTX-2070 super, lub i5-9400 + Titan-RTX).
Widżet interaktywny htop został wykorzystany, aby upewnić się, że wszystkie szkolenia odbywały się albo na jednym wątku (na procesorze Intel i7-6800K), albo na czterech wątkach (na procesorach Intel i5-4590 i i5-7600K), albo na sześciu wątkach (na procesorze AMD Ryzen-5-3600).
Punkty siodłowe
W przypadku autoencoder, średnia różnica we wszystkich konfiguracjach, z i bez cuDNN, nie była znacząca. W przypadku PredNet, wyniki były bardziej zaskakujące, z znaczącymi różnicami w ocenie straty i jakości pomiędzy szkoleniem na CPU i GPU.

Średnie wyniki straty dla PredNet w szkoleniu na czterech procesorach CPU i ośmiu procesorach GPU, z siecią szkoloną na 5000 klatkach wideo w 250 partiach, ze średnią stratą dla ostatnich 1000 klatek (50 partii) przedstawioną. cuDNN zostało wyłączone.
Badacze stwierdzili, że ‘Chociaż mechanizm jest niejasny, sprzęt GPU wydaje się mieć możliwość przyspieszenia szkolenia sieci neuronowych.’
Wyniki wskazują, że procesory GPU mogą być lepsze w unikaniu punktów siodłowych – obszarów w gradientzie zejścia, które opisują dno zbocza.

Nadir zbocza w gradientzie zejścia to ‘punkt siodłowy’, nazwany z oczywistych powodów. Source: https://www.pinterest.com.au/pin/436849232581124086/
Punkty siodłowe, chociaż są przeszkodą, zostały w dużej mierze odrzucone jako łatwe do obejścia w ostatnich myślach o optymalizacji stochastycznego gradientu zejścia (SGD), ale nowy artykuł sugeruje, że procesory GPU mogą być wyjątkowo wyposażone, aby uniknąć ich, oraz że wpływ punktów siodłowych powinien być ponownie rozważony.












