Zejście gradientowe - Gradient descent

Opadanie gradientowe w 2D

Gradient zejście jest pierwszego rzędu iteracyjny optymalizacji algorytm dla znalezienia lokalnego minimum o różniczkowalnej funkcji . Chodzi o to, aby powtarzać kroki w kierunku przeciwnym do gradientu (lub przybliżonego gradientu) funkcji w bieżącym punkcie, ponieważ jest to kierunek najbardziej stromego opadania. I odwrotnie, krok w kierunku gradientu prowadzi do lokalnego maksimum tej funkcji; procedura ta nazywana jest wówczas wznoszeniem gradientowym .

Gradient zejście jest powszechnie przypisywane Cauchy'ego , który pierwszy zaproponował go w 1847 roku Hadamard niezależnie zaproponował podobną metodę w 1907. Jego właściwości konwergencji dla nieliniowych problemów optymalizacyjnych zostały po raz pierwszy badany przez Haskell Curry w 1944 roku, przy czym metoda coraz dobrze badane i używany w następnych dziesięcioleciach, często nazywany również najbardziej stromym zejściem.

Opis

Ilustracja spadku nachylenia na serii zestawów poziomów

Gradient zejście opiera się na obserwacji, że jeśli funkcja multi-zmienna jest określona i różniczkowalna w pewnym otoczeniu punktu , a następnie maleje najszybciej jeśli ktoś idzie od w kierunku gradientu negatyw w . Wynika z tego, że jeśli

na wystarczająco małe, to . Innymi słowy, termin jest odejmowany, ponieważ chcemy poruszać się pod kątem, w kierunku minimum lokalnego. Mając na uwadze tę obserwację, zaczynamy od odgadnięcia lokalnego minimum i rozważamy ciąg taki, że

Mamy ciąg monotoniczny

