Czy można trenować sieć neuronową bez propagacji wstecznej?

94

Wiele książek i samouczków dotyczących sieci neuronowych spędza dużo czasu na algorytmie propagacji wstecznej, który jest zasadniczo narzędziem do obliczania gradientu.

Załóżmy, że budujemy model z ~ 10 000 parametrów / wag. Czy można uruchomić optymalizację przy użyciu niektórych algorytmów optymalizacji bez gradientu?

Myślę, że obliczanie gradientu numerycznego byłoby zbyt wolne, ale co z innymi metodami, takimi jak Nelder-Mead, Symulowane wyżarzanie lub algorytm genetyczny?

Wszystkie algorytmy ucierpiałyby na lokalnych minimach, po co mieć obsesję na punkcie gradientu?

Haitao Du
źródło
6
@FranckDernoncourt Zinterpretowałem drugie pytanie jako „dlaczego nie wykorzystać globalnych technik optymalizacji do trenowania sieci neuronowych?”, Podczas gdy ten jest bardziej „dlaczego nie użyć optymalizatorów wolnych od pochodnych ...”.
GeoMatt22
6
Przy 3 pozytywnych odpowiedziach nie wydaje mi się to zbyt szerokie, aby można było na mnie odpowiedzieć.
gung
5
Tak, nie musisz się zbytnio martwić, że Nelder-Mead utknie na lokalnym minimum, ponieważ będziesz miał szczęście, jeśli przyda się gdziekolwiek.
Mark L. Stone,
1
BTW, ultra L-BFGS, daj temu wir. może to być dobre, ale jest tak niejasne, że prawdopodobnie nikt nawet nie próbował tego w sieciach neuronowych. Zobacz równanie 2.9 na str. 12 (musisz przeczytać kilka poprzednich stron, aby zrozumieć wzór) maths.dundee.ac.uk/nasc/na-reports/NA149_RF.pdf (w artykule nie nazywa się to ultra BFGS), który musiałby wtedy przejdź do wersji „L” (ograniczona pamięć), aby być ultra L-BFGS, a nie ultra BFGS. Wersja inna niż L jest opisana w artykule. Ultra BFGS to w zasadzie uduszony BFGS („hot rod”) - może być szybszy, ale może być nieco bardziej dziki.
Mark L. Stone,

Odpowiedzi:

80

Pierwsze dwa algorytmy, o których wspominasz (Nelder-Mead i Symulowane wyżarzanie) są ogólnie uważane za dość przestarzałe w kręgach optymalizacyjnych, ponieważ istnieją znacznie lepsze alternatywy, które są zarówno bardziej niezawodne, jak i tańsze. Algorytmy genetyczne obejmują szeroki zakres, a niektóre z nich mogą być uzasadnione.

Jednak w szerszej klasie algorytmów optymalizacji bez pochodnych (DFO) istnieje wiele, które są znacznie lepsze niż te „klasyki”, ponieważ był to aktywny obszar badań w ostatnich dziesięcioleciach. Czy zatem niektóre z tych nowszych podejść mogą być uzasadnione w przypadku głębokiego uczenia się?

Stosunkowo najnowszy artykuł porównujący najnowszy stan techniki jest następujący:

Rios, LM i Sahinidis, NV (2013) Optymalizacja bez instrumentów pochodnych: przegląd algorytmów i porównanie implementacji oprogramowania. Journal of Global Optimization.

To miły artykuł, który ma wiele interesujących spostrzeżeń na temat najnowszych technik. Na przykład wyniki wyraźnie pokazują, że najlepsze lokalne optymalizatory są „oparte na modelach”, wykorzystując różne formy sekwencyjnego programowania kwadratowego (SQP).

Jednakże, jak zauważono w ich streszczeniu „Stwierdzamy, że zdolność wszystkich tych solverów do uzyskiwania dobrych rozwiązań zmniejsza się wraz ze wzrostem wielkości problemu”. Aby dać wyobrażenie o liczbach, dla wszystkich problemów solverom przydzielono budżet na 2500 ewaluacji funkcji, a rozmiary problemów były maksymalnie ~ 300 parametrów do optymalizacji. Poza parametrami O [10] bardzo niewiele z tych optymalizatorów działało bardzo dobrze, a nawet te najlepsze wykazywały zauważalny spadek wydajności wraz ze wzrostem wielkości problemu.

W przypadku problemów o bardzo dużych wymiarach algorytmy DFO po prostu nie są konkurencyjne w stosunku do tych opartych na pochodnych. Aby dać perspektywę, optymalizacja oparta na PDE (częściowym równaniu różniczkowym) to kolejny obszar z bardzo wysokimi wymiarami (np. Kilka parametrów dla każdej komórki dużej siatki elementów skończonych 3D). W tej dziedzinie „ metoda łączenia ” jest jedną z najczęściej używanych metod. Jest to również optymalizator opadania gradientu oparty na automatycznym różnicowaniu kodu modelu do przodu.

