Dlaczego algorytm zniżania „Saddle-Free Newton” nie jest stosowany w praktyce?

13

Niedawno przeczytałem artykuł Yanna Dauphina i in. Identyfikowanie i atakowanie problemu punktu siodłowego w wielowymiarowej nie wypukłej optymalizacji , w której wprowadzono interesujący algorytm opadania o nazwie Saddle-Free Newton , który wydaje się być dokładnie dostosowany do optymalizacji sieci neuronowej i nie powinien cierpieć z powodu utknięcia w punktach siodłowych jak metody pierwszego rzędu jak waniliowy SGD.

Artykuł pochodzi z 2014 roku, więc nie jest niczym nowym, jednak nie widziałem, aby był używany „na wolności”. Dlaczego ta metoda nie jest używana? Czy obliczenia Hesji są zbyt wygórowane dla rzeczywistych problemów / sieci? Czy istnieje jakaś implementacja tego algorytmu typu open source, która może być używana z niektórymi głównymi platformami do głębokiego uczenia się?

Aktualizacja lutego 2019: dostępna jest teraz implementacja: https://github.com/dave-fernandes/SaddleFreeOptimizer )

Jan Kukacka
źródło
Dobre pytanie, nic nie mogłem znaleźć. Jednak pseudokod jest bardzo prosty, więc możesz spróbować samemu, w którym to przypadku istnieje kilka użytecznych szczegółów implementacyjnych w jednej z prac doktorskich autorów (strona 103, papyrus.bib.umontreal.ca/xmlui/bitstream/handle / 1866/13710 /… )
galoosh33
1
Odwołanie do tego samego artykułu znalazłem w poście na blogu Uber Deep-Neuroevolution. Link: eng.uber.com/deep-neuroevolution Możesz zapytać autora, czy ma jakieś wdrożenie online / udostępnione za pośrednictwem GitHub.
Cantren,
oto implementacja dla TensorFlow: github.com/dave-fernandes/SaddleFreeOptimizer
Dave F
Gdybym musiał zgadywać, moim założeniem byłoby, że obliczenie + odwrócenie Hesjan jest niepraktyczne, gdy twój model ma miliony parametrów.
Sycorax mówi Przywróć Monikę
1
Czy możesz uściślić swoje pytanie z „czy istnieje implementacja”? To wydaje się stać, tak / nie odpowiedzi i / lub brzmi jak żądanie oprogramowania (które jest tutaj nie na temat). Czy twoje pytanie można by rozwinąć w coś w rodzaju: „jakie trudności wyjaśniają, dlaczego wydaje się, że nie było więcej wdrożeń”?
Gung - Przywróć Monikę

Odpowiedzi:

2

Lepsza optymalizacja niekoniecznie oznacza lepszy model. Ostatecznie zależy nam na tym, jak dobrze model się uogólnia, a niekoniecznie na tym, jak dobra jest wydajność zestawu treningowego. Techniki optymalizacji bardziej zaawansowane zwykle działają lepiej i szybciej zbiegają się w zestawie treningowym, ale nie zawsze generalizują tak dobrze, jak podstawowe algorytmy. Na przykład ten dokument pokazuje, że SGD może generalizować lepiej niż optymalizator ADAM. Może tak być również w przypadku niektórych algorytmów optymalizacji drugiego rzędu.


[Edytuj] Usunięto pierwszy punkt, ponieważ nie ma tutaj zastosowania. Dzięki Bayerj za zwrócenie na to uwagi.

Soroush
źródło
1
Chociaż zgadzam się z drugim punktem, pierwszy nie jest tutaj ważny. Autorzy proponują optymalizację tylko w podprzestrzeni Kryłowa, co nie wymaga kwadratowej złożoności.
bayerj