Czy metody głębokiego wyszukiwania są używane w głębokim uczeniu się? Dlaczego nie?

18

Wiele samouczków online mówi o spadku gradientu i prawie wszystkie z nich mają ustalony rozmiar kroku (współczynnik uczenia ). Dlaczego nie ma potrzeby wyszukiwania linii (takiego jak wyszukiwanie linii wstecznej lub dokładne wyszukiwanie linii)?α

Haitao Du
źródło
5
„I prawie wszystkie z nich mają stały rozmiar kroku” - jesteś pewien? hiper parametry „szybkości uczenia się” powinny dostosowywać wielkość kroku do warunków. Bardzo popularny algorytm Adama dostosowuje rozmiar kroku
Aksakal
1
hmm, właściwie adaptacyjne metody gradientu wielkości kroku istnieją już od co najmniej 2011 roku, a są nawet cytowane na Wikipedii Stochastic pochodzenie gradientu . To nie są najgorętsze wiadomości. Nawet waniliowy SGD jest prawie zawsze używany z szybkością uczenia się, która zmienia się wraz z liczbą iteracji ( harmonogramem ). Teraz bardzo dobrym pytaniem byłoby: dlaczego, nawet jeśli istnieje tak wiele adaptacyjnych metod zejścia gradientowego, SGD nadal dominuje w świecie głębokiego uczenia się? Pytanie jest o wiele mniej banalne, niż mogłoby się wydawać.
DeltaIV
1
Cofanie wyszukiwania linii ustala kierunek, a następnie szuka sposobu na ograniczenie funkcji. Więc jeśli nie masz inteligentnego sposobu wyboru kierunku wyszukiwania, czeka Cię żmudna optymalizacja.
Alex R.
1
Nie widzę, aby wyszukiwanie liniowe miało sens dla SGD (w przeciwieństwie do gradientu [partii]) - więc powiedziałbym, że to jest powód.
seanv507
3
Podejrzewam, że powodem, dla którego wyszukiwanie linii nie jest zbyt popularne, jest grupowanie w gradiencie. Dostajesz partię, a następnie oblicz gradient. Nie ma sensu chodzić tam iz powrotem po linii z powodu szumu w gradiencie. Lepiej jest kontynuować z następną partią, może wyżarzając rozmiar kroku.
Aksakal

Odpowiedzi:

14

Gradientowe zejście waniliowe może być bardziej niezawodne dzięki wyszukiwaniu linii; Napisałem algorytmy, które to robią, a to czyni bardzo stabilnym algorytm (choć niekoniecznie szybki).

Jednak wyszukiwanie liniowych metod gradientów stochastycznych nie ma prawie żadnego sensu . Powodem, dla którego mówię, jest to, że jeśli przeprowadzamy wyszukiwanie linii oparte na minimalizowaniu funkcji pełnej utraty, natychmiast straciliśmy jedną z głównych motywacji do robienia metod stochastycznych; teraz musimy obliczyć funkcję pełnej straty dla każdej aktualizacji, która zazwyczaj ma koszt obliczeniowy porównywalny do obliczenia pełnej pierwszej pochodnej. Biorąc pod uwagę, że chcieliśmy uniknąć obliczenia pełnego gradientu ze względu na koszty obliczeniowe, wydaje się bardzo mało prawdopodobne, abyśmy byli zgodni z obliczeniem funkcji pełnej straty.

Alternatywnie możesz pomyśleć o zrobieniu czegoś w rodzaju wyszukiwania linii na podstawie losowo próbkowanego punktu danych. Jednak nie jest to również dobry pomysł; nie powie ci to nic o tym, czy posunąłeś się za daleko (co jest główną zaletą przeszukiwania linii). Załóżmy na przykład, że wykonujesz regresję logistyczną. Zatem każdy wynik jest po prostu 0 lub 1, a dla każdej pojedynczej próbki w prosty sposób uzyskujemy idealne rozdzielenie, więc optymalne rozwiązanie dla naszych parametrów regresji opartych na próbce 1 jest trywialnie lub dzięki efektowi Haucka Donnera. To nie jest dobrze.

EDYTOWAĆ

@DeltaIV wskazuje, że dotyczy to również mini-partii, a nie tylko pojedynczych próbek.

