Back to archive
#ai#llm#glossary#aigen

Momentum

Chcesz nauczyć prosty model przewidywać czas dostawy. W naszym małym przykładzie właściwy wynik to 10 minut, a model zaczyna od 6. Po każdej poprawce sprawdza, w którą stronę dalej zmienić przewidywanie. Jeśli pamięta tylko ostatnią wskazówkę, nie wykorzystuje tego, że kilka wcześniejszych prowadziło w tę samą stronę.

Momentum dodaje do kolejnych poprawek modelu pamięć wcześniejszych wskazówek. Zachowuje część poprzedniego śladu i łączy ją z nowym gradientem — informacją, jak mała zmiana ustawienia wpływa na błąd. Zgodne wskazówki mogą się wzmacniać; wpływ dawnych stopniowo słabnie. Podstawowy wariant, classical momentum, opisują Sutskever i współautorzy, §2, równania 1–2.

Koło zamachowe z wygasającymi śladami obrotu i małą strzałką skierowaną przeciwnie, jako metafora ruchu podtrzymywanego przez wcześniejsze poprawki.

Dwie poprawki tej samej prognozy

Żeby policzyć przykład, oceniamy błąd jako połowę kwadratu różnicy między prognozą a 10. To własna, uproszczona funkcja straty: liczba, którą chcemy zmniejszać. Jej gradient wynosi prognoza − 10. Ujemny podpowiada zwiększenie prognozy, dodatni — zmniejszenie. Wielkość reakcji ustalamy współczynnikiem uczenia (learning rate) 0,2.

Bez pamięci pierwszy krok daje 6 − 0,2 × (−4) = 6,8. Drugi używa tylko nowego gradientu −3,2: wynik to 7,44.

Z Momentum również zaczynamy od 6,8, lecz przy drugiej poprawce zachowujemy 80% poprzedniego śladu. Nowy ślad to 0,8 × (−4) + (−3,2) = −6,4, więc prognoza rośnie do 8,08. Ta sama bieżąca wskazówka daje większą poprawkę dzięki historii. Nie oznacza to zapamiętywania wszystkich dostaw.

Oto stosowana reguła, zgodna z podstawowym wariantem w dokumentacji PyTorch 2.11 SGD, uwaga o Momentum:

bt+1=μbt+gt,wt+1=wt−ηbt+1.b_{t+1}=\mu b_t+g_t,\qquad w_{t+1}=w_t-\eta b_{t+1}.

w to prognoza, g — bieżący gradient, b — zapamiętany ślad, t — numer kroku. μ określa zachowaną część śladu, a η wielkość reakcji. Zaczynamy z b=0. Przy μ=0 zostaje zwykła poprawka bez pamięci. Używamy stałego η=0,2, bez dodatkowych korekt algorytmu.

Dlaczego pamięć wymaga ostrożności?

W tym przykładzie Momentum szybciej zbliża prognozę do 10, ale w czwartym kroku przekracza cel: 10,7168. Następny gradient podpowiada już zmniejszenie prognozy, lecz wcześniejszy ślad nadal ją zwiększa — do 11,55648. Strata rośnie z około 0,257 do 1,211. Pamięć może więc pomagać, a później opóźniać zmianę kierunku; nie gwarantuje poprawy po każdym kroku.

Przejdź kolejne kroki poniżej. Przy kroku 5 porównaj wskazówkę z faktycznym ruchem. Potem ustaw pamięć na zero: czy obie drogi się pokryją? Zmiana suwaka przelicza całą drogę od tego samego startu.

Model językowy ma wiele wag — liczb sterujących jego obliczeniami — i trudniejszą funkcję straty. Momentum może uzupełniać Stochastic Gradient Descent, który wylicza wskazówki z części danych. Zachowany ślad należy do Optimizer State, czyli pamięci algorytmu aktualizacji. Adam także wykorzystuje historię kierunku, ale dodatkowo dostosowuje skalę reakcji osobno dla wag; jego reguła różni się od pokazanego Momentum.

Wykorzystuję treści generowane przez AI jako część mojego codziennego procesu nauki.