Deep Learning Academy · Lekcja

Normalizowanie i standaryzowanie danych wejściowych

Skalować cechy, aby trening zbiegał

Lekcja 4 z 413 kroki

Normalizowanie i standaryzowanie danych wejściowych 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.

Surowe liczby spowalniają naukę

Cechy o bardzo różnych skalach, takie jak wiek i zarobki, utrudniają sieci pracę. Wstępne przeskalowanie danych sprawia, że normalizacja przyspiesza zbieżność treningu. ⚖️

Dwa popularne sposoby

Poznasz dwie główne metody skalowania: standaryzacja przesuwa dane tak, aby miały średnią równą zero i wariancję równą jeden, a skalowanie min-max sprowadza je do ustalonego zakresu, na przykład od 0 do 1.

Standaryzuj za pomocą średniej i odchylenia

Standaryzacja polega na odjęciu średniej i podzieleniu przez odchylenie standardowe. Wynik jest wyśrodkowany wokół zera, a jego rozrzut wynosi jeden — to domyślne podejście w deep learningu.

x = (x - x.mean()) / x.std()

Skalowanie min-max

Skalowanie min-max mapuje najmniejszą wartość na 0, a największą na 1. Jest przydatne, gdy znaczenie ma ograniczony zakres danych wejściowych, na przykład intensywność pikseli.

x = (x - x.min()) / (x.max() - x.min())

Dopasowuj tylko do danych treningowych

Obliczaj średnią i odchylenie standardowe wyłącznie na podstawie zbioru treningowego. Wykorzystanie danych testowych do ustalenia tych statystyk prowadzi do wycieku informacji i zawyża wyniki.

Używaj tych samych statystyk

Stosuj dokładnie te same statystyki treningowe do danych walidacyjnych i testowych. Wszystkie podzbiory muszą być przekształcane w ten sam sposób, inaczej model otrzyma dane wejściowe z różnych rozkładów.

x_val = (x_val - train_mean) / train_std

Osobno dla każdego kanału obrazu

W przypadku obrazów normalizuj każdy kolorowy kanał za pomocą własnej średniej i odchylenia standardowego. PyTorch udostępnia transforms.Normalize, które dokładnie to robi w potoku przetwarzania.

transforms.Normalize(mean=[0.5], std=[0.5])

Skorzystaj ze znanych statystyk ImageNet

W przypadku korzystania z pretrained modeli wizyjnych normalizuj dane za pomocą średnich i odchyleń standardowych ImageNet, na których modele były trenowane. Dopasowanie tych wartości utrzymuje dane wejściowe w oczekiwanym zakresie.

Wykonuj to w __getitem__

Najlepszym miejscem na skalowanie jest metoda __getitem__ zbioru danych lub transformacja. Dzięki temu każda próbka dociera znormalizowana, bez dodatkowego kodu w pętli treningowej.

Uważaj na dzielenie przez zero

Jeśli cecha jest stała, jej odchylenie standardowe wynosi zero, a dzielenie prowadzi do nieprawidłowych wartości. Dodaj małe epsilon do mianownika, aby obliczenia były bezpieczne i stabilne.

x = (x - mean) / (std + 1e-8)

Mały krok, duża korzyść

Normalizacja danych wejściowych to szybki etap wstępnego przetwarzania, który często umożliwia szybszy i stabilniejszy trening. Jeśli go pominiesz, nawet dobry model może uczyć się bardzo wolno.

Szybkie sprawdzenie

Dla którego podzbioru należy obliczać statystyki normalizacji?

Podsumowanie

Normalizacja przeskalowuje cechy, aby trening szybciej osiągał zbieżność. Statystyki należy dopasować do zbioru treningowego i używać ich wszędzie, często wewnątrz transformacji. 🎉

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 „Normalizowanie i standaryzowanie danych wejściowych” jest bezpłatna?

Tak — pełny tekst „Normalizowanie i standaryzowanie danych wejściowych” 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 „Normalizowanie i standaryzowanie danych wejściowych”?

Skalować cechy, aby trening zbiegał Ć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 „Normalizowanie i standaryzowanie danych wejściowych”?

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. Napisać własną klasę Dataset
  2. Batchowanie, tasowanie i num_workers
  3. collate_fn dla danych o zmiennej długości
  4. Normalizowanie i standaryzowanie danych wejściowych
← Powrót do Deep Learning Academy