Deep Learning Academy · Lekcja

Wczesne zatrzymywanie na podstawie val loss

Zatrzymać uczenie, zanim dojdzie do przeuczenia

Lekcja 4 z 413 kroki

Wczesne zatrzymywanie na podstawie val loss to bezpłatna lekcja Deep Learning Academy na CoddyKit. To lekcja 4 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.

Zbyt długi trening szkodzi

Więcej epok nie zawsze oznacza lepszy wynik. Po przekroczeniu pewnego punktu model zaczyna zapamiętywać szum, a wyniki walidacji się pogarszają. Wczesne zatrzymanie kończy trening w najlepszym momencie.

Obserwuj stratę walidacyjną

Śledzoną wartością jest strata walidacyjna. Dopóki spada, model nadal coraz lepiej generalizuje, więc pozwalasz treningowi trwać.

Punkt zwrotny

W końcu strata treningowa nadal spada, ale strata walidacyjna osiąga minimum i zaczyna rosnąć. Ten wzrost oznacza moment, w którym przeuczenie przejmuje kontrolę.

Zapamiętaj najlepszy wynik

Przechowuj zmienną z najlepszą dotychczasową stratą walidacyjną. W każdej epoce porównuj z nią nowy wynik, aby określić, czy nastąpiła poprawa.

best_loss = float('inf')

Licz epoki bez poprawy

Gdy epoka nie przyniesie lepszego wyniku, zwiększaj licznik. W chwili, gdy strata walidacyjna znów się poprawi, wyzeruj go.

if val_loss < best_loss:
    best_loss = val_loss
    counter = 0
else:
    counter += 1

Ustaw cierpliwość

Cierpliwość określa, ile epok bez poprawy chcesz tolerować przed zakończeniem treningu. Mała wartość szybko zatrzymuje trening, a większa pozwala przeczekać chwilowe spadki wynikające z szumu.

patience = 5

Przerwij po wyczerpaniu cierpliwości

Gdy licznik osiągnie ustawiony poziom cierpliwości, zatrzymaj pętlę. To polecenie break kończy trening, zanim model zacznie tracić czas na dalsze pogarszanie wyników.

if counter >= patience:
    break

Zapisuj najlepszy model po drodze

Za każdym razem, gdy wynik walidacji się poprawi, zapisz checkpoint. Gdy w końcu zatrzymasz trening, zapisany plik będzie zawierał najlepszy model, a nie model z ostatniej epoki.

if val_loss < best_loss:
    torch.save(model.state_dict(), 'best.pt')

Dodaj min_delta

Minimalne wahania mogą wyglądać jak pozorna poprawa. Parametr min_delta wymaga poprawy większej niż określony próg, zanim licznik cierpliwości zostanie wyzerowany.

if val_loss < best_loss - min_delta:
    best_loss = val_loss

Przywróć najlepszy model na końcu

Po zakończeniu pętli wczytaj zapisany checkpoint, aby rzeczywiście wdrożyć najlepszy model. Wczesne zatrzymanie nie ma sensu, jeśli pozostawisz gorsze wagi z ostatniej epoki.

model.load_state_dict(torch.load('best.pt'))

Bezpłatna forma regularyzacji

Wczesne zatrzymywanie nie wiąże się z dodatkowymi kosztami, a mimo to przeciwdziała przeuczeniu niczym regularyzator. Dobrze współpracuje z dropoutem i regularyzacją wag, zapewniając jeszcze stabilniejszy trening.

Szybkie sprawdzenie

Co kontroluje ustawienie cierpliwości we wczesnym zatrzymywaniu?

Podsumowanie

Śledź stratę walidacyjną, licz epoki bez poprawy, zatrzymaj trening po wyczerpaniu cierpliwości i przywróć najlepszy checkpoint. Wczesne zatrzymywanie oszczędza czas i ogranicza przeuczenie. ⏹️

Bezpłatny start

Ucz się Python dzięki korepetycjom AI — za darmo

Pisz i uruchamiaj kod w przeglądarce, otrzymuj natychmiastową pomoc od korepetytora AI dostępnego 24/7 i kontynuuj naukę w sieci lub w aplikacji.

Kursy
30
Lekcje
120

Często zadawane pytania

Czy lekcja „Wczesne zatrzymywanie na podstawie val loss” jest bezpłatna?

Tak — pełny tekst „Wczesne zatrzymywanie na podstawie val loss” 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 „Wczesne zatrzymywanie na podstawie val loss”?

Zatrzymać uczenie, zanim dojdzie do przeuczenia Ć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 4 z 4.

Ile czasu zajmuje lekcja „Wczesne zatrzymywanie na podstawie val loss”?

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. Podział na zbiory treningowy, walidacyjny i testowy
  2. Pętla epok z walidacją
  3. Zapisywanie i wczytywanie za pomocą state_dict
  4. Wczesne zatrzymywanie na podstawie val loss
← Powrót do Deep Learning Academy