Dlaczego warto korzystać z opadania gradientu w sieciach neuronowych?

22
  1. Podczas uczenia sieci neuronowej za pomocą algorytmu propagacji wstecznej do określenia aktualizacji masy używana jest metoda opadania gradientu. Moje pytanie brzmi: Zamiast używać metody opadania gradientu, aby powoli zlokalizować punkt minimalny w odniesieniu do określonej masy, dlaczego nie ustawimy po prostu pochodnej i znaleźć wartość masyw,która minimalizuje błąd?d(Error)dw=0w

  2. Ponadto, dlaczego jesteśmy pewni, że funkcja błędu w propagacji wstecznej będzie minimalna? Czy nie może okazać się, że funkcja błędu jest maksimum? Czy istnieje specyficzna właściwość funkcji zgniatania, która gwarantuje, że sieć z dowolną liczbą ukrytych węzłów o dowolnych wagach i wektorach wejściowych zawsze da funkcję błędu, która ma pewne minima?

Minaj
źródło
2
Wszystkie tytuły czapek nie są tutaj standardowe (rozejrzyj się) i tu i gdzie indziej powszechnie uznawane za niemile widziane STRZAŁKI.
Nick Cox,
@Nick Cox moje przeprosiny
Minaj
Ciekawie jest zobaczyć, kiedy w modelach uczenia maszynowego używane są zmienne ukryte lub ukryte, optymalizacja (prawie?) Zawsze staje się nieliniowa, nie wypukła i po prostu trudniejsza do optymalizacji.
Vladislavs Dovgalecs

Odpowiedzi:

30
  1. Ponieważ nie możemy. Powierzchnia optymalizacji jako funkcja wag w jest nieliniowa i nie istnieje rozwiązanie dla postaci zamkniętej dla d S ( w )S(w)w.dS(w)dw=0

  2. Zejście gradientowe z definicji spada. Jeśli po zejściu osiągniesz punkt stacjonarny, musi to być (lokalne) minimum lub punkt siodłowy, ale nigdy lokalne maksimum.

Marc Claesen
źródło
Gdyby ta funkcja była wklęsła, gradient przyzwoity opadałby na zawsze, ponieważ jedyną drogą do przejścia jest w dół. Czy mówisz, że powierzchnia błędu z pewnością nie jest wklęsła? Nie jest też dla mnie jasne, dlaczego pochodna funkcji błędu nie miałaby rozwiązania w postaci zamkniętej. Czy nie jest błąd formularza gdzie K jest stałą? Ta funkcja wygląda dość różniczkowo, a wynikowe wyrażenie można rozwiązać analitycznie. Pomóż mi wyjaśnić, ponieważ jest coś, czego wyraźnie nie widzę. K11+eΣwx
Minaj
8
Nie może się to zdarzyć, ponieważ wszystkie powszechnie używane funkcje błędów mają ścisłe teoretyczne minimum 0. Błędy nigdy nie mogą stać się ujemne.
Marc Claesen,
2
Inną możliwą interpretacją 1. jest: „Dokładnie to robimy, równanie rozwiązuje się za pomocą spadku gradientu”.
Matthew Drury,
1
wyraźnie widać zamkniętą formę gradientu (w ten sposób skutecznie obniżamy gradient). Problemem jest brak zamkniętego pierwiastka gradientu = 0
seanv507,
@ seanv507 chciałem powiedzieć, przepraszam za zamieszanie. Edytowałem mój post.
Marc Claesen,
10

Jeśli chodzi o odpowiedź Marca Claesena, uważam, że zejście gradientu może zatrzymać się na lokalnym maksimum w sytuacjach, w których inicjujesz do lokalnego maksimum lub akurat trafiasz tam z powodu pecha lub błędnego parametru szybkości. Lokalne maksimum miałoby zerowy gradient, a algorytm pomyślałby, że się zbiegło. Dlatego często uruchamiam wiele iteracji z różnych punktów początkowych i śledzę wartości po drodze.

Jared Becksfort
źródło
1
Zredagowałem twój komentarz do preambuły, ponieważ wydaje się, że już przyciągasz entuzjazm! Witamy na stronie!
Matthew Drury,
Dzięki! Nie byłem pewien, czy powinien to być komentarz, czy odpowiedź, i nie chciałem, aby moja pierwsza odpowiedź była skierowana do zapomnienia na tej podstawie.
Jared Becksfort
6

