Weight decay a regularyzacja L2
Poznać subtelną, ale istotną różnicę
Weight decay a regularyzacja L2 to bezpłatna lekcja Deep Learning Academy na CoddyKit. To lekcja 3 z 4. Możesz przeczytać całą lekcję poniżej za darmo — a potem ćwiczyć ją interaktywnie w przeglądarce z wbudowanym edytorem kodu i tutorem AI dostępnym 24/7. To część ścieżki edukacyjnej Deep Learning Academy, a Twój postęp synchronizuje się między webem a aplikacją CoddyKit. Kurs Deep Learning Academy zawiera 4 lekcji w sumie.
Utrzymuj małe wagi
Duże wagi często oznaczają przeuczenie modelu. Zarówno zanikanie wag, jak i regularyzacja L2 przesuwają wagi w stronę zera, dzięki czemu sieć pozostaje prostsza.
L2 zwiększa funkcję straty
Regularyzacja L2 dodaje bezpośrednio do funkcji straty składnik kary równy sumie kwadratów wag. Minimalizowanie straty oznacza więc również zmniejszanie wag.
loss = data_loss + lam * (w ** 2).sum()Zanikanie zmniejsza wagi bezpośrednio
Zanikanie wag pomija funkcję straty i zamiast tego w każdym kroku mnoży każdą wagę przez liczbę nieco mniejszą od jedności. Zmniejsza wagi przed aktualizacją gradientową.
w = w - lr * grad - lr * wd * wTo samo w przypadku SGD
W przypadku zwykłego SGD oba podejścia są matematycznie równoważne. Gradient kary L2 jest dokładnie składnikiem zanikania, więc w praktyce nie ma między nimi różnicy.
Adam rozstrzyga różnicę
Problem pojawia się w przypadku Adam. Skalowanie poszczególnych wag nierównomiernie dzieli gradient L2, dlatego L2 i rzeczywiste zanikanie wag przestają być równoważne.
Skąd bierze się zniekształcenie
Adam mniej zmniejsza wagi z dużymi gradientami, a bardziej te z małymi. Włączona kara L2 dziedziczy to obciążenie, osłabiając regularyzację tam, gdzie jest najbardziej potrzebna.
Rozdzielenie jest rozwiązaniem
AdamW stosuje rozdzielone zanikanie wag, zmniejszając każdą wagę o ten sam ułamek, niezależnie od jej gradientu. Przywraca to właściwe działanie regularyzacji.
Ustawianie w PyTorch
Argument weight_decay steruje siłą zanikania. W AdamW oznacza on rzeczywiste, rozdzielone zanikanie — zachowanie, którego zwykle potrzebujesz.
opt = torch.optim.AdamW(model.parameters(), lr=1e-3, weight_decay=0.01)Wybierz siłę
Typowe wartości to na przykład 0.01 lub 0.0001. Zbyt silne zanikanie prowadzi do niedouczenia, a zbyt słabe pozwala wagom rosnąć i prowadzi do przeuczenia. Dostosuj je jak każdy hiperparametr.
Nie zmniejszaj biasów
Pomijanie zanikania dla parametrów bias i parametrów normalizacji jest powszechną praktyką. Ich zmniejszanie rzadko pomaga, a może niepostrzeżenie pogorszyć proces uczenia modelu.
Najważniejszy wniosek
W przypadku SGD możesz swobodnie wybrać dowolną z tych nazw. W przypadku optymalizatorów adaptacyjnych wybierz AdamW, aby zanikanie wag rzeczywiście działało zgodnie z założeniami.
Szybki test
Sprawdź, kiedy te dwa podejścia rzeczywiście się różnią.
Podsumowanie
L2 dodaje karę do funkcji straty, a zanikanie wag zmniejsza wagi bezpośrednio. Są równoważne w przypadku SGD, ale różnią się w przypadku Adam, dlatego AdamW rozdziela zanikanie. 🪶
Często zadawane pytania
Czy lekcja „Weight decay a regularyzacja L2” jest bezpłatna?
Tak — pełny tekst „Weight decay a regularyzacja L2” jest dostępny za darmo tutaj w sieci. Aby ćwiczyć ją interaktywnie (wbudowany edytor kodu i tutor AI dostępny 24/7) i odblokować resztę kursu Deep Learning Academy, przejdź na CoddyKit PRO. Kurs Deep Learning Academy zawiera 4 lekcji w sumie.
Co nauczysz się w „Weight decay a regularyzacja L2”?
Poznać subtelną, ale istotną różnicę Ćwiczysz Deep Learning Academy z praktycznym kodem, który uruchamiasz bezpośrednio w przeglądarce, a tutor AI dostępny 24/7 odpowiada na Twoje pytania podczas pracy nad lekcją.
Czy potrzebuję doświadczenia, aby zacząć Deep Learning Academy?
Nie wymagamy żadnego doświadczenia. Deep Learning Academy w CoddyKit jest strukturyzowany dla początkujących i zaawansowanych użytkowników, więc możesz zacząć tutaj lub od początku i uczyć się w swoim tempie. To lekcja 3 z 4.
Ile czasu zajmuje lekcja „Weight decay a regularyzacja L2”?
Większość lekcji CoddyKit trwa około 5–10 minut. Każda lekcja to mały, interaktywny krok, dzięki czemu robisz systematyczne postępy i zawsze wracasz dokładnie do tego samego miejsca — na webie i w aplikacji.
Czy mogę pisać i uruchamiać kod w tej lekcji Deep Learning Academy?
Tak. Każda lekcja Deep Learning Academy zawiera wbudowany edytor kodu, więc piszesz i uruchamiasz prawdziwy kod bezpośrednio w przeglądarce i od razu otrzymujesz sprzężenie zwrotne od AI — bez konfiguracji na komputerze.
Wszystkie lekcje w tym kursie
- SGD z momentum
- Adam i AdamW wyjaśnione
- Weight decay a regularyzacja L2
- Harmonogramy learning rate i warmup