Podręcznik
2. Zadanie minimalizacji
2.4. Algorytmy gradientowe - matematyczna droga w dół ...
W przypadku optymalizacji w przestrzeni ciągłej, jedną z najstarszych i najbardziej klasycznych grup metod są algorytmy gradientowe. Ich zasada działania opiera się na założeniu, że funkcja celu jest gładka – czyli ciągła i różniczkowalna.
Intuicja: jak zejść po schodach w ciemności
Wyobraź sobie, że stoisz na środku zbocza i chcesz zejść na sam dół. Nie widzisz całej doliny – widzisz tylko to, co masz bezpośrednio wokół siebie. Możesz dotknąć ziemi wokół i ocenić, gdzie jest najstromiej w dół – i właśnie w tę stronę zrobisz krok. To właśnie jest gradient: wektor wskazujący kierunek najszybszego spadku wartości funkcji.
Gradient i krok
Jeśli funkcja celu to , a
, to gradient to:
Podstawowa iteracyjna formuła wygląda następująco:
Metoda największego spadku
To najprostszy algorytm gradientowy. Za każdym razem idziemy w kierunku przeciwnym do gradientu – czyli w stronę, gdzie funkcja maleje najszybciej. W praktyce ważne jest dobranie odpowiedniej wartości , bo:
- zbyt duży krok może przeskoczyć minimum,
- zbyt mały krok prowadzi do powolnej zbieżności.
Metoda Newtona i quasi-Newtona
Metoda Newtona wykorzystuje nie tylko gradient, ale też drugą pochodną – tzw. hesjan (macierz drugich pochodnych cząstkowych):
Formuła iteracyjna:
Dlaczego druga pochodna daje nam przewagę? Bo zawiera informację o krzywiźnie funkcji celu. Gradient mówi tylko, w którą stronę funkcja maleje – ale nie mówi, jak szybko. Hesjan dostarcza wiedzy o tym, jak zakrzywiona jest funkcja w danym punkcie. Dzięki temu można:
- lepiej dobrać długość kroku (adaptacyjnie, zamiast na sztywno),
- szybciej zbliżyć się do minimum – zwłaszcza w pobliżu punktu optymalnego,
- unikać efektu "zygzakowania" w przypadku funkcji o bardzo różnych krzywiznach w różnych kierunkach.
Warunki stopu
W algorytmach gradientowych zatrzymujemy się, gdy:
– gradient jest prawie zerowy,
– zmiana rozwiązania jest minimalna,
- osiągnięto maksymalną liczbę iteracji.
Ograniczenia i trudności
- Minimum lokalne – mogą "utknąć" w lokalnym minimum, nie docierając do globalnego,
- Brak gładkości – jeśli funkcja celu nie jest różniczkowalna, nie możemy użyć pochodnych,
- Siodła i płaskowyże – gradient może nie prowadzić w dobrą stronę.
Przykłady zastosowań
- Optymalizacja kształtów elementów mechanicznych,
- Minimalizacja strat w sieciach neuronowych (np. SGD w ML),
- Wyznaczanie parametrów modeli analitycznych,
- Problemy portfela inwestycyjnego, gdzie funkcja ryzyka i zwrotu ma formę analityczną.
W kolejnym rozdziale zobaczymy, jak w algorytmach klasycznych i gradientowych można wprowadzać ograniczenia – zarówno twarde (jawne) jak i miękkie (np. kary za przekroczenie dopuszczalnego zakresu).