AdamW
Przewidujesz liczbę zgłoszeń do działu wsparcia. Prosty model liczy „liczba zespołów × a + b”: a określa wkład jednego zespołu, a b stałą część prognozy. Te uczone liczby to wagi. Przy dwóch zespołach, a = 2 i b = 10 model przewiduje 14 zgłoszeń — dokładnie tyle, ile było w przykładzie.
Masz jednak mało danych. Chcesz ograniczać wielkość wag, żeby model nie opierał się bez potrzeby na dużych liczbach. Jedna metoda dodaje do oceny błędu karę za duże wagi. Przy algorytmie Adam taka kara przechodzi przez mechanizm dobierania kroku i nie daje tego samego efektu co bezpośrednie pomniejszenie każdej wagi o ten sam procent.
AdamW to wariant Adam, który oddziela aktualizację wynikającą z błędu na danych od weight decay — proporcjonalnego przyciągania wag do zera. Adam nadal dobiera poprawkę dla każdej wagi na podstawie historii wskazówek z uczenia. Dodatkowe kurczenie omija ten mechanizm i nie trafia do jego zapamiętywanych statystyk. Loshchilov i Hutter, §2 i algorytm 2, opisują właśnie takie rozdzielenie.

Co zmienia się w naszym przykładzie?
Strata to liczba oceniająca niedopasowanie prognozy. Tu przyjmujemy połowę kwadratu błędu. Gradient wskazuje, jak mała zmiana wag wpływa na tę stratę. Ponieważ prognoza 14 trafia w cel 14, gradient błędu wynosi zero.
Dla czytelnego porównania wykonajmy pierwszy krok ze świeżą pamięcią optymalizatora — algorytmu zmieniającego wagi. Ustawiamy learning rate, czyli współczynnik wielkości kroku, na 0,1, a siłę regulacji na 0,1:
| Metoda | Waga a: start 2 | Waga b: start 10 |
|---|---|---|
| Adam z karą L2 | około 1,9, spadek o 5% | około 9,9, spadek o 1% |
| AdamW | 1,98, spadek o 1% | 9,9, spadek o 1% |
Kara L2 rośnie z sumą kwadratów wag. Dopisuje do gradientu wskazówki 0,2 i 1. W tym pierwszym kroku Adam dzieli każdą z nich przez niemal jej własną wielkość: obie poprawki stają się bliskie 0,1. Znika proporcja, której mogliśmy oczekiwać.
W AdamW gradient z danych pozostaje zerowy, a osobne kurczenie odejmuje 0,1 × 0,1 × wagę: odpowiednio 0,02 i 0,1. Stosujemy tu konwencję PyTorch 2.11, reguła AdamW, w której decay jest mnożony przez learning rate. Oddzielenie dotyczy mechanizmu adaptacji, nie pełnej niezależności od wszystkich ustawień.
Ograniczenie: prognoza AdamW spada do 13,86, więc dopasowanie tego przykładu się pogarsza. Regulacja może pomóc na nowych danych, ale nie gwarantuje tego; zbyt silne kurczenie przeszkadza w uczeniu. To własny przykład dwóch wag, nie wynik treningu LLM. Równe poprawki Adam dotyczą tego pierwszego kroku i jego założeń, nie całego treningu.
Sprawdź, czy oba pokrętła robią to samo
Zanim odsłonisz wynik, przewidź: czy dwukrotnie większa siła regulacji podwoi obie poprawki? Każde ustawienie liczy pierwszy krok od nowa.
Dwukrotnie większy współczynnik podwaja osobny decay AdamW przy stałym learning rate. W pokazanym pierwszym kroku Adam z dodatnią karą L2 nadal odejmuje około 0,1 od każdej wagi. Późniejsze kroki uwzględniają historię i zmieniające się błędy, więc nie powtarzają automatycznie tej sytuacji.
Dokładne założenia rachunku
Dane są wymyślone. Strata z danych wynosi . Kara L2 ma postać , dlatego dopisuje do gradientów i . Symbole oznaczają wagi, a siłę regulacji.
Adam pamięta średnią gradientów oraz średnią ich kwadratów. Współczynniki i określają, jak mocno zachowuje poprzednie wartości tych średnich. Małe w mianowniku zapobiega dzieleniu przez zero. Ustawiamy obie początkowe średnie na zero, , , i wykonujemy korektę ich początkowego zaniżenia. W pierwszym kroku poprawka każdej dodatniej wagi wynosi , gdzie to learning rate, a dana waga. Przy poprawka wynosi dokładnie zero. Widget zachowuje w obliczeniach; tabela zaokrągla wynik.
W AdamW poprawka Adam z danych wynosi zero, a nowa waga to . Pamięć początkowa jest zerowa: przy niezerowej historii Adam mógłby wykonać ruch mimo zerowego bieżącego gradientu. Zmiana suwaka nie jest kolejnym krokiem treningu.
Powiązania
- Adam wyznacza część kroku opartą na danych; AdamW zmienia sposób dołączania kurczenia.
- Weight decay opisuje samo przyciąganie do zera.
- Optimizer State wyjaśnia, dlaczego historia wcześniejszych gradientów zmienia późniejsze kroki.
Wykorzystuję treści generowane przez AI jako część mojego codziennego procesu nauki.