Nesterov Momentum
Uczysz model przewidywać czas dostawy. W naszym małym przykładzie właściwa odpowiedź to 10 minut, a bieżąca prognoza wynosi 9. Wcześniejsze poprawki zwiększały prognozę; zachowana część ich ruchu chce dodać jeszcze 2 minuty. Sama bieżąca wskazówka też mówi „zwiększ”. Połączenie obu może jednak przenieść prognozę za daleko. Przydałoby się sprawdzić, jak wygląda błąd tam, dokąd niesie model jego pamięć.
Nesterov Momentum, nazywane też Nesterov Accelerated Gradient (NAG), to wariant aktualizacji modelu z pamięcią wcześniejszych ruchów: nową wskazówkę oblicza w przewidywanym położeniu po zachowanej części poprzedniego ruchu. Następnie koryguje ten ruch. Nie przewiduje przyszłych danych — ocenia ten sam przykład przy innym ustawieniu modelu. Taką postać opisują Sutskever i współautorzy, §2, równania 3–4 oraz §2.1.

Ta sama prognoza, dwa miejsca sprawdzenia
Oceniamy błąd jako połowę kwadratu różnicy między prognozą a 10. To funkcja straty: liczba, którą chcemy zmniejszać. Jej gradient, czyli wskazówka, jak mała zmiana prognozy wpływa na stratę, wynosi prognoza − 10. Ujemny podpowiada zwiększenie, dodatni — zmniejszenie. Współczynnik uczenia (learning rate) 0,2 ustala wielkość reakcji.
Zwykłe Momentum sprawdza gradient przy 9: otrzymuje −1. Nowa poprawka dodaje 0,2, obok zachowanego ruchu +2. Prognoza wynosi 11,2.
Nesterov najpierw wyznacza punkt sprawdzenia: 9 + 2 = 11. Gradient wynosi tam +1, więc nowa poprawka odejmuje 0,2. Wynik to 10,8. Zachowany ruch nadal zwiększa prognozę, ale wskazówka już go hamuje. Strata spada z 0,5 do 0,32; zwykłe Momentum podnosi ją do 0,72. To własny przykład jednej aktualizacji z identycznego stanu, nie porównanie całych treningów.
Sprawdzenie z wyprzedzeniem nie gwarantuje sukcesu
Zwiększ zachowany ruch do +3. Nesterov sprawdzi punkt 12 i odejmie 0,4, lecz skończy na 11,6. Strata 1,28 jest większa niż początkowe 0,5. Wcześniejsza korekta nie usuwa potrzeby dobierania wielkości kroków i pamięci. Także teoretyczne przewagi metody wymagają określonych warunków; nie są obietnicą szybszego treningu każdego LLM.
Poniżej zmieniasz zachowaną część ruchu, pozostawiając prognozę 9 i współczynnik 0,2. Najpierw przewidź wynik przy +2, potem odsłoń oba warianty. Przy zerowym zachowanym ruchu obie wskazówki i wyniki się pokryją. Każde ustawienie opisuje osobny, hipotetyczny stan — suwak nie odtwarza wcześniejszych kroków treningu.
Zapis dla jednego ustawienia
Po intuicji można zapisać regułę z pracy:
w to bieżące ustawienie (tutaj prognoza), v — poprzedni ruch, μ — zachowana jego część, y — punkt sprawdzenia, g(y) — gradient obliczony w tym punkcie, η — współczynnik uczenia, a t — numer kroku. Nasze +2 oznacza już μv, np. 0,8 × 2,5. W rzeczywistym modelu ustawień jest wiele; reguła działa na listach liczb.
To konwencja z równań 3–4 paperu. PyTorch 2.11 SGD, reguła i uwaga o Momentum/Nesterov zapisuje wariant przez bufor gradientów i zmienną opisującą inne położenie; nie należy podstawiać naszego w i v bezpośrednio jako jego parametrów i bufora. Demonstracja liczy wskazaną wyżej regułę z pracy.
Powiązania
- Momentum zachowuje ruch, ale w podstawowej postaci sprawdza gradient przy bieżącym ustawieniu.
- Stochastic Gradient Descent wyznacza wskazówki z losowo wybranych danych; można połączyć je z Nesterov Momentum. Nasz przykład ma stały cel i nie pokazuje losowości próbkowania.
- Optimizer State obejmuje pamięć potrzebną do kontynuacji aktualizacji, tutaj wcześniejszy ruch, a nie samą prognozę.
Wykorzystuję treści generowane przez AI jako część mojego codziennego procesu nauki.