Czytałem o optymalizatorze Adama do głębokiego uczenia się i natknąłem się na następujące zdanie w nowej książce Deep Learning autorstwa Bengio, Goodfellow i Courville:
Adam jest ogólnie uważany za dość odpornego na wybór hiper parametrów, chociaż szybkość uczenia się czasami trzeba zmienić w stosunku do sugerowanego domyślnego.
jeśli to prawda, jest to wielka sprawa, ponieważ wyszukiwanie hiperparametrów może być naprawdę ważne (przynajmniej z mojego doświadczenia) w statystycznej wydajności systemu głębokiego uczenia się. Zatem moje pytanie brzmi: dlaczego Adam Robust spełnia tak ważne parametry? Specjalnie i ?
Przeczytałem artykuł Adama i nie wyjaśnia on, dlaczego działa z tymi parametrami ani dlaczego jest niezawodny. Czy uzasadniają to gdzie indziej?
Ponadto, gdy czytam artykuł, wydaje się, że liczba hiper parametrów, które wypróbowali, była bardzo mała, dla tylko 2 i dla tylko 3. Jak to może być dokładne badanie empiryczne, jeśli działa tylko na hiperparametrach 2x3 ?
źródło
Odpowiedzi:
Jeśli chodzi o dowody dotyczące roszczenia, uważam, że jedyne dowody na poparcie roszczenia można znaleźć na rycinie 4 w ich pracy . Pokazują ostateczne wyniki w zakresie różnych wartości dla , β 2 i α .β1 β2) α
źródło
Kontrastuje to z klasycznym waniliowym stochastycznym spadkiem gradientu, w którym:
Adam nie jest jedynym optymistą z adaptacyjnymi wskaźnikami uczenia się. Jak stwierdza sam artykuł Adama, jest on wysoce powiązany z Adagrad i Rmsprop, które są również wyjątkowo niewrażliwe na hiperparametry. Szczególnie Rmsprop działa całkiem nieźle.
Ale Adam jest ogólnie najlepszy. Z nielicznymi wyjątkami Adam zrobi, co chcesz :)
Istnieje kilka dość patologicznych przypadków, w których Adam nie zadziała, szczególnie w przypadku niektórych bardzo niestacjonarnych dystrybucji. W takich przypadkach Rmsprop jest doskonałą opcją gotowości. Ale ogólnie rzecz biorąc, w większości niepatologicznych przypadków Adam działa wyjątkowo dobrze.
źródło
Patrząc na formuły ADAM, wydaje się nieco zastanawiające, że po bardzo dużej liczbie iteracji wsadowych (powiedzmy ~ 400k) wielkość samego gradientu opartego na błędach nie odgrywa żadnej rzeczywistej roli w podjętym kroku, który wydaje się aspirować parametr konfiguracyjny szybkości uczenia się w odpowiednim znaku.
Być może ADAM lepiej kontroluje dostosowanie wagi niż zwykły SGD podczas pierwszych iteracji / epok, ale kontynuacja aktualizacji wydaje się być zredukowana do czegoś naiwnego (?) Czy ktoś może podać intuicję, dlaczego tak naprawdę jest pożądany i / lub zwykle działa dobrze?
źródło