Czym są softmax i entropia krzyżowa? Przekształcanie logitów w prawdopodobieństwa i stratę treningową
Softmax i entropia krzyżowa to połączenie, które pozwala wieloklasowej sieci neuronowej wyrażać, która klasa jest poprawna spośród kilku kandydatów, za pomocą prawdopodobieństw oraz numerycznie oceniać, jak bardzo predykcja różni się od poprawnej odpowiedzi. Softmax przekształca surowe wyjścia modelu, zwane logitami, w rozkład prawdopodobieństwa sumujący się do 1. Entropia krzyżowa oblicza różnicę między tym rozkładem prawdopodobieństwa a rozkładem docelowym jako stratę. Trenowanie jest procesem dostosowywania wag modelu w celu zmniejszenia tej straty.
Załóżmy na przykład, że klasyfikujesz obraz jako kota, psa albo ptaka. Model zwykle nie odpowiada początkowo czymś w rodzaju „70% prawdopodobieństwa kota”. Zamiast tego generuje logity: porównawcze wyniki dla trzech klas. Softmax normalizuje te wyniki do porównywalnych prawdopodobieństw, a entropia krzyżowa przypisuje karę zależnie od tego, jakie prawdopodobieństwo model przypisał faktycznej odpowiedzi. Zrozumienie obu pojęć razem może zmniejszyć częste nieporozumienia dotyczące końcowej warstwy wyjściowej, formatów etykiet i konfiguracji funkcji straty.
Co robi funkcja softmax?
Softmax to funkcja, która przekształca wektor logitów dla klas w prawdopodobieństwa klas . Prawdopodobieństwo klasy oblicza się następująco.
Tutaj funkcja wykładnicza nadaje klasom o większych wynikach większą wagę względną. Ponieważ mianownik jest sumą wyeksponencjowanych wyników wszystkich klas, każde wyjście znajduje się między 0 a 1, a suma prawdopodobieństw wynosi 1. Zatem wyjście softmax przedstawia względne prawdopodobieństwo przynależności wejścia do każdej klasy jako pojedynczy rozkład prawdopodobieństwa. Dokumentacja PyTorch również opisuje softmax jako przeskalowanie każdego elementu wejściowego do zakresu od 0 do 1 tak, aby suma elementów wynosiła 1. docs.pytorch.org
Softmax jest szczególnie odpowiedni, gdy kandydaci są wzajemnie wykluczający się. Oznacza to, że jeśli jeden jest prawdziwy, pozostałe nie mogą być poprawną odpowiedzią. Przykłady obejmują klasyfikowanie obrazu, którego głównym zwierzęciem jest dokładnie kot, pies albo ptak, lub przypisanie zdaniu dokładnie jednej z wcześniej zdefiniowanych kategorii sentymentu.
Natomiast prawdopodobieństwa softmax nie są od siebie niezależne. Jeśli wzrasta prawdopodobieństwo kota, prawdopodobieństwo psa lub ptaka musi względnie spaść, aby suma trzech prawdopodobieństw pozostała równa 1. Ta właściwość zwykle nie jest odpowiednia w przypadkach, gdy kilka etykiet może być jednocześnie prawdziwych, na przykład gdy na jednym obrazie może pojawić się zarówno osoba, jak i rower. W takim przypadku rozważ niezależne zastosowanie sigmoidy dla każdej klasy.
Czym logity różnią się od prawdopodobieństw?
Logit to nienormalizowany wynik generowany przez końcową warstwę liniową lub podobny komponent. Logity mogą być ujemne albo większe od 1, a suma logitów między klasami nie ma szczególnego znaczenia. Na przykład może być zbiorem logitów dla trzech klas, ale nie jest wektorem prawdopodobieństwa.
Ważną cechą logitów jest to, że różnice między klasami mają większe znaczenie niż ich wartości bezwzględne. Dodanie tej samej stałej do każdego logitu nie zmienia wyniku softmax.
Dzieje się tak, ponieważ zarówno licznik, jak i mianownik są mnożone przez wspólny czynnik , który się skraca. Zatem logity i mogą wyglądać jak różne surowe wyniki, lecz dają te same prawdopodobieństwa softmax. Softmax przekształca w prawdopodobieństwa względne różnice między kandydatami, a nie punkt odniesienia wyników.
Co mierzy entropia krzyżowa?
Entropia krzyżowa to strata wskazująca, jak bardzo faktyczny rozkład docelowy różni się od rozkładu przewidywanego przez model. Jej podstawowa postać wieloklasowa jest następująca.
Tutaj jest wagą, którą faktyczna etykieta przypisuje klasie , a to prawdopodobieństwo przewidziane przez model dla klasy . Mniejsza strata oznacza, że przewidywany rozkład jest bliższy rozkładowi docelowemu. Gdy używa się logarytmu naturalnego, jednostką jest nat.
Ta formuła nie jest po prostu obliczeniem rozdzielającym poprawne i niepoprawne odpowiedzi jako 0 lub 1. Odzwierciedla nie tylko to, czy model podał poprawną odpowiedź, lecz także to, jak bardzo był pewien jej poprawności. Predykcja przypisująca poprawnej klasie 0,51 oraz predykcja przypisująca jej 0,99 mogą mieć taką samą dokładność, jeśli w obu przypadkach klasa o najwyższym prawdopodobieństwie jest poprawna. Jednak entropia krzyżowa nada drugiej predykcji niższą stratę. Dlatego trenowanie zachęca model nie tylko do umieszczania poprawnej odpowiedzi na pierwszym miejscu, ale także do przypisywania jej wyższego prawdopodobieństwa.
Dlaczego formuła upraszcza się dla etykiet one-hot?
Cele dla klasyfikacji wzajemnie wykluczającej się są często reprezentowane jako wektory one-hot. Jeśli pierwsza klasa jest poprawna spośród trzech klas, etykieta ma postać . Ponieważ tylko klasa docelowa ma , a pozostałe mają wartość 0, entropia krzyżowa redukuje się do następującej postaci.
Innymi słowy, strata zależy wyłącznie od przewidywanego prawdopodobieństwa poprawnej klasy. Gdy zbliża się do 1, zbliża się do 0. Z kolei gdy maleje, strata szybko rośnie. Z powodu tej właściwości predykcje przypisujące niskie prawdopodobieństwo poprawnej odpowiedzi — zwłaszcza przewidujące niepoprawną odpowiedź z bardzo wysoką pewnością — otrzymują podczas trenowania dużą karę.
Teoretycznie, jeśli prawdopodobieństwo poprawnej klasy wynosi dokładnie 0, jest niezdefiniowany, a strata dąży do nieskończoności. Rzeczywiste implementacje sieci neuronowych zwykle wykorzystują stabilne obliczenia oparte na logitach, unikając jawnego wytworzenia prawdopodobieństwa 0, a następnie obliczania jego logarytmu.
Jak łączą się softmax i entropia krzyżowa?
Końcową część typowego modelu wieloklasowego można rozumieć w trzech krokach.
- Końcowa warstwa liniowa zwraca logity klas .
- Softmax przekształca logity w prawdopodobieństwa .
- Entropia krzyżowa porównuje prawdopodobieństwa z etykietą docelową , aby obliczyć stratę .
Dla celu one-hot to powiązanie można rozwinąć następująco.
To wyrażenie jest często nazywane entropią krzyżową softmax lub kategoryczną entropią krzyżową. Pierwszy składnik, , maleje wraz ze wzrostem logitu poprawnej klasy, natomiast drugi składnik, , uwzględnia również wyniki wszystkich konkurencyjnych klas. Model uczy się zatem zwiększać wynik poprawnej klasy, jednocześnie czyniąc ją względnie bardziej wyraźną od klas niepoprawnych.
Należy tu pojęciowo rozróżniać softmax i entropię krzyżową. Softmax jest funkcją zmieniającą sposób reprezentacji wyjść, a entropia krzyżowa jest stratą kwantyfikującą cel trenowania. W praktycznych frameworkach oba kroki są jednak często udostępniane jako jedna połączona funkcja straty, przez co mogą sprawiać wrażenie pojedynczej funkcji.
Co pokazuje obliczenie na liczbach?
Rozważ problem trójklasowy z logitami . Zastosowanie softmax daje przybliżone prawdopodobieństwa . Przykład softmax w TensorFlow przedstawia te same przybliżone prawdopodobieństwa dla tych logitów. docs.pytorch.org
Jeśli pierwsza klasa jest poprawna, etykieta one-hot ma postać , a strata jest następująca.
Pierwsza klasa ma najwyższe prawdopodobieństwo spośród trzech kandydatów, a wynosi ono około 0,665, więc strata jest względnie mała. Jednak „mała” nie oznacza bezwzględnego progu zaliczenia. Odpowiednia wielkość straty może różnić się zależnie od liczby klas, trudności danych, niepewności etykiet oraz tego, czy strata jest sumowana czy uśredniana w batchu.
Gdyby dla tych samych logitów poprawna była trzecia klasa, strata wynosiłaby , a zatem byłaby znacznie większa. Model uznał trzecią klasę za najmniej prawdopodobnego kandydata. W ten sposób entropia krzyżowa wrażliwie odzwierciedla nie tylko to, czy predykcja jest błędna, lecz także to, jak pewnie jest błędna.
Dlaczego należy rozpatrywać razem ranking prawdopodobieństw i wartość straty?
Dokładność zwykle wybiera pojedynczą klasę o największym prawdopodobieństwie i zlicza, czy odpowiada ona poprawnej odpowiedzi. Dlatego predykcja , gdy pierwsza klasa jest poprawna, oraz predykcja , gdy pierwsza klasa jest poprawna, są obie liczone jako jedna poprawna predykcja.
Entropia krzyżowa nie traktuje ich tak samo. Pierwsza predykcja ledwie rozróżnia trzy klasy, podczas gdy druga przypisuje poprawnej odpowiedzi bardzo wysokie prawdopodobieństwo. Odwrotnie, gdy klasa o najwyższym prawdopodobieństwie jest niepoprawna, strata również różni się zależnie od tego, jak niskie było prawdopodobieństwo poprawnej klasy. Z tego powodu trenowanie zwykle minimalizuje entropię krzyżową, natomiast ewaluacja sprawdza również osobne metryki, takie jak dokładność, zgodnie z celem zadania.
Dlaczego logity należy przekazywać bezpośrednio do funkcji straty treningowej?
Połączone funkcje straty w wielu frameworkach uczenia głębokiego przyjmują jako wejście logity, a nie prawdopodobieństwa softmax. Na przykład softmax_cross_entropy_with_logits z TensorFlow, zgodnie ze swoją nazwą, przyjmuje logity i wewnętrznie wykonuje obliczenia odpowiadające softmax oraz entropii krzyżowej. Jego dokumentacja ostrzega przed podawaniem wyjść, do których wcześniej zastosowano softmax. www.tensorflow.org
Jeśli złamiesz tę zasadę, stosując softmax na końcu modelu, a następnie przekażesz wynik do funkcji straty przeznaczonej dla logitów, prawdopodobieństwa mogą zostać ponownie zinterpretowane jako logity, zamiast otrzymać jedno zamierzone zastosowanie softmax. Zmienia to znaczenie straty i jej gradientów, przez co konfiguracja trenowania staje się niepoprawna. To, czy funkcja straty „zawiera wewnętrznie softmax”, czy „przyjmuje już przekształcone prawdopodobieństwa”, należy sprawdzać w kontrakcie wejściowym API, a nie wyłącznie na podstawie nazwy funkcji.
Cel inferencji lub prezentacji wyników jest inny. Po trenowaniu możesz zastosować softmax do logitów, gdy chcesz wyświetlić prawdopodobieństwa klas lub przeprowadzić przetwarzanie końcowe oparte na prawdopodobieństwie. Kluczowe nie jest to, że softmax nie powinien być nigdy używany, lecz że należy go zastosować dokładnie raz na etapie wejściowym oczekiwanym przez treningową funkcję straty.
Dlaczego stabilność numeryczna jest ważna?
Wzór softmax zawiera funkcje wykładnicze i logarytmy. Jeśli logity są skrajnie duże lub małe, obliczenie może przekroczyć zakres reprezentowalny przez komputer, stwarzając ryzyko przepełnienia lub niedopełnienia. Najpierw obliczanie prawdopodobieństw, a następnie osobne stosowanie logarytmów może być podatne na te problemy.
Połączone funkcje straty oraz implementacje z rodziny log_softmax zwykle używają stabilnych sposobów obliczania . Dokumentacja PyTorch wyjaśnia również, że log_softmax ma lepsze właściwości numeryczne niż osobne obliczanie softmax i logarytmu. docs.pytorch.org
Opisana wcześniej właściwość przesunięcia o stałą również może służyć do stabilizacji. Odjęcie maksymalnej wartości od każdego logitu nie zmienia wyniku softmax.
Dzięki temu największy składnik wykładniczy wynosi , co ogranicza konieczność operowania na niepotrzebnie dużych liczbach. W kodzie produkcyjnym zazwyczaj lepiej jednak użyć dostarczanej przez framework połączonej funkcji straty opartej na logitach lub stabilnej operacji log-softmax, zamiast samodzielnie implementować komponenty osobno.
Czy etykiety powinny być wektorami one-hot czy liczbami całkowitymi?
Reprezentacja etykiet jest związana z kontraktem wejściowym funkcji straty. Do częstych formatów należą etykiety one-hot lub prawdopodobieństw oraz rzadkie etykiety całkowitoliczbowe.
| Format etykiety | Przykład, gdy pierwsza klasa jest poprawna spośród trzech | Charakterystyka |
|---|---|---|
| Etykieta one-hot | [1, 0, 0] | Wektor o długości równej liczbie klas; tylko poprawna pozycja ma wartość 1. |
| Etykieta prawdopodobieństwa | [0.8, 0.1, 0.1] | Rozkład docelowy, którego elementy są nieujemne i sumują się do 1. |
| Rzadka etykieta całkowitoliczbowa | 0 | Przechowuje tylko indeks poprawnej klasy. |
Etykiety one-hot odpowiadają bezpośrednio podstawowemu wzorowi entropii krzyżowej. Rzadkie etykiety całkowitoliczbowe mogą przechowywać te same informacje bardziej zwięźle, co może być przydatne przy dużej liczbie klas. Jednak te dwa formaty mają różne kształty tensorów i typy danych, dlatego należy użyć formatu wymaganego przez konkretną funkcję straty.
Dokumentacja TensorFlow dotycząca entropii krzyżowej softmax opartej na logitach wyjaśnia, że wektory etykiet muszą być prawidłowymi rozkładami prawdopodobieństwa, oraz rozróżnia pokrewne formaty etykiet dla klasyfikacji wzajemnie wykluczającej się. www.tensorflow.org Na przykład bezpośrednie przekazanie pojedynczej liczby całkowitej do funkcji straty one-hot albo przekazanie wektora one-hot do funkcji dla rzadkich etykiet całkowitoliczbowych może nie obliczyć zamierzonej wielkości.
Etykiety prawdopodobieństwa łagodzą założenie, że dokładnie jedna klasa musi mieć wartość 1. Nie oznacza to jednak tego samego co problem wieloetykietowy, w którym kilka klas może być niezależnie prawdziwych. W klasyfikacji softmax etykiety prawdopodobieństwa nadal reprezentują jeden rozkład, którego elementy sumują się do 1.
Czym różnią się klasyfikacja binarna, wieloklasowa i wieloetykietowa?
Funkcji wyjściowych i strat nie należy wybierać wyłącznie na podstawie liczby klas. Najpierw określ, czy zdarzenia docelowe mogą występować jednocześnie. W praktyce przydatne jest następujące rozróżnienie.
| Struktura problemu | Przykład | Typowa reprezentacja wyjścia | Typowa strata |
|---|---|---|---|
| Wzajemnie wykluczająca się klasyfikacja wieloklasowa | Kot, pies albo ptak | Softmax dla wszystkich klas | Entropia krzyżowa softmax |
| Klasyfikacja binarna | Prawda/fałsz, zatwierdź/odrzuć | Jedna sigmoida lub dwuklasowy softmax | Binarna entropia krzyżowa lub entropia krzyżowa softmax |
| Klasyfikacja wieloetykietowa | Zdjęcie zawiera zarówno osobę, jak i rower | Sigmoida dla każdej klasy | Binarna entropia krzyżowa dla każdej klasy |
W klasyfikacji wieloklasowej naturalne jest, aby prawdopodobieństwa klas sumowały się do 1. Jeśli wzrasta prawdopodobieństwo, że obraz przedstawia kota, prawdopodobieństwo, że ten sam obraz przedstawia psa lub ptaka, powinno względnie zmaleć. Dokumentacja TensorFlow również rozróżnia stosowanie entropii krzyżowej softmax, gdy etykiety wzajemnie się wykluczają, od sytuacji z niezależnymi wieloma etykietami, które wymagają innej konfiguracji. www.tensorflow.org
W klasyfikacji wieloetykietowej każde wyjście jest bliższe osobnemu pytaniu: „Czy jest osoba?”, „Czy jest rower?” i „Czy jest drzewo?” mogą jednocześnie otrzymać odpowiedź twierdzącą. Jeśli softmax wymusza sumę równą 1, zwiększenie prawdopodobieństwa jednej etykiety obniża prawdopodobieństwa pozostałych, co może nie pasować do struktury problemu. Zastosowanie sigmoidy do każdej klasy umożliwia niezależne obsługiwanie prawdopodobieństwa każdego elementu.
Klasyfikacja binarna może być szczególnie myląca, ponieważ oba podejścia wydają się możliwe. Zastosowanie sigmoidy do jednego wyjścia bezpośrednio przedstawia prawdopodobieństwo klasy pozytywnej. Zastosowanie softmax do dwóch logitów przedstawia klasę pozytywną i negatywną jako rozkład dwuklasowy sumujący się do 1. Niezależnie od wybranego podejścia kodowanie etykiet i funkcja straty muszą odpowiadać temu formatowi wyjściowemu.
Czy minimalizacja entropii krzyżowej oznacza dopasowywanie rozkładów?
Gdy zarówno cel , jak i predykcja są prawidłowymi rozkładami prawdopodobieństwa, entropię krzyżową można wyrazić przez jej związek z entropią i dywergencją KL następująco.
Tutaj jest entropią reprezentującą niepewność samego prawdziwego rozkładu, a jest dywergencją KL reprezentującą różnicę między prawdziwym rozkładem a przewidywanym rozkładem . Jeśli rozkład docelowy w danych treningowych jest stały, nie zmienia się wraz z parametrami modelu. Dlatego, z pominięciem tej stałej, zmniejszanie entropii krzyżowej można interpretować jako zmniejszanie dywergencji KL między a .
Interpretacja ta pokazuje, dlaczego entropia krzyżowa jest szeroko stosowana jako cel uczenia dla rozkładów prawdopodobieństwa. Model jest zachęcany nie tylko do umieszczania poprawnej klasy na szczycie, ale także do rozdzielania prawdopodobieństw blisko obserwowanego rozkładu docelowego.
Równanie to ma jednak założenia. Zarówno , jak i muszą być rozkładami prawdopodobieństwa: ich składowe muszą znajdować się w odpowiednim zakresie i sumować się do 1. Same logity nie są rozkładami prawdopodobieństwa, więc nie podstawia się ich bezpośrednio do tej zależności. Logity łączą się z obliczeniami rozkładów prawdopodobieństwa przez softmax lub połączoną funkcję straty opartą na logitach.
Jakie są częste błędne przekonania i błędy?
Pierwszym błędnym przekonaniem jest to, że logity są prawdopodobieństwami. Klasa o największym logicie ma również największe prawdopodobieństwo softmax, ale samych wartości logitów nie można odczytywać jako procentów. To, na jaką różnicę prawdopodobieństw przekłada się różnica logitów, na przykład 2 względem 1, jest określane dopiero po zastosowaniu softmax razem ze wszystkimi pozostałymi logitami.
Drugim błędnym przekonaniem jest to, że trenowanie klasyfikacji działa tylko wtedy, gdy softmax zostanie dodany na końcu modelu. Jeśli używasz połączonej straty entropii krzyżowej przyjmującej logity, podczas trenowania często nie dodaje się jawnie końcowego softmax. Wspiera to obliczenia wewnętrzne i stabilność numeryczną. www.tensorflow.orgdocs.pytorch.org
Trzecim błędnym przekonaniem jest to, że entropia krzyżowa softmax pasuje do każdego problemu klasyfikacyjnego. To połączenie straty jest naturalne, gdy klasy wzajemnie się wykluczają. Jeśli dla jednej próbki może współistnieć kilka poprawnych tagów, softmax, który ogranicza łączne prawdopodobieństwo klas do 1, może nie reprezentować właściwie znaczenia danych.
Czwartym błędnym przekonaniem jest to, że entropia krzyżowa i dokładność są tą samą metryką. Dokładność zwykle uwzględnia wyłącznie pojedynczą klasę o maksymalnym prawdopodobieństwie, natomiast entropia krzyżowa odzwierciedla pełne prawdopodobieństwo przypisane poprawnej odpowiedzi. Dlatego dwa modele o tej samej dokładności mogą mieć różne wartości entropii krzyżowej. Jest to również jeden z powodów, dla których strata treningowa może maleć, gdy dokładność nie rośnie monotonicznie na każdym kroku.
Piątym błędem jest ocenianie, czy model jest dobry lub zły, wyłącznie na podstawie pojedynczej wartości straty. Na wartości entropii krzyżowej wpływają liczba klas, trudność zadania, format etykiet i metoda agregacji. Właściwsze jest rozpatrywanie zmian w ramach tego samego zadania i konfiguracji, straty na danych walidacyjnych oraz osobnych metryk ewaluacyjnych odpowiednich dla zadania.
Co sprawdzić przed skonfigurowaniem modelu?
Przed zastosowaniem softmax i entropii krzyżowej warto kolejno sprawdzić następujące pytania.
- Czy każda próbka ma dokładnie jedną poprawną klasę? Jeśli tak, kandydatem jest wieloklasowa klasyfikacja oparta na softmax. Jeśli kilka etykiet może być jednocześnie prawdziwych, najpierw rozważ sigmoidę dla każdej klasy i binarną stratę.
- Czy końcowe wyjście modelu to logity, czy już prawdopodobieństwa? Logity są nieograniczonymi surowymi wynikami, a prawdopodobieństwa są wartościami znormalizowanymi. Jeśli połączona funkcja straty oczekuje logitów, nie stosuj softmax z wyprzedzeniem.
- Czy format etykiet jest zgodny z funkcją straty? Sprawdź, czy przyjmuje ona wektory one-hot lub prawdopodobieństw, czy indeksy całkowitoliczbowe. Oprócz formatu sprawdź wymiar batcha i pozycję wymiaru klas.
- Czy rozróżniasz cele trenowania i inferencji? Podczas trenowania obliczaj stabilną stratę opartą na logitach. Podczas inferencji używaj softmax, gdy potrzebujesz wyświetlić prawdopodobieństwa lub zastosować reguły oparte na prawdopodobieństwach.
- Czy interpretujesz stratę i metryki ewaluacyjne osobno? Entropia krzyżowa jest celem trenowania odzwierciedlającym jakość predykcji prawdopodobieństw, podczas gdy dokładność mierzy, czy końcowy wybór zgadza się z celem. Interpretuj je razem zgodnie z zadaniem.
Ta lista kontrolna nie jest ograniczona do konkretnej biblioteki. Jednak nawet gdy rzeczywiste nazwy API są podobne, mogą różnić się tym, czy oczekują jako wejścia logitów, prawdopodobieństw czy etykiet całkowitoliczbowych. Bezpośrednio przed implementacją sprawdź oficjalną dokumentację używanej funkcji, aby potwierdzić formę wejścia oraz to, czy obejmuje ona wewnętrzną funkcję aktywacji.
Wnioski: rozumiej przekształcanie prawdopodobieństw i obliczanie straty przez ich role
Softmax przekształca wiele logitów w rozkład prawdopodobieństwa sumujący się do 1, przedstawiający względne prawdopodobieństwo wzajemnie wykluczających się klas. Entropia krzyżowa oblicza jako stratę różnicę między tym przewidywanym rozkładem a rozkładem docelowym, przypisując większą karę predykcjom przypisującym niskie prawdopodobieństwo poprawnej odpowiedzi. Dla celu one-hot strata upraszcza się do , co wyjaśnia cel uczenia polegający na zwiększaniu prawdopodobieństwa poprawnej klasy.
W praktyce softmax i entropia krzyżowa często nie są obliczane osobno. Zamiast tego używa się połączonej funkcji straty przyjmującej logity. Zachowuje to cel matematyczny i umożliwia bardziej stabilne numerycznie obliczenia. To połączenie jest jednak najbardziej naturalne, gdy struktura problemu brzmi: „klasyfikacja wieloklasowa z dokładnie jedną poprawną odpowiedzią”. Przy wyborze wyjść i strat kluczowe jest sprawdzenie, czy etykiety wzajemnie się wykluczają oraz jakiego wejścia oczekuje funkcja straty, zanim weźmie się pod uwagę liczbę klas.