Cliff AB
źródło
4
bardzo fajnie (+1), ale nie jestem pewien, dlaczego w ostatnim przykładzie mówisz o pojedynczej próbce. Zgadzam się, że obliczanie wyszukiwania linii na podstawie mini-partii nie ma sensu, ale mini-partia wciąż zawiera 512 próbek (zwykle i mówiąc o ImageNet): oczywiście nie ma ustalonej wartości dla liczby próbek w mini - partia, ale 1 próbka mini-partii wydaje się nieco ekstremalna. Użyłeś ich tylko po to, aby wyjaśnić swój punkt, czy coś mi umknęło?
DeltaIV
2
@DeltaIV: pojedyncza próbka ma przede wszystkim pokazać, jak źle może być bardzo prosty problem. Gdybyśmy wykonali mini-partię z 512 próbkami na regresji logistycznej z ponad 512 współzmiennymi, moglibyśmy zobaczyć ten sam problem.
Cliff AB
10

Samouczki mówią o spadku gradientu prawdopodobnie dlatego, że jest to jeden z najprostszych algorytmów wykorzystywanych do optymalizacji, więc łatwo go wyjaśnić. Ponieważ większość takich samouczków jest raczej krótka, koncentrują się na prostych rzeczach. Istnieje co najmniej kilka popularnych algorytmów optymalizacji poza prostym spadkiem gradientu, które są używane do głębokiego uczenia się. W rzeczywistości ludzie często używają różnych algorytmów niż zejścia gradientowego, ponieważ zwykle zbiegają się szybciej. Niektóre z nich mają niestały współczynnik uczenia się (np. Maleją z czasem). Aby przejrzeć takie algorytmy, możesz przejrzeć Przegląd algorytmów optymalizacji spadku gradientu opublikowany przez Sebastiana Rudera (lub artykuł z arXived ).

Tim
źródło
2
@DeltaIV: Wszystkie „inne” fantazyjne metody są oparte na SGD. Głównym problemem jest to, że inne metody wykorzystują lokalną wiedzę do bardziej wydajnych skoków, a nie tylko losowe próbkowanie punktów w celu obliczenia gradientu. Ale SGD jest tak proste i szybkie, i samo w sobie nie jest straszne.
Alex R.
2
@AlexR. nie chodzi o to, że SGD jest prosty i / lub szybki. Prostota nie ma znaczenia, ponieważ wszystkie przyzwoite biblioteki implementują SGD, Adam, AdaGrad i RMSProp (i czasem więcej). Szybkość ma jeszcze mniejsze znaczenie, ponieważ czas spędzony np. Przez Adama na obliczeniu aktualizacji na poziomie parametrów jest nieskończenie mały w porównaniu z ogólnym czasem szkolenia modelu takiego jak ResNet. Chodzi tylko o to, że z jakiegoś powodu nie do końca dziś rozumiemy, SGD uogólnia się lepiej od nich. Więc w zasadzie, jeśli chcesz pokonać Sota, jesteś często zmuszeni do korzystania z niego, albo przynajmniej do niego przełączyć już później podczas treningu.
DeltaIV
3
@DeltaIV Bardzo interesujące. Otworzyłem artykuł, z którym się łączysz, i odwołuje się do przedruku Wilsona i wsp. 2017 dla twierdzenia, że ​​SGD uogólnia się lepiej niż Adam itp .; więc kiedy mówisz, że jest „dobrze znany”, masz na myśli dobrze znany od około pół roku, prawda?
ameba mówi Przywróć Monikę
2
@DeltaIV Thanks. Sam nie uczę się głęboko i nie zdawałem sobie z tego sprawy. Mniej więcej w 2012 roku, kiedy oglądałem wykłady Coursera Hintona, on głównie opowiadał się za RMSprop, aw ostatnich 1-2 latach miałem wrażenie, że wszyscy używają Adama (który zastępuje RMSprop, zgodnie z artykułem Adama). Kiedy w ubiegłym roku grałem z autoencoderami , zdałem sobie sprawę, że Adam działa znacznie szybciej niż SGD i od tego czasu po prostu zakładałem, że Adam jest obecnie wyborem domyślnym.
ameba mówi Przywróć Monikę
3
@CliffAB Tak, zależność między wczesnym zatrzymaniem a regularyzacją jest wyraźnie widoczna dla najmniejszych kwadratów, gdzie spadek gradientu działa w oparciu o wartość własną, a małe wartości własne są ostatnimi, które się zbliżają; mając na uwadze, że kara kalenicowa powoduje również karanie niewielkich wartości własnych. Rzuciłem tylko okiem na Wilsona i in. połączone powyżej, ale przynajmniej w ich przykładzie najmniejszych kwadratów SGD vs Adam inaczej nie tłumaczy się wczesnym lub późnym zatrzymaniem. Twierdzą, że są zbieżne z różnymi rozwiązaniami.
ameba mówi Przywróć Monikę