więc miejmy nadzieję, że sekwencja zbiega się do pożądanego minimum lokalnego. Zauważ, że wartość rozmiaru kroku może się zmieniać w każdej iteracji. Przy pewnych założeniach dotyczących funkcji (na przykład wypukła i Lipschitz ) i szczególnych wyborach (np. wybranych przez wyszukiwanie liniowe spełniające warunki Wolfe'a lub metodę Barzilai-Borweina pokazaną poniżej),

można zagwarantować konwergencję do lokalnego minimum. Gdy funkcja jest wypukła , wszystkie minima lokalne są również minimami globalnymi, więc w tym przypadku gradient może być zbieżny do rozwiązania globalnego.

Proces ten jest zilustrowany na sąsiednim rysunku. Tutaj zakłada się, że jest zdefiniowana na płaszczyźnie, a jej wykres ma kształt misy . Niebieskie krzywe to linie konturowe , czyli regiony, na których wartość jest stała. Czerwona strzałka wychodząca z punktu pokazuje kierunek ujemnego gradientu w tym punkcie. Zauważ, że (ujemny) gradient w punkcie jest prostopadły do linii konturu przechodzącej przez ten punkt. Widzimy, że zejście gradientowe prowadzi nas do dna miski, czyli do punktu, w którym wartość funkcji jest minimalna.

Analogia do zrozumienia opadania gradientu

Mgła w górach

Podstawową intuicję stojącą za spadkiem gradientowym można zilustrować za pomocą hipotetycznego scenariusza. Człowiek utknął w górach i próbuje zejść (tj. próbuje znaleźć globalne minimum). Jest gęsta mgła, tak że widoczność jest bardzo niska. Dlatego ścieżka w dół góry nie jest widoczna, więc muszą korzystać z lokalnych informacji, aby znaleźć minimum. Mogą stosować metodę schodzenia gradientowego, która polega na przyjrzeniu się stromości wzgórza w ich aktualnej pozycji, a następnie podążaniu w kierunku najbardziej stromego zejścia (tj. w dół). Gdyby próbowali znaleźć szczyt góry (tj. maksimum), wówczas podążaliby w kierunku najbardziej stromego podejścia (tj. pod górę). Korzystając z tej metody, w końcu znaleźliby drogę w dół góry lub prawdopodobnie utknęli w jakiejś dziurze (tj. lokalnym minimum lub punkcie siodła ), jak górskie jezioro. Załóżmy jednak również, że stromość wzgórza nie jest od razu oczywista przy prostej obserwacji, ale raczej wymaga wyrafinowanego narzędzia do pomiaru, które osoba akurat posiada. Pomiar stromości wzgórza za pomocą instrumentu zajmuje trochę czasu, dlatego powinni zminimalizować jego użycie, jeśli chcą zejść z góry przed zachodem słońca. Trudność polega zatem na wyborze częstotliwości, z jaką należy mierzyć stromość wzgórza, aby nie zboczyć z trasy.

W tej analogii osoba reprezentuje algorytm, a ścieżka schodząca z góry reprezentuje sekwencję ustawień parametrów, które algorytm zbada. Stromość wzgórza reprezentuje nachylenie powierzchni błędu w tym punkcie. Instrumentem używanym do pomiaru stromości jest różniczkowanie (nachylenie powierzchni błędu można obliczyć, biorąc pochodną kwadratu funkcji błędu w tym punkcie). Kierunek, w którym wybierają podróż, jest zgodny z nachyleniem powierzchni błędu w tym punkcie. Czas, przez jaki podróżują przed wykonaniem kolejnego pomiaru, to rozmiar kroku.

Przykłady

Zejście gradientowe ma problemy z funkcjami patologicznymi, takimi jak pokazana tutaj funkcja Rosenbrocka .

Funkcja Rosenbrocka ma wąską zakrzywioną dolinę, która zawiera minimum. Dno doliny jest bardzo płaskie. Ze względu na zakrzywioną płaską dolinę optymalizacja przebiega powoli zygzakiem z małymi krokami w kierunku minimum. Whiplash Gradient Descent rozwiązuje ten problem w szczególności.

Banan-SteepDesc.gif

Zygzakowaty charakter tej metody jest również widoczny poniżej, gdzie stosuje się metodę opadania gradientu

Algorytm opadania gradientu w akcji.  (1: kontur)Algorytm opadania gradientu w akcji.  (2: powierzchnia)

Wybór wielkości kroku i kierunku opadania

Ponieważ użycie zbyt małego kroku spowolniłoby zbieżność, a zbyt dużego doprowadziłoby do rozbieżności, znalezienie dobrego ustawienia jest ważnym problemem praktycznym. Philip Wolfe opowiadał się również za stosowaniem „sprytnych wyborów kierunku [zejścia]” w praktyce. Chociaż użycie kierunku, który odbiega od najbardziej stromego kierunku opadania, może wydawać się sprzeczne z intuicją, chodzi o to, że mniejsze nachylenie można zrekompensować, utrzymując się na znacznie większej odległości.

Aby zrozumieć to matematycznie, użyjmy kierunku i rozmiaru kroku i rozważmy bardziej ogólną aktualizację:

.

Znalezienie dobrych ustawień i wymaga trochę przemyślenia. Przede wszystkim chcielibyśmy, aby kierunek aktualizacji wskazywał w dół. Matematycznie, pozwalając na oznaczenie kąta pomiędzy i , wymaga to, aby powiedzieć więcej, potrzebujemy więcej informacji o funkcji celu, którą optymalizujemy. Przy dość słabym założeniu, które jest ciągle różniczkowalne, możemy udowodnić, że:

 

 

 

 

( 1 )

Ta nierówność implikuje, że kwota, o którą możemy być pewni, że funkcja zostanie zmniejszona, zależy od kompromisu między dwoma wyrazami w nawiasach kwadratowych. Pierwszy wyraz w nawiasach kwadratowych mierzy kąt między kierunkiem opadania a gradientem ujemnym. Drugi termin mierzy, jak szybko gradient zmienia się wzdłuż kierunku opadania.

W zasadzie nierówność ( 1 ) można zoptymalizować i wybrać optymalny rozmiar kroku i kierunek. Problem polega na tym, że ocena drugiego składnika w nawiasach kwadratowych wymaga oceny , a dodatkowe oceny gradientu są generalnie drogie i niepożądane. Oto kilka sposobów na obejście tego problemu:

  • Zrezygnuj z zalet sprytnego kierunku opadania, ustawiając , i użyj wyszukiwania linii, aby znaleźć odpowiedni rozmiar kroku , taki, który spełnia warunki Wolfe'a .
  • Zakładając, że jest to podwójnie różniczkowe, użyj jego hessu do oszacowania Następnie wybierz i optymalizując nierówność ( 1 ).
  • Zakładając, że jest to Lipschitz , użyj jego stałej Lipschitza do ograniczenia Następnie wybierz i optymalizując nierówność ( 1 ).
  • Utwórz niestandardowy model for . Następnie wybierz i optymalizując nierówności ( 1 ).
  • Przy silniejszych założeniach dotyczących funkcji, takich jak wypukłość , możliwe są bardziej zaawansowane techniki .

Zazwyczaj postępując zgodnie z jednym z powyższych przepisów, można zagwarantować zbieżność z lokalnym minimum. Gdy funkcja jest wypukła , wszystkie minima lokalne są również minimami globalnymi, więc w tym przypadku gradient może być zbieżny do rozwiązania globalnego.

Rozwiązanie układu liniowego

Najbardziej stromy algorytm opadania zastosowany do filtra Wienera

Opadanie gradientowe może być wykorzystane do rozwiązania układu równań liniowych

przeformułowany jako kwadratowy problem minimalizacji. Jeżeli macierz systemu jest rzeczywista symetryczna i dodatnio określona , funkcję celu definiuje się jako funkcję kwadratową, z minimalizacją

aby

Dla ogólnej macierzy rzeczywistej , liniowe najmniejszych kwadratów definiują

W tradycyjnych liniowych najmniejszych kwadratów dla prawdziwych i na euklidesowej normą jest używany, w którym to przypadku

Wyszukiwania linia minimalizacja znalezienie lokalnie optymalny rozmiar krok na każdej iteracji może być wykonane analitycznie dla funkcji kwadratowej i jawnych wzorów na lokalnie Optymalna są znane.

Na przykład dla rzeczywistej macierzy symetrycznej i dodatnio określonej prosty algorytm może wyglądać następująco:

Aby uniknąć podwójnego mnożenia na iterację, zauważamy, że implikuje , co daje tradycyjnemu algorytmowi,

Metoda ta jest rzadko wykorzystywana do rozwiązywania równań liniowych, a metoda gradientu sprzężonego jest jedną z najpopularniejszych alternatyw. Liczba gradientów iteracji opadania jest zwykle proporcjonalna do widmowej liczby stan matrycy systemu (stosunek maksymalnej do minimalnej wartości własnych w ) , przy czym zbieżność koniugatu metodą gradientu jest typowo określane przez pierwiastek kwadratowy liczby stanów chorobowych, np , jest znacznie szybszy. Obie metody mogą skorzystać na uwarunkowaniu wstępnym , gdzie opadanie gradientowe może wymagać mniej założeń dotyczących uwarunkowania wstępnego.

Rozwiązanie systemu nieliniowego

Opadanie gradientowe można również wykorzystać do rozwiązania układu równań nieliniowych . Poniżej znajduje się przykład, który pokazuje, jak użyć gradientu do rozwiązania dla trzech nieznanych zmiennych, x 1 , x 2 i x 3 . Ten przykład pokazuje jedną iterację opadania gradientu.

Rozważ nieliniowy układ równań

Przedstawmy powiązaną funkcję

gdzie

Można by teraz zdefiniować funkcję celu

które postaramy się zminimalizować. Jako wstępne przypuszczenie użyjmy

Wiemy to

gdzie macierz Jakobian jest dana przez

Obliczamy:

Zatem

oraz

Animacja przedstawiająca pierwsze 83 iteracje opadania gradientu zastosowane w tym przykładzie. Powierzchnie są izopowierzchniami według aktualnego przypuszczenia , a strzałki wskazują kierunek opadania. Ze względu na mały i stały rozmiar kroku konwergencja jest powolna.

Teraz trzeba znaleźć odpowiedni taki, aby

Można to zrobić za pomocą dowolnego z różnych algorytmów wyszukiwania wierszy . Można też po prostu zgadywać, co daje

Oceniając funkcję celu przy tej wartości, daje

Spadek od do wartości następnego kroku

to znaczny spadek funkcji celu. Dalsze kroki jeszcze bardziej obniżyłyby jego wartość, aż do znalezienia przybliżonego rozwiązania systemu.

Uwagi

Zejście gradientowe działa w przestrzeniach o dowolnej liczbie wymiarów, nawet nieskończenie wymiarowych. W tym drugim przypadku przestrzeń poszukiwań jest zwykle przestrzenią funkcji i oblicza się pochodną Frécheta funkcjonału, który ma zostać zminimalizowany, aby określić kierunek opadania.

To gradientowe opadanie działa w dowolnej liczbie wymiarów (przynajmniej skończonej liczbie) może być postrzegane jako konsekwencja nierówności Cauchy'ego-Schwarza . Artykuł ten dowodzi, że wielkość iloczynu skalarnego (kropkowego) dwóch wektorów dowolnego wymiaru jest maksymalizowana, gdy są one współliniowe. W przypadku opadania gradientu miałoby to miejsce wtedy, gdy wektor korekt zmiennych niezależnych jest proporcjonalny do wektora gradientu pochodnych cząstkowych.

Opadanie gradientu może zająć wiele iteracji, aby obliczyć lokalne minimum z wymaganą dokładnością , jeśli krzywizna w różnych kierunkach jest bardzo różna dla danej funkcji. W przypadku takich funkcji uwarunkowanie wstępne , które zmienia geometrię przestrzeni w celu ukształtowania zestawów poziomów funkcji, takich jak koncentryczne okręgi , leczy powolną zbieżność. Konstruowanie i stosowanie uwarunkowań wstępnych może być jednak kosztowne obliczeniowo.

Opadanie gradientowe można połączyć z wyszukiwaniem linii , znajdując lokalnie optymalny rozmiar kroku w każdej iteracji. Wykonywanie wyszukiwania linii może być czasochłonne. I odwrotnie, użycie ustalonego małego może dać słabą zbieżność.

Metody oparte na metodzie Newtona i odwróceniu hessu przy użyciu sprzężonych technik gradientowych mogą być lepszymi alternatywami. Ogólnie rzecz biorąc, takie metody zbiegają się w mniejszej liczbie iteracji, ale koszt każdej iteracji jest wyższy. Przykładem jest metoda BFGS polegająca na obliczeniu na każdym kroku macierzy, przez którą mnożony jest wektor gradientu, aby przejść w „lepszym” kierunku, połączona z bardziej wyrafinowanym algorytmem wyszukiwania linii , aby znaleźć „najlepszą” wartość For skrajnie duże problemy, w których dominują kwestie pamięci komputerowej, należy zastosować metodę ograniczonej pamięci, taką jak L-BFGS, zamiast BFGS lub najbardziej strome zejście.

Zejście gradientowe można postrzegać jako zastosowanie metody Eulera do rozwiązywania równań różniczkowych zwyczajnych do przepływu gradientowego . Z kolei to równanie może być wyprowadzone jako optymalny regulator dla układu sterowania o podanym w sprzężeniu zwrotnym .

Modyfikacje

Opadanie gradientowe może zbiegać się do lokalnego minimum i zwalniać w sąsiedztwie punktu siodełkowego . Nawet w przypadku nieograniczonej minimalizacji kwadratowej opadanie gradientu rozwija zygzakowaty wzór kolejnych iteracji w miarę postępu iteracji, co powoduje powolną zbieżność. Zaproponowano wiele modyfikacji gradientu opadania w celu usunięcia tych braków.

Szybkie metody gradientowe

Jurij Niestierow zaproponował prostą modyfikację, która umożliwia szybszą zbieżność problemów wypukłych i od tego czasu jest dalej uogólniana. W przypadku problemów gładkich bez ograniczeń metoda ta nazywana jest metodą szybkiego gradientu (FGM) lub metodą gradientu przyspieszonego (AGM). W szczególności, jeśli funkcja różniczkowalna jest wypukła i jest funkcją Lipschitza i nie zakłada się, że jest silnie wypukła , wówczas błąd wartości celu generowanego na każdym kroku metodą gradientu opadania będzie ograniczony przez . Używając techniki przyspieszenia Niestierowa, błąd zmniejsza się przy . Wiadomo, że tempo spadku funkcji kosztu jest optymalne dla metod optymalizacji pierwszego rzędu. Niemniej jednak istnieje możliwość ulepszenia algorytmu poprzez zmniejszenie współczynnika stałego. Zoptymalizowane metody gradientowe (OGM) redukuje się, że stała się o współczynnik dwa, a to metoda optymalna pierwszego rzędu problemów na dużą skalę.

W przypadku problemów z ograniczeniami lub nierównych, FGM Niestierowa nazywana jest metodą szybkiego gradientu proksymalnego (FPGM), czyli przyspieszeniem metody gradientu proksymalnego .

Metoda pędu lub ciężkiej piłki

Próbując przełamać zygzakowaty wzór opadania gradientu, metoda pędu lub ciężkiej kuli wykorzystuje termin pędu w analogii do ciężkiej kuli ślizgającej się po powierzchni minimalizowanych wartości funkcji lub do ruchu masy w dynamice newtonowskiej przez lepki medium w konserwatywnym polu siłowym. Spadek gradientu z pędem zapamiętuje aktualizację rozwiązania w każdej iteracji i określa następną aktualizację jako liniową kombinację gradientu i poprzedniej aktualizacji. W przypadku nieograniczonej minimalizacji kwadratowej teoretyczna granica szybkości zbieżności metody ciężkiej kuli jest asymptotycznie taka sama jak w przypadku optymalnej metody gradientu sprzężonego .

Ta technika jest używana w stochastycznym zejściu gradientowym#Momentum oraz jako rozszerzenie algorytmów wstecznej propagacji błędów używanych do trenowania sztucznych sieci neuronowych .

Rozszerzenia

Opadanie gradientowe można rozszerzyć w celu obsługi wiązań , dołączając rzutowanie na zestaw wiązań. Ta metoda jest możliwa tylko wtedy, gdy projekcja jest wydajnie obliczana na komputerze. Przy odpowiednich założeniach metoda ta jest zbieżna. Metoda ta jest szczególnym przypadkiem algorytmu przód-tył dla wtrąceń monotonicznych (obejmującego programowanie wypukłe i nierówności wariacyjne ).

Zobacz też

Bibliografia

Dalsza lektura

Zewnętrzne linki

arxiv.org/2108.1283