0Pricing
Deep Learning Academy · Lekcja

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

  1. Zamrozić backbone i trenować head
  2. Dostrajać model z mniejszym learning rate
  3. Różne learning rates dla poszczególnych warstw
  4. Dostrajać model Hugging Face
← Powrót do Deep Learning Academy