Różne learning rates dla poszczególnych warstw
Trenować głębokie i płytkie warstwy w różny sposób
Różne learning rates dla poszczególnych warstw 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.
Jeden współczynnik dla wszystkich?
Do tej pory każda warstwa miała ten sam współczynnik uczenia. Jednak wczesne i późne warstwy uczą się zupełnie różnych rzeczy. Być może potrzebują różnych współczynników. 🎚️
Wczesne warstwy są ogólne
Wczesne warstwy wstępnie wytrenowanej sieci wykrywają krawędzie, kolory i tekstury. Te cechy można przenieść do niemal każdego zadania, więc wymagają bardzo niewielkich zmian.
Późne warstwy są wyspecjalizowane
Późniejsze warstwy wychwytują wzorce specyficzne dla zadania. To one powinny w największym stopniu dostosować się do nowego zbioru danych.
Najważniejsza idea
Różnicowe dostrajanie przydziela głębokim warstwom bardzo mały współczynnik uczenia, a płytkim warstwom wyjściowym — większy. Każda część uczy się w odpowiednim tempie.
Pogrupuj parametry
Aby używać różnych współczynników, należy podzielić model na grupy parametrów, z których każda ma własne ustawienia.
backbone_params = model.features.parameters()
head_params = model.classifier.parameters()Współczynniki uczenia dla poszczególnych grup
Optymalizatory PyTorch akceptują listę słowników, po jednym dla każdej grupy, z których każdy zawiera własne lr. Backbone otrzymuje mniejszy współczynnik, a głowica większy.
opt = torch.optim.Adam([
{'params': backbone_params, 'lr': 1e-5},
{'params': head_params, 'lr': 1e-3}])Dlaczego to pomaga
Chroni to cenne cechy ogólne, a jednocześnie pozwala głowicy szybko się dostosować. Często uzyskuje się wtedy wyższą dokładność niż przy jednym wspólnym współczynniku.
Stopniowanie w wielu warstwach
Można płynnie skalować współczynniki: każdy głębszy blok otrzymuje nieco mniejszy współczynnik. Taki gradient szybkości jest czasem nazywany harmonogramem slanted.
Stopniowe odmrażanie
Techniką uzupełniającą jest stopniowe odmrażanie: najpierw odmraża się górną warstwę i trenuje model, a następnie w kolejnych epokach odmraża następną warstwę, kierując się w dół.
Sprawdź swoje grupy
Można odczytać ustawienia każdej grupy z optymalizatora, aby potwierdzić, że każda wartość param_group otrzymała zamierzony współczynnik.
for g in opt.param_groups:
print(g['lr'])Kiedy po to sięgnąć
Różnicowe współczynniki dają największe korzyści w przypadku głębokich sieci, w których różnica między warstwami ogólnymi a wyspecjalizowanymi jest duża.
Szybkie sprawdzenie
W różnicowym dostrajaniu które warstwy powinny otrzymać najmniejszy współczynnik uczenia?
Podsumowanie
Przydzielili Państwo głębokim warstwom małe współczynniki, a głowicy większy, używając grup parametrów, opcjonalnie ze stopniowym odmrażaniem, aby uzyskać skuteczniejsze uczenie transferowe. 🎯
Często zadawane pytania
Czy lekcja „Różne learning rates dla poszczególnych warstw” jest bezpłatna?
Tak — pełny tekst „Różne learning rates dla poszczególnych warstw” 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 „Różne learning rates dla poszczególnych warstw”?
Trenować głębokie i płytkie warstwy w różny sposób Ć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 „Różne learning rates dla poszczególnych warstw”?
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
- Zamrozić backbone i trenować head
- Dostrajać model z mniejszym learning rate
- Różne learning rates dla poszczególnych warstw
- Dostrajać model Hugging Face