Binarna entropia krzyżowa z logitami
Poznać stabilną funkcję straty dla problemów dwuklasowych
Binarna entropia krzyżowa z logitami to bezpłatna lekcja Deep Learning Academy na CoddyKit. To lekcja 2 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.
Dwie klasy, jedna decyzja
Gdy model odpowiada na pytanie tak lub nie, na przykład „spam czy nie spam”, stosuje się binary cross-entropy — funkcję straty stworzoną do problemów z dwiema klasami. ✅
Od wyniku do prawdopodobieństwa
Model najpierw zwraca surowy wynik nazywany logitem. Funkcja sigmoid przekształca ten logit w prawdopodobieństwo z przedziału od 0 do 1.
import torch
prob = torch.sigmoid(logit)Co nagradza cross-entropy
Cross-entropy daje małą wartość straty, gdy przewidywane prawdopodobieństwo jest zbliżone do prawdziwej etykiety, oraz dużą, gdy model jest zdecydowanie błędny.
Pewność siebie przy błędzie boli
Przewidywanie 0.99, gdy prawdziwa etykieta to 0, powoduje ogromną stratę. Cross-entropy karze pewne błędy znacznie mocniej niż niepewne.
Naiwny wybór funkcji straty
Można samodzielnie zastosować sigmoid, a następnie użyć nn.BCELoss dla prawdopodobieństw. To działa, ale podczas rzeczywistego uczenia istnieje bezpieczniejszy sposób.
import torch.nn as nn
loss_fn = nn.BCELoss()
loss = loss_fn(prob, target)Przekazuj logity, nie prawdopodobieństwa
Zalecaną funkcją straty jest BCEWithLogitsLoss. Przyjmuje ona bezpośrednio surowe logity i samodzielnie stosuje funkcję sigmoid.
import torch.nn as nn
loss_fn = nn.BCEWithLogitsLoss()
loss = loss_fn(logit, target)Dlaczego łączyć te kroki
Połączenie funkcji sigmoid z funkcją straty wykorzystuje sztuczkę log-sum-exp, która zapobiega przepełnieniu i zapewnia stabilne gradienty nawet dla skrajnych wartości logitów.
Pomiń dodatkową funkcję sigmoid
Ponieważ BCEWithLogitsLoss samodzielnie stosuje funkcję sigmoid, ostatnia warstwa modelu powinna zwracać surowe logity bez dołączonej funkcji sigmoid.
Wartości docelowe to 0 lub 1
Proszę przekazywać wartości docelowe typu float: 0.0 lub 1.0, o takim samym kształcie jak logity. Niezgodny kształt to klasyczny błąd związany z BCE, na który trzeba uważać.
target = torch.tensor([1.0, 0.0, 1.0])Sigmoid tylko podczas wnioskowania
Podczas uczenia funkcja straty zajmuje się przekształcaniem wartości. Aby odczytać prawdopodobieństwo predykcji, proszę zastosować sigmoid do logitu podczas wnioskowania.
Zmiana balansu za pomocą pos_weight
Jeśli przykładów pozytywnych jest niewiele, argument pos_weight zwiększa ich udział, dzięki czemu model przestaje ignorować klasę mniejszościową.
Szybkie sprawdzenie
Wykonują Państwo klasyfikację binarną i zależy Państwu na stabilności numerycznej. Co należy przekazać do funkcji straty?
Podsumowanie: stabilne tak lub nie
W zadaniach z dwiema klasami przekazuje się surowe logity do BCEWithLogitsLoss, która w jednym stabilnym kroku wykonuje przekształcenie i oblicza stratę. Funkcję sigmoid należy zachować do późniejszego odczytywania prawdopodobieństw. 👍
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 „Binarna entropia krzyżowa z logitami” jest bezpłatna?
Tak — pełny tekst „Binarna entropia krzyżowa z logitami” 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 „Binarna entropia krzyżowa z logitami”?
Poznać stabilną funkcję straty dla problemów dwuklasowych Ć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 2 z 4.
Ile czasu zajmuje lekcja „Binarna entropia krzyżowa z logitami”?
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
- MSE i MAE dla regresji
- Binarna entropia krzyżowa z logitami
- Entropia krzyżowa dla wielu klas
- Wagi klas dla niezrównoważonych danych