Najbliżej wysoko-wymiarowego optymalizatora DFO jest być może Ensemble Kalman Filter , stosowany do asymilacji danych w złożone symulacje PDE, np. Modele pogodowe. Co ciekawe, jest to zasadniczo podejście SQP, ale z interpretacją Bayesa-Gaussa (więc model kwadratowy jest pozytywnie określony, tj. Nie ma punktów siodłowych). Ale nie sądzę, że liczba parametrów lub obserwacji w tych aplikacjach jest porównywalna z tym, co widać w głębokim uczeniu się.

Uwaga dodatkowa (minima lokalne): Z małego fragmentu, który przeczytałem na temat głębokiego uczenia się, myślę, że konsensus jest taki, że są to punkty siodłowe, a nie lokalne minima, które są najbardziej problematyczne dla przestrzeni o wysokich wymiarach z parametrami NN.

Na przykład w niedawnym przeglądzie „ Nature” stwierdza się, że „Ostatnie wyniki teoretyczne i empiryczne zdecydowanie sugerują, że lokalne minima nie są ogólnie poważnym problemem. Zamiast tego krajobraz jest wypełniony kombinatorycznie dużą liczbą punktów siodłowych, w których gradient wynosi zero, a powierzchnia wygina się w większości wymiarów, a pozostała część wygina się w dół. ”

Powiązany problem dotyczy optymalizacji lokalnej vs. globalnej (na przykład to pytanie wskazano w komentarzach). Chociaż nie uczę się głęboko, z mojego doświadczenia wynika, że ​​nadmierne dopasowanie jest zdecydowanie uzasadnione. Moim zdaniem globalne metody optymalizacji są najbardziej odpowiednie w przypadku problemów projektowania inżynierskiego , które nie zależą silnie od „naturalnych” danych. Problemy asymilacja danych, każdy obecny globalny minima można łatwo zmienić po dodaniu nowych danych (uwaga: Moje doświadczenie jest skoncentrowany na problemach geologicznych, w których dane są ogólnie „rzadki” w stosunku do pojemności modelu).

Być może ciekawa perspektywa

O. Bousquet & L. Bottou (2008) Kompromisy uczenia się na dużą skalę. NIPS.

który dostarcza pół teoretycznych argumentów na temat tego, dlaczego i kiedy optymalizacja przybliżona może być lepsza w praktyce.

Uwaga końcowa (metaoptymalizacja): Podczas gdy techniki oparte na gradientach wydają się dominować w sieciach szkoleniowych, DFO może odgrywać rolę w powiązanych zadaniach metaoptymalizacji.

Jednym z przykładów byłoby dostrajanie hiperparametrów. (Co ciekawe, udane oparte na modelu optymalizatory DFO firmy Rios i Sahinidis można postrzegać jako zasadniczo rozwiązujące sekwencję problemów związanych z projektowaniem eksperymentów / powierzchnią odpowiedzi ).

O[N2]notL1 może być jednak zoptymalizowany meta).

GeoMatt22
źródło
1
„Recenzja”, którą cytujesz, pochodzi od głównych zwolenników sieci neuronowych; Poddałbym w wątpliwość twierdzenie o minimach lokalnych - dobrze znaną krytyką teoretyczną NN jest właśnie to, że żadnego złożonego modelu nie można zoptymalizować poprzez opadanie gradientu, ponieważ utknie on w lokalnych minimach. Nie jest jasne, czy tylko sukcesy nns można rozwiązać za pomocą tła i nie słyszysz o awariach.
seanv507
2
@ GeoMatt22 Rozbieżność kontrastowa jest specjalnym przybliżeniem gradientu specjalnej klasy modeli, do którego należą KMS. Należy zauważyć, że KMS są modelami probabilistycznymi, które implikują pewien rodzaj rozkładu, dla którego gradient oszacowania maksymalnego prawdopodobieństwa jest trudny do oszacowania. Sieci neuronowe są modelami obliczeniowymi, które można stosować bez jakiegokolwiek probabilistycznego punktu początkowego, np. Poprzez optymalizację utraty zawiasu. Krótko mówiąc, CD nie jest ogólnym sposobem optymalizacji sieci neuronowych.
bayerj
2
@ seanv507 Chociaż oświadczenie zostało zgłoszone przez głównych zwolenników, istnieją recenzowane artykuły z najlepszych konferencji dotyczących uczenia maszynowego, które rygorystycznie oceniają te twierdzenia, np . arxiv.org/abs/1406.2572 . Do tej pory twierdzenie to jest powszechnie akceptowane w szerszej społeczności ML, głównie ze względu na lepsze argumenty teoretyczne i dowody empiryczne. Nie sądzę, aby argument ad hominem był tutaj odpowiedni.
bayerj
1
Zgadzam się, że brakuje teorii DL. Nadal musisz przyznać, że artykuły takie jak ten rozwijają to. Jeśli uważasz, że artykuł podaje nieprawidłowe wyniki, a wnioski (takie jak „lokalne minima są mniejszym problemem niż punkty siodłowe”) są nieważne, musisz zrobić coś lepszego niż podać kolejny atak ad hominem, tym razem skierowany na Społeczność ML jako całość.
bayerj
1
Ostatnie prace pokazują, że przy losowej inicjalizacji opadanie gradientu zbiega się do lokalnego minimum (zamiast punktu siodłowego). Artykuł tutaj: arxiv.org/abs/1602.04915 i post na blogu tutaj: offconvex.org/2016/03/24/saddles-again Z drugiej strony istnieje (mniej) nowa hipoteza, że ​​w dużych sieciach neuronowych lokalne minima są o tak dobrym jak globalny, omówione tutaj: stats.stackexchange.com/questions/203288/...
DavidR
12

Istnieją różnego rodzaju lokalnych algorytmów wyszukiwania można użyć, wstecznej właśnie okazał się najbardziej skuteczny w przypadku bardziej złożonych zadań w ogóle ; istnieją okoliczności, w których lepsze są inne wyszukiwania lokalne.

Możesz użyć wspinania się po wzniesieniu w sieci neuronowej, aby szybko znaleźć odpowiednie rozwiązanie, ale nie byłoby możliwe znalezienie prawie optymalnego rozwiązania.

Wikipedia (wiem, nie jest to najlepsze źródło, ale nadal) mówi

W przypadku problemów, w których znalezienie dokładnego globalnego optimum jest mniej ważne niż znalezienie akceptowalnego lokalnego optimum w ustalonym czasie, symulowane wyżarzanie może być lepsze niż alternatywy, takie jak opadanie gradientu.

źródło

Jeśli chodzi o algorytmy genetyczne, widziałbym propagację wsteczną vs algorytm genetyczny dla szkolenia w sieci neuronowej

Główny przypadek, który chciałbym zrobić dla backpropa, to to, że jest on bardzo szeroko stosowany i miał wiele świetnych ulepszeń . Te zdjęcia naprawdę pokazują niektóre z niewiarygodnych postępów w propagacji wanilii.

Nie pomyślałbym o backpropie jako o jednym algorytmie, ale o klasie algorytmów.

Chciałbym również dodać, że w przypadku sieci neuronowych parametry 10k to małe ziarna. Kolejne wyszukiwanie zadziałałoby świetnie, ale w głębokiej sieci z milionami parametrów jest to praktycznie niemożliwe.

Liam McInroy
źródło
12

Cóż, oryginalne sieci neuronowe, przed rewolucją propagacji wstecznej w latach 70., były „szkolone” ręcznie. :)

Biorąc to pod uwagę:

Istnieje „szkoła” uczenia maszynowego zwana maszyną uczenia ekstremalnego , która nie wykorzystuje propagacji wstecznej.

Robią to, tworząc sieć neuronową z wieloma, wieloma, wieloma węzłami - o losowych wagach - a następnie trenują ostatnią warstwę przy użyciu minimalnych kwadratów (jak regresja liniowa). Następnie przycinają następnie sieć neuronową lub stosują regularyzację w ostatnim kroku (jak lasso), aby uniknąć nadmiernego dopasowania. Widziałem to w odniesieniu do sieci neuronowych z tylko jedną ukrytą warstwą. Nie ma treningu, więc jest super szybki. Zrobiłem kilka testów i, co zaskakujące, te „wyuczone” sieci neuronowe są dość dokładne.

Większość ludzi, przynajmniej tych, z którymi pracuję, traktuje to „szkolne” uczenie się maszyn z szyderstwem i jest to wyrzutek z własnymi konferencjami i tak dalej, ale myślę, że to trochę pomysłowe.


Jeszcze jeden punkt: w ramach wstecznej propagacji istnieją rzadko wymieniane alternatywy, takie jak sprężysta wsteczna propagacja , które są implementowane w neuralnetpakiecie R , które wykorzystują jedynie wielkość pochodnej. Algorytm składa się z warunków if-else zamiast algebry liniowej. Mają pewne zalety w porównaniu z tradycyjną propagacją wsteczną, a mianowicie nie trzeba normalizować danych, ponieważ nie cierpią z powodu znikającego problemu z gradientem .

Ricardo Cruz
źródło
Wykonaj (większość lub wszystkie) spiel w czwartym akapicie, a następnie wykorzystaj wynik jako punkt wyjścia do optymalizacji opartej na pochodnych, aby go „dostroić”.
Mark L. Stone,
1
@ MarkL.Stone Nie znam nikogo, kto dokonałby propagacji wstecznej, stosując najpierw regresję liniową na drugiej warstwie. Brzmi interesująco.
Ricardo Cruz,
1
O ile mi wiadomo, kontrowersje wokół ELM wynikają głównie z aspektów etycznych, a nie z wdrażania. Schmidt i wsp. Już dotknęli tego tematu w 1992 r., Wykorzystując sieć Feedforward z losowymi wagami.
Firebug
3

Możesz użyć praktycznie dowolnego algorytmu optymalizacji numerycznej, aby zoptymalizować wagi sieci neuronowej. Możesz także użyć mieszanych algorytmów optymalizacji ciągłej i dyskretnej, aby zoptymalizować nie tylko wagi, ale i sam układ (liczbę warstw, liczbę neuronów w każdej warstwie, a nawet rodzaj neuronu). Jednak nie ma algorytmu optymalizacji, który w jakiś sposób nie ucierpiałby na „przekleństwie wymiarów” i lokalnych optymach

przechodzień
źródło
3

Możesz także skorzystać z innej sieci, aby doradzić, jak należy zaktualizować parametry.

Istnieje oddzielony interfejs neuronowy (DNI) od Google Deepmind. Zamiast stosowania propagacji wstecznej wykorzystuje inny zestaw sieci neuronowych do przewidywania sposobu aktualizacji parametrów, co pozwala na równoległą i asynchroniczną aktualizację parametrów.

Artykuł pokazuje, że DNI zwiększa szybkość treningu i pojemność modelu RNN oraz daje porównywalne wyniki dla RNN i FFNN w różnych zadaniach.


W artykule wymieniono również i porównano wiele innych metod niepropagowania wstecznego

Nasz syntetyczny model gradientu jest najbardziej analogiczny do funkcji wartości, która jest używana do wznoszenia gradientu [2] lub funkcji wartości do ładowania początkowego. Większość innych prac, które mają na celu usunięcie propagacji wstecznej, robi to w celu wykonania wiarygodnego biologicznie przypisania kredytu, ale nie eliminuje to blokowania aktualizacji między warstwami. Np. Propagacja celu [3, 15] eliminuje poleganie na przekazywaniu gradientów między warstwami, zamiast tego generuje aktywacje celu, do których należy się dopasować. Jednak cele te muszą nadal być generowane sekwencyjnie, propagując się wstecz przez sieć, a zatem warstwy są nadal aktualizowane i blokowane wstecz. Inne algorytmy usuwają blokadę wsteczną, umożliwiając nadawanie strat lub nagród bezpośrednio do każdej warstwy - np. REINFORCE [21] (biorąc pod uwagę, że wszystkie aktywacje są akcjami),1oraz sieci Gradient Coagent Network [20] - ale nadal pozostają zablokowane, ponieważ wymagają wygenerowania nagród przez dane wyjściowe (lub globalnego krytyka). Chociaż cykliczne uczenie się w czasie rzeczywistym [22] lub przybliżenia takie jak [17] mogą wydawać się obiecującym sposobem na usunięcie blokady aktualizacji, metody te wymagają zachowania pełnego (lub przybliżonego) gradientu bieżącego stanu w odniesieniu do parametrów. Nie jest to z natury skalowalne i wymaga również od optymalizatora globalnej wiedzy o stanie sieci. W przeciwieństwie do tego, tworząc ramy interakcji między warstwami jako lokalnego problemu komunikacyjnego z DNI, eliminujemy potrzebę globalnej wiedzy o systemie uczenia się. Inne prace, takie jak [4, 19], umożliwiają trenowanie warstw równolegle bez propagacji wstecznej,

dontloo
źródło
2

Dopóki jest to pytanie społeczności, myślałem, że dodam kolejną odpowiedź. „Rozmnażanie wsteczne” to po prostu algorytm spadku gradientu. Polega ona na użyciu tylko pierwszej pochodnej funkcji, dla której próbuje się znaleźć lokalne minima lub maksima. Istnieje inna metoda zwana metodą Newtona lub Newtona-Raphsona, która polega na obliczeniu Hesji, a zatem wykorzystuje drugie pochodne. Może się to udać w przypadkach, w których upadek gradientu nie powiedzie się. Mówią mi inni, bardziej znający się na mnie, i tak, to jest apel do drugiej ręki do władzy, że nie jest on stosowany w sieciach neuronowych, ponieważ obliczanie wszystkich drugich pochodnych jest zbyt kosztowne pod względem obliczeniowym.

aginensky
źródło