Czym jest wyszukiwanie architektury neuronowej? AutoML dla głębokiego uczenia

Czym jest wyszukiwanie architektury neuronowej? AutoML dla głębokiego uczenia

18 lutego 2022 0 przez It-hits

Wyszukiwanie architektury neuronowej to zadanie polegające na automatycznym znalezieniu jednej lub więcej architektur sieci neuronowej, które pozwolą na uzyskanie modeli o dobrych wynikach (niskich stratach), stosunkowo szybko, dla danego zbioru danych. Wyszukiwanie architektury neuronowej jest obecnie dziedziną, która dopiero się rozwija. Prowadzonych jest wiele badań, istnieje wiele różnych podejść do tego zadania i nie ma jednej najlepszej metody – lub nawet jednej najlepszej metody dla wyspecjalizowanego rodzaju problemu, takiego jak identyfikacja obiektów na obrazach.

Poszukiwanie architektury neuronowej jest jednym z aspektów AutoML, wraz z inżynierią cech, uczeniem transferowym i optymalizacją hiperparametrów. Jest to prawdopodobnie najtrudniejszy problem uczenia maszynowego, nad którym prowadzone są obecnie aktywne badania; nawet ewaluacja metod wyszukiwania architektury neuronowej jest trudna. Badania nad przeszukiwaniem architektury neuronowej mogą być również kosztowne i czasochłonne. Metryka czasu wyszukiwania i treningu jest często podawana w GPU-dniach, czasami w tysiącach GPU-dni.

Motywacja do usprawnienia wyszukiwania architektury neuronowej jest dość oczywista. Większość postępów w modelach sieci neuronowych, na przykład w klasyfikacji obrazów i tłumaczeniu języków, wymagała znacznego ręcznego dostrojenia architektury sieci neuronowej, co jest czasochłonne i podatne na błędy. Nawet w porównaniu z kosztem wysokiej klasy procesorów graficznych w chmurach publicznych, koszt naukowców zajmujących się danymi jest bardzo wysoki, a ich dostępność zwykle niewielka.

Ocenianie wyszukiwania architektury neuronowej

Jak zauważyło wielu autorów (na przykład Lindauer i Hutter, Yang et al. oraz Li i Talwalkar), wiele badań nad wyszukiwaniem architektury neuronowej (NAS) jest niereprodukowalnych, z jednego z kilku powodów. Dodatkowo, wiele algorytmów przeszukiwania architektury neuronowej albo nie osiąga lepszych wyników niż przeszukiwanie losowe (z zastosowanymi kryteriami wczesnego zakończenia), albo nigdy nie było porównywanych z użytecznym punktem odniesienia.

Yang et al. wykazali, że wiele technik przeszukiwania architektury neuronowej z trudem pokonuje losowo próbkowaną średnią architekturę bazową. (Nazwali swój artykuł „NAS evaluation is frustratingly hard.”) Udostępnili również repozytorium, które zawiera kod użyty do oceny metod wyszukiwania architektur neuronowych na kilku różnych zbiorach danych, jak również kod użyty do rozszerzenia architektur za pomocą różnych protokołów.

Lindauer i Hutter zaproponowali listę kontrolną najlepszych praktyk NAS opartą na ich artykule (również cytowanym powyżej):

Najlepsze praktyki przy udostępnianiu kodu

Dla wszystkich eksperymentów, które raportujesz, sprawdź czy udostępniłeś:
_ Kod dla potoku treningowego używanego do oceny końcowych architektur
_ Kod dla przestrzeni wyszukiwania
_ Hiperparametry używane dla końcowego potoku oceny, jak również losowe nasiona
_ Kod dla twojej metody NAS
_ Hiperparametry dla twojej metody NAS, jak również losowe nasiona

Zauważ, że najłatwiejszym sposobem na spełnienie pierwszych trzech z nich jest użycie istniejących benchmarków NAS, a nie zmienianie ich lub wprowadzanie nowych.

Najlepsze praktyki dla porównywania metod NAS

_ Dla wszystkich porównywanych metod NAS, czy użyto dokładnie tego samego benchmarku NAS, włączając ten sam zestaw danych (z tym samym podziałem trening-test), przestrzeń wyszukiwania i kod do szkolenia architektur oraz hiperparametry dla tego kodu?
_ Czy kontrolowano czynniki zakłócające (różny sprzęt, wersje bibliotek DL, różne czasy wykonania dla różnych metod)?
_ Czy przeprowadzono badania ablacji?
_ Czy użyto tten sam protokół oceny dla porównywanych metod?
_ Czy porównywano wydajność w czasie?
_ Czy porównywano z wyszukiwaniem losowym?
_ Czy przeprowadzono wiele przebiegów eksperymentów i raportowano nasiona?
_ Czy używano tabelarycznych lub zastępczych benchmarków do dogłębnej oceny?

