Wyszukiwanie architektury neuronowej
Część serii poświęconej |
uczeniu maszynowemu i eksploracji danych |
---|
Wyszukiwanie architektury neuronowej (NAS) to technika automatyzacji projektowania sztucznych sieci neuronowych (SSN), szeroko stosowany model w dziedzinie uczenia maszynowego . NAS był używany do projektowania sieci, które dorównują lub przewyższają ręcznie zaprojektowane architektury. Metody dla NAS można podzielić na kategorie zgodnie z zastosowaną przestrzenią wyszukiwania, strategią wyszukiwania i strategią szacowania wydajności:
- Przestrzeń wyszukiwania definiuje typy SSN, które można zaprojektować i zoptymalizować.
- Strategia wyszukiwania definiuje podejście stosowane do eksploracji przestrzeni wyszukiwania.
- Strategia szacowania wydajności ocenia wydajność możliwej ANN na podstawie jej projektu (bez konstruowania i szkolenia).
NAS jest ściśle powiązany z optymalizacją hiperparametrów i metauczeniem i jest poddziedziną zautomatyzowanego uczenia maszynowego (AutoML).
Uczenie się ze wzmocnieniem
Uczenie ze wzmocnieniem (RL) może stanowić podstawę strategii wyszukiwania NAS. Barret Zoph i Quoc Viet Le zastosowali serwer NAS z RL ukierunkowany na zestaw danych CIFAR-10 i uzyskali architekturę sieci, która pod względem dokładności rywalizuje z najlepszą architekturą ręcznie zaprojektowaną, ze współczynnikiem błędów wynoszącym 3,65, czyli o 0,09% lepszym i 1,05 razy szybszym niż w przypadku powiązanej ręki - zaprojektowany model. W Penn Treebank model ten składał się z rekurencyjnej komórki, która przewyższa LSTM , osiągając zestaw testowy zakłopotania 62,4 lub 3,6 zakłopotania lepszy niż poprzedni wiodący system. W zadaniu modelowania języka znaków PTB osiągnął 1,214 bitów na znak.
Nauka architektury modelu bezpośrednio na dużym zbiorze danych może być długotrwałym procesem. NASNet rozwiązał ten problem, przenosząc blok konstrukcyjny przeznaczony dla małego zbioru danych do większego zbioru danych. Projekt został ograniczony do użycia dwóch typów splotowych do zwracania map obiektów, które pełnią dwie główne funkcje podczas zwijania wejściowej mapy obiektów: normalne komórki , które zwracają mapy o tym samym zasięgu (wysokość i szerokość) oraz komórki redukujące w którym zwrócona wysokość i szerokość mapy obiektów jest zmniejszana dwukrotnie. W przypadku komórki redukcyjnej początkowa operacja zastosowana do danych wejściowych komórki wykorzystuje krok dwóch (w celu zmniejszenia wysokości i szerokości). Wyuczony aspekt projektu obejmował takie elementy, jak to, które niższe warstwy były przyjmowane przez każdą wyższą warstwę jako dane wejściowe, transformacje zastosowane w tej warstwie oraz łączenie wielu danych wyjściowych w każdej warstwie. W badanym przykładzie najlepsza warstwa splotowa (lub „komórka”) została zaprojektowana dla zbioru danych CIFAR-10, a następnie zastosowana do ImageNet zestaw danych przez układanie kopii tej komórki, z których każda ma własne parametry. Podejście to dało dokładność 82,7% top-1 i 96,2% top-5. To przewyższyło najlepsze architektury wymyślone przez ludzi przy koszcie o 9 miliardów FLOPS mniej — czyli o 28%. System nadal przewyższał ręcznie zaprojektowaną alternatywę na różnych poziomach obliczeniowych. Cechy obrazu wyuczone z klasyfikacji obrazów można przenieść do innych problemów widzenia komputerowego. Na przykład w przypadku wykrywania obiektów wyuczone komórki zintegrowane ze strukturą Faster-RCNN poprawiły wydajność o 4,0% w COCO .
W tak zwanym Efficient Neural Architecture Search (ENAS) kontroler odkrywa architektury, ucząc się wyszukiwania optymalnego podgrafu w obrębie dużego grafu. Kontroler jest szkolony z gradientem polityki , aby wybrać podgraf, który maksymalizuje oczekiwaną nagrodę zestawu weryfikacyjnego. Model odpowiadający podgrafowi jest trenowany w celu zminimalizowania kanonicznej entropii krzyżowej strata. Wiele modeli potomnych ma wspólne parametry, ENAS wymaga mniej godzin GPU niż inne podejścia i 1000-krotnie mniej niż „standardowy” NAS. W CIFAR-10 projekt ENAS osiągnął błąd testowy na poziomie 2,89%, porównywalny z NASNet. Na Penn Treebank projekt ENAS osiągnął testową zakłopotanie 55,8.
Ewolucja
Alternatywne podejście do NAS opiera się na algorytmach ewolucyjnych , które zostały zastosowane przez kilka grup. Algorytm ewolucyjny do przeszukiwania architektury neuronowej ogólnie wykonuje następującą procedurę. Najpierw inicjowana jest pula składająca się z różnych kandydujących architektur wraz z ich wynikami walidacji (fitness). Na każdym etapie architektury w puli kandydatów są mutowane (np. splot 3x3 zamiast splotu 5x5). Następnie nowe architektury są szkolone od podstaw przez kilka epok i uzyskiwane są ich wyniki walidacji. Następnie następuje zastąpienie architektur o najniższej punktacji w puli kandydatów lepszymi, nowszymi architekturami. Ta procedura jest powtarzana wiele razy, dzięki czemu pula kandydatów jest z czasem udoskonalana. Mutacje w kontekście ewoluujących SSN to operacje takie jak dodawanie lub usuwanie warstwy, które obejmują zmianę typu warstwy (np. ze splotu na łączenie), zmianę hiperparametrów warstwy lub zmianę hiperparametrów uczących. NA CIFAR-10 i ImageNet , evolution i RL działały porównywalnie, podczas gdy oba nieco przewyższały losowe wyszukiwanie .
Optymalizacja bayesowska
Bayesian Optimization , która okazała się skuteczną metodą optymalizacji hiperparametrów, może być również zastosowana w NAS. W tym kontekście funkcja celu odwzorowuje architekturę na błąd walidacji po przeszkoleniu przez kilka epok. W każdej iteracji BO używa surogatu do modelowania tej funkcji celu na podstawie wcześniej uzyskanych architektur i ich błędów walidacji. Następnie wybiera się następną architekturę do oceny, maksymalizując funkcję pozyskiwania, taką jak oczekiwana poprawa, która zapewnia równowagę między eksploracją a eksploatacją. Maksymalizacja funkcji akwizycji i ocena funkcji celu są często kosztowne obliczeniowo dla NAS i sprawiają, że zastosowanie BO jest trudne w tym kontekście. Niedawno zespół BANANAS osiągnął obiecujące wyniki w tym kierunku, wprowadzając wysoce wydajną instancję BO połączoną z predyktorem neuronowym.
Wspinaczka górska
Inna grupa zastosowała procedurę wspinania się po wzgórzach , która stosuje morfizmy sieci, po których następuje krótkie przebiegi optymalizacyjne z wyżarzaniem kosinusowym. Podejście to przyniosło konkurencyjne wyniki, wymagając zasobów tego samego rzędu wielkości, co szkolenie pojedynczej sieci. Na przykład w CIFAR-10 metoda zaprojektowała i wytrenowała sieć ze wskaźnikiem błędów poniżej 5% w ciągu 12 godzin na pojedynczym GPU.
Wyszukiwanie wielocelowe
Podczas gdy większość podejść koncentruje się wyłącznie na znalezieniu architektury o maksymalnej wydajności predykcyjnej, w przypadku większości praktycznych zastosowań istotne są inne cele, takie jak zużycie pamięci, rozmiar modelu lub czas wnioskowania (tj. czas wymagany do uzyskania prognozy). Z tego powodu badacze stworzyli wielocelowe wyszukiwanie.
LEMONADE to ewolucyjny algorytm, który przyjął lamarckizm , aby skutecznie zoptymalizować wiele celów. W każdym pokoleniu generowane są sieci potomne w celu poprawy granicy Pareto w odniesieniu do obecnej populacji SSN.
Uważa się, że Neural Architect to zorientowany na zasoby, wielozadaniowy NAS oparty na RL z osadzeniem w sieci i przewidywaniem wydajności. Osadzanie sieci koduje istniejącą sieć do możliwego do nauczenia wektora osadzania. Na podstawie osadzania sieć kontrolera generuje przekształcenia sieci docelowej. Wielocelowa funkcja nagrody uwzględnia dokładność sieci, zasoby obliczeniowe i czas szkolenia. Nagroda jest przewidywana przez wiele sieci symulacji wydajności, które są wstępnie lub współtrenowane z siecią kontrolerów. Sieć kontrolerów jest szkolona za pomocą gradientu polityki. Po modyfikacji wynikowa sieć kandydująca jest oceniana zarówno przez sieć dokładności, jak i sieć czasu szkolenia. Wyniki są łączone przez mechanizm nagrody, który przekazuje swoje dane wyjściowe z powrotem do sieci kontrolera.
Modele jednorazowe
RL lub NAS oparty na ewolucji wymaga tysięcy GPU-dni wyszukiwania/szkolenia, aby osiągnąć najnowocześniejsze wyniki wizji komputerowej, jak opisano w dokumentach NASNet, mNASNet i MobileNetV3.
Aby zmniejszyć koszty obliczeniowe, wiele najnowszych metod NAS opiera się na koncepcji podziału wagi. W tym podejściu definiowana jest pojedyncza przeparametryzowana supersieć (znana również jako model jednorazowy). Supersieć to bardzo duży skierowany graf acykliczny (DAG), którego podgrafami są różne kandydujące sieci neuronowe. Tak więc w supersieci wagi są dzielone między dużą liczbę różnych podarchitektur, które mają wspólne krawędzie, z których każda jest uważana za ścieżka w supersieci. Podstawową ideą jest trenowanie jednej supersieci, która obejmuje wiele opcji dla ostatecznego projektu, zamiast generowania i trenowania tysięcy sieci niezależnie. Oprócz wyuczonych parametrów, uczony jest zestaw parametrów architektury, aby przedstawić preferencje jednego modułu nad innym. Takie metody redukują wymagane zasoby obliczeniowe do zaledwie kilku dni GPU.
Nowsze prace dodatkowo łączą ten paradygmat podziału wagi z ciągłym rozluźnianiem przestrzeni poszukiwań, co umożliwia stosowanie metod optymalizacji opartych na gradiencie. Podejścia te są ogólnie określane jako różnicowalne NAS i okazały się bardzo skuteczne w eksploracji przestrzeni wyszukiwania architektur neuronowych. Jednym z najpopularniejszych algorytmów wśród metod opartych na gradiencie dla NAS jest DARTS. Jednak DARTS napotyka problemy, takie jak spadek wydajności z powodu nieuchronnej agregacji pomijanych połączeń i słabej generalizacji, które zostały rozwiązane przez wiele przyszłych algorytmów. Metody takie jak mają na celu wzmocnienie DARTS i wygładzenie krajobrazu dokładności walidacji poprzez wprowadzenie odpowiednio regularyzacji opartej na normach Hesji i losowego wygładzania/ataku kontradyktoryjnego. Przyczyna degradacji wydajności jest później analizowana z punktu widzenia wyboru architektury.
Zróżnicowany NAS okazał się dawać konkurencyjne wyniki przy użyciu ułamka czasu wyszukiwania wymaganego przez metody wyszukiwania oparte na RL. Na przykład FBNet (skrót od Facebook Berkeley Network) wykazał, że wyszukiwanie oparte na supersieciach tworzy sieci, które przewyższają krzywą kompromisu między szybkością a dokładnością mNASNet i MobileNetV2 w zbiorze danych klasyfikacji obrazu ImageNet. FBNet osiąga to przy użyciu ponad 400 razy mniej czas wyszukiwania niż był używany dla mNASNet. Co więcej, SqueezeNAS wykazał, że oparty na supersieci NAS tworzy sieci neuronowe, które przewyższają krzywą kompromisu między szybkością a dokładnością MobileNetV3 w zbiorze danych segmentacji semantycznej Cityscapes, a SqueezeNAS zużywa ponad 100 razy mniej czasu wyszukiwania niż w wyszukiwaniu opartym na RL autorów MobileNetV3.
Testy porównawcze wyszukiwania architektury neuronowej
Wyszukiwanie architektury neuronowej często wymaga dużych zasobów obliczeniowych ze względu na kosztowne fazy szkolenia i oceny. To dodatkowo prowadzi do dużego śladu węglowego wymaganego do oceny tych metod. Aby przezwyciężyć to ograniczenie, wprowadzono testy porównawcze NAS, na podstawie których można w ciągu kilku sekund sprawdzić lub przewidzieć ostateczną wydajność architektur neuronowych. Test porównawczy NAS jest zdefiniowany jako zestaw danych ze stałym podziałem na testy pociągów, przestrzenią wyszukiwania i ustalonym potokiem szkoleniowym (hiperparametry). Zasadniczo istnieją dwa rodzaje testów porównawczych NAS: zastępczy test porównawczy NAS i tabelaryczny test porównawczy NAS. Zastępczy test porównawczy wykorzystuje model zastępczy (np. sieć neuronową) do przewidywania wydajności architektury na podstawie przestrzeni wyszukiwania. Z drugiej strony tabelaryczny test porównawczy sprawdza rzeczywistą wydajność architektury przeszkolonej do konwergencji. Oba te testy porównawcze można sprawdzać i można ich używać do wydajnej symulacji wielu algorytmów NAS przy użyciu tylko procesora do wysyłania zapytań do testu porównawczego zamiast trenowania architektury od podstaw.