Metoda gradientu prostego (ang.Gradient descent) – algorytm iteracyjny mający na celu znalezienie minimum lokalnegofunkcji wielu zmiennych rzeczywistych o wartościach w zbiorze liczb rzeczywistych; zasadniczym elementem algorytmu jest obliczanie gradientu funkcji w punkcie startowym oraz w kolejnych punktach i przemieszczanie się w kierunku przeciwnym do wektora gradientu funkcji. To, które minimum lokalne zostanie znalezione, zależy od przyjętego punktu startowego algorytmu. Obliczanie gradientu wymaga, by funkcja była różniczkowalna. Problem znajdowania minimum funkcji występuje jako podstawowe zagadnienie problemów optymalizacji. Wtedy funkcją, dla której szuka się minimum, jest tzw. funkcji straty / funkcja kosztu.
Sformułowanie metody spadku gradientowego jest zazwyczaj przypisywane Augustinowi-Louisowi Cauchy’emu, który jako pierwszy zasugerował ją w 1847 roku[1]. Jacques Hadamard niezależnie zaproponował podobną metodę w 1907 roku[2][3]. Problem zbieżności metody dla nieliniowych problemów optymalizacyjnych został po raz pierwszy zbadany przez Haskella Curry’ego w 1944 roku[4], a metoda była coraz intensywniej badana i stosowana w kolejnych dekadach[5].
Terminologia. Metoda gradientu prostego ze stałym współczynnikiem oraz ze współczynnikiem najszybszego spadku
Metoda gradientu - trajektorie z punktu startowego do minimum wyznaczone metodą stałego kroku (rozmiar kroku=0.05, 381 kroków - czerwona trajektoria) i optymalnie dobieranego kroku w metodzie maksymalnego spadku (117 kroków - niebieska trajektoria). Widać, że metodą doboru optymalnego kroku punkt szybko dociera w pobliże minimum (dalej zwalnia, gdyż minimum jest bardzo wypłaszczone).Metoda gradientu - zbyt duży rozmiar kroku=0.15 prowadzi do oscylacji w pobliżu minimum, nie osiągając go (czerwona trajektoria). Dla porównania pokazano trajektorię z optymalnie dobranym krokiem (niebieska trajektoria).
Termin „gradient prosty” w polskiej literaturze matematycznej oznacza bazowy, klasyczny gradient i odróżnia go od bardziej złożonych metod (np. Newtona czy quasi-Newtona). Nie jest dosłownym tłumaczeniem angielskiego „Gradient descent”.
Słowo „prosty” nie odnosi się do łatwości doboruwspółczynnika kroku w kolejnych iteracjach; w najprostszej wersji metoda używa stałej wartości . W wariantach bardziej zaawansowanych dobiera się w każdej iteracji, aby zwiększyć szybkość i skuteczność znalezienia minimum. W szczególności w metodzie gradientu prostego z maksymalnym spadkiem w każdym kroku (ang. maximal line search) znajduje się taką wartość , aby przemieszczając sięwzdłuż gradientu wybrać punkt, w którym funkcja maksymalnie obniża się.
Reasumując, w metodzie gradientu prostego mamy
krok w każdej iteracji jest skierowany przeciwnie do gradientu funkcji, wystawionego w aktualnym punkcie , tj. wzdłuż wektora
nowy punkt oblicza się ze wzoru , gdzie - współczynnik, który można dobrać w każdym kroku indywidualnie
metoda stałego współczynnika: w najprostszym przypadku ustala się jako stałą wartość dla całej iteracji
metoda maksymalnego spadku (ang. maximal line search) - to najbardziej optymalna metoda, gdzie dobiera się tak, by w nowym punkcie wartość funkcji była możliwie najmniejsza: ; każdy ruch jest maksymalnie efektywny, co przyspiesza zbieżność (szczególnie istotne dla funkcji kwadratowych lub o wydłużonych dolinach).
w innych wariantach stosuje się często przybliżone line search, jeśli maksymalne minimalizowanie byłoby kosztowne.
Metoda gradientu prostego funkcji dwóch zmiennych : widać, że w zależności od punktu początkowego metoda prowadzi do znalezienia różnych minimów lokalnych Minimum globalne - to najmniejsze z minimów lokalnych.
Jeżeli jest ściśle wypukła w badanej dziedzinie , to istnieje jedno globalne minimum i algorytm gradientu znajdzie to jedno minimum.
Jeżeli funkcja nie jest ściśle wypukła, to ma wiele minimów. Wtedy w metodzie gradientu zostanie znalezione jedno minimum lokalne, w zależności od doboru punktu startowego . Aby znaleźć minimum globalne, trzeba poszukać wszystkich minimów, wybierając różne punkty startowe (np. zbadać, do jakich minimów prowadzą punkty startowe ulokowane w węzłach gęstej siatki, pokrywającej całą dziedzinę funkcji - por. animacja; lub posłużyć się metodą Metropolisa-Hastingsa, która pozwala efektywnie poszukiwać minimum globalnego w przestrzeniach wielowymiarowych). Minimum globalne - to najmniejsze ze znalezionych minimów lokalnych.
Ilustracja metody gradientu prostego dla dwuwymiarowej funkcji celu . Widoczne są 4 pierwsze kroki algorytmu: punkty , leżą na płaszczyźnie, stanowiącej dziedzinę funkcji i tworzą ciąg zmierzający w kierunku punktu, w którym funkcja przyjmuje wartość minimalną. Linie krzywe zamknięte - to linie o jednakowych wartościach funkcji celu.
Na początku wybierany jest dowolny punkt startowy W punkcie tym obliczany jest kierunek poszukiwań , taki że , tj. jest to antygradient funkcji w punkcie czyli wektor wskazujący kierunek najszybszego spadku funkcji. Następnie obliczany jest nowy punkt według wzoru
gdzie - dowolnie wybrana liczba rzeczywista, ale taka, by odległość od poprzedniego punktu nie była zbyt duża. Następnie oblicza się kolejne punkty
gdzie
- dowolnie wybrane liczby rzeczywiste
aż kolejny punkt spełni warunek stopu algorytmu (patrz dalej).
Współczynniki decydują o wielkości kolejnych kroków - im większe, tym większe kroki. Algorytm powinien być tak skonstruowany, aby znajdowane wartości funkcji malały w kolejnych krokach, tj.
(a) Jeżeli warunek ten nie jest w danym kroku spełniony, to należy powtórzyć krok z mniejszą wartością
(b) W wielu przypadkach przyjmuje się jednakowe wartości , tj.
W celu określenia, czy punkt w danym kroku dostatecznie dobrze przybliża minimum funkcji celu w metodzie gradientu prostego można użyć następujących kryteriów stopu (dla zadanej precyzji oraz normy w przestrzeni ):
Metoda gradientu prostego jest metodą o zbieżności liniowej. Oznacza to, iż przy spełnieniu założeń metody, odległości pomiędzy kolejnymi przybliżeniami a minimum funkcji maleją liniowo:
W kontekście metod gradientowych, funkcja kwadratowa to funkcja wielu zmiennych o wartościach rzeczywistych, o postaci ogólnej:
gdzie:
Trajektoria punktu po dziedzinie funkcji wyznaczona metodą gradientu. – wektor zmiennych zapisany w postaci kolumny,
– wektor zmiennych transponowany (zapisany w postaci wiersza),
– macierz symetryczna i dodatnio określona,
– wektor,
– stała liczba.
Funkcja kwadratowa jest klasycznym przypadkiem testowym dla metod gradientowych, ponieważ gradient zależy liniowo od :
Dzięki temu łatwo obliczyć optymalny krok. W przypadku funkcji kwadratowej z dodatnio określoną macierzą , metoda ta z dokładnym doborem kroku (exact line search) zbiega do minimum w skończonej liczbie kroków lub bardzo szybko.
Trajektoria punktu po wykresie funkcji wyznaczona metodą gradientu.
Charakterystyka
Minimum funkcji kwadratowej jest jednoznaczne i wynosi , gdzie - macierz odwrotna do macierzy (wynika to z rozwiązania równania na zerowanie się gradientu: )
Wydłużone doliny (tzn. różne wartości własne macierzy ) pokazują, jak szybkość zbieżności zależy od doboru kroku
Funkcje kwadratowe są często używane do ilustrowania różnicy między metodą stałego kroku a line search.
Rozważmy funkcję dwu zmiennych, o wartościach w dziedzinie rzeczywistej
Funkcja ta jest ciągła, różniczkowalna, wypukła w otoczeniu wybranego punktu startowego. Stosując metodę gradientu wyznaczamy trajektorię punktu, która zmierza do lokalnego minimum (por. rysunki obok).
Jacques Hadamard. Mémoire sur le problème d'analyse relatif à l'équilibre des plaques élastiques encastrées. „Mémoires présentés par divers savants éstrangers à l'Académie des Sciences de l'Institut de France”, 1908.
R. Courant. Variational methods for the solution of problems of equilibrium and vibrations. „Bulletin of the American Mathematical Society”, s. 1–23, 1943. DOI: 10.1090/S0002-9904-1943-07818-4.
Haskell B. Curry. The Method of Steepest Descent for Non-linear Minimization Problems. „Quart. Appl. Math.”, s. 258–261, 1944. DOI: 10.1090/qam/10667.
Akilov, G. P.; Kantorovich, L. V. (1982). Functional Analysis (2nd ed.). Pergamon Press, ISBN 0-08-023036-9