Najlepsze praktyki dla raportowania ważnych szczegółów

Czy podałeś jak dostroiłeś hiperparametry i jakiego czasu to wymagało?
_ Czy podałeś czas dla całej metody end-to-end NAS (zamiast, np., tylko dla fazy wyszukiwania)?
_ Czy podałeś wszystkie szczegóły konfiguracji eksperymentalnej?

Warto omówić termin „badania ablacyjne”, o którym mowa w drugiej grupie kryteriów. Badania ablacyjne pierwotnie odnosiły się do chirurgicznego usuwania tkanek ciała. W odniesieniu do mózgu, badania ablacyjne (zazwyczaj spowodowane poważnym stanem chorobowym, a badania wykonywane po operacji) pomagają określić funkcję części mózgu.

W badaniach nad sieciami neuronowymi ablacja oznacza usuwanie cech z sieci neuronowych w celu określenia ich znaczenia. W badaniach nad NAS, odnosi się do usuwania cech z potoku wyszukiwania i technik szkoleniowych, w tym ukrytych komponentów, ponownie w celu określenia ich znaczenia.

Metody przeszukiwania architektury neuronowej

Elsken et al. (2018) przeprowadzili przegląd metod wyszukiwania architektur neuronowych i skategoryzowali je pod względem przestrzeni wyszukiwania, strategii wyszukiwania i strategii szacowania wydajności. Przestrzenie wyszukiwania mogą dotyczyć całych architektur, warstwa po warstwie (macro search), lub mogą być ograniczone do składania predefiniowanych komórek (cell search). Architektury zbudowane z komórek wykorzystują drastycznie zredukowaną przestrzeń przeszukiwania; Zoph et al. (2018) szacują 7-krotny wzrost prędkości.

Strategie wyszukiwania dla architektur neuronowych obejmują wyszukiwanie losowe, optymalizację bayesowską, metody ewolucyjne, uczenie wzmacniające i metody oparte na gradiencie. Pojawiły się oznaki sukcesu dla wszystkich tych podejść, ale żadne z nich tak naprawdę się nie wyróżniło.

Najprostszym sposobem szacowania wydajności sieci neuronowych jest trenowanie i walidacja sieci na danych. Niestety, może to prowadzić do zapotrzebowania obliczeniowego rzędu tysięcy GPU-dni na przeszukiwanie architektury neuronowej. Sposoby na zmniejszenie liczby obliczeń obejmują oszacowania o niższej wierności (mniejsza liczba epok treningu, mniejsza liczba danych i modele o niższej skali); ekstrapolację krzywej uczenia (na podstawie zaledwie kilku epok); trening „na ciepło” (inicjalizacja wag przez skopiowanie ich z modelu macierzystego); oraz modele jednostrzałowe z dzieleniem wag (podgrafy używają wag z modelu jednostrzałowego). Wszystkie te metody mogą skrócić czas treningu do kilku dni na GPU, zamiast kilku tysięcy dni na GPU. Błędy wprowadzane przez te przybliżenia nie są jednak jeszcze dobrze poznane.

Projekt Petridish firmy Microsoft

Microsoft Research twierdzi, że opracował nowe podejście do wyszukiwania architektury neuronowej, które dodaje skrócone połączenia do istniejących warstw sieci i wykorzystuje podział wag. Dodane połączenia skrótowe efektywnie wykonują wzmocnienie gradientowe na powiększonych warstwach. Nazwali ten projekt Petridish.

Metoda ta rzekomo redukuje czas treningu do kilku dni pracy GPU zamiast kilku tysięcy dni pracy GPU i wspiera trening w trybie „warm-started”. Według badaczy, metoda sprawdza się zarówno przy wyszukiwaniu komórek, jak i makr.

Przytoczone wyniki eksperymentalne były całkiem niezłe f

lub zbioru obrazów CIFAR-10, ale nic specjalnego dla zbioru danych językowych Penn Treebank. Projekt Petridish brzmi interesująco, ale bez szczegółowego porównania z innymi omawianymi metodami nie jest jasne, czy jest to znaczący postęp w wyszukiwaniu w architekturze neuronowej w porównaniu z innymi omawianymi metodami przyspieszania, czy po prostu kolejny sposób na dotarcie do tego samego miejsca.

Copyright © 2022 IDG Communications, Inc.


Czytaj dalej: https://www.infoworld.com/article/3648408/what-is-neural-architecture-search.html#tk.rss_all