W metodach typu Newtona każdy krok rozwiązuje się re(błąd)rew=0dla zlinearyzowanej lub przybliżonej wersji problemu. Następnie problem jest linearyzowany wokół nowego punktu, a proces powtarza się aż do konwergencji. Niektórzy ludzie zrobili to dla sieci neuronowych, ale ma następujące wady,

  • Trzeba mieć do czynienia z drugą pochodną (Hesją, a zwłaszcza produktami wektorowymi Hesji).
  • „Krok rozwiązania” jest bardzo kosztowny obliczeniowo: w czasie, który zajmuje rozwiązanie, można było wykonać wiele iteracji opadania gradientowego.

Jeśli ktoś użyje metody Krylowa do rozwiązania Hesji i nie zastosuje dobrego warunku wstępnego dla Hesji, wówczas koszty w przybliżeniu się zrównoważą - iteracje Newtona trwają znacznie dłużej, ale robią większy postęp, w taki sposób, że całkowity czas jest mniej więcej takie samo lub wolniejsze niż opadanie gradientu. Z drugiej strony, jeśli ktoś ma dobry wstępny warunek Hesji, wówczas metoda Newtona wygrywa na wielką skalę.

To powiedziawszy, metody Newtona-Kryłowa oparte na zaufaniu są złotym standardem we współczesnej optymalizacji na dużą skalę, i spodziewałbym się, że ich zastosowanie zwiększy się w sieciach neuronowych w nadchodzących latach, ponieważ ludzie chcą rozwiązywać coraz większe problemy. (a także, gdy coraz więcej osób zajmujących się optymalizacją numeryczną interesuje się uczeniem maszynowym)

Nick Alger
źródło
Myślę, że się mylisz. Ludzie używają sieci od lat 90. i doskonale znają metody drugiego rzędu. Problem polega na tym, że sieci są skuteczne, gdy jest dużo danych, które następnie obsługują wiele parametrów, w którym to przypadku ograniczenia czasowe i pamięciowe metod drugiego rzędu są nieskuteczne. patrz np. leon.bottou.org/publications/pdf/compstat-2010.pdf
seanv507
@ seanv507 Nie bardzo. Omówienie metod drugiego rzędu w tym artykule ma wiele wad, ponieważ zakładają, że trzeba zbudować i odwrócić cały gęsty Hesjan, aby zastosować metody drugiego rzędu. Po prostu nie dzieje się tak w nowoczesnej optymalizacji numerycznej na dużą skalę. We współczesnych metodach drugiego rzędu oblicza się działanie Hesjan na wektory, rozwiązując przyległe problemy, i wykorzystuje je w rozwiązaniu iteracyjnym (Kryłow). Zasadniczo pierwsza wewnętrzna iteracja zwraca kierunek gradientu, a kolejne iteracje ją poprawiają.
Nick Alger
Chociaż nie jestem szczególnym fanem tego papieru, nie sądzę, że to prawda. Wcześniej omówił / wdrożył przybliżenia diagonalne i zmniejszone rangi hessian. A co z szybkim, dokładnym pomnożeniem przez pearlmutter w 1994 r. Przez Hesjan?
seanv507
Dobrze. Gdy masz już szybkie aplikacje Hesji (czy to za pomocą Pearlmuttera, czy co takiego), możesz robić niedokładne rozwiązania Hesji metodami Kryłowa, takimi jak gradient sprzężony. Robiąc to, skutecznie przenosi się trudności związane z niewłaściwym uwarunkowaniem z nieliniowego optymalizatora iteracyjnego na iteracyjny solver algebry liniowej, w którym dostępnych jest wiele maszyn i technik kondycjonowania umożliwiających rozwiązanie problemu. Dobrym odniesieniem jest sekcja dotycząca regionu zaufania CG-Steihaug w klasycznej „Optymalizacji numerycznej” Nocedal i Wright.
Nick Alger
Chodzi mi o to, że to mnożenie przez gradienty hessianowe i sprzężone było znane społeczności Nnet od 1994 roku. Uważam więc, że jest zdecydowanie powód, dla którego SGD jest używane zamiast metod drugiego rzędu (i z pewnością chciałbym wyraźnego wyjaśnienia, dlaczego tak jest )
seanv507