Walidacja krzyżowa
Walidacja krzyżowa to statystyczna metoda służąca do oceny i porównywania modeli uczenia maszynowego poprzez wielokrotny podział danych na zbiory treningowe i w...
Entropia krzyżowa mierzy rozbieżność między przewidywanymi a rzeczywistymi rozkładami prawdopodobieństwa; jest szeroko stosowana jako funkcja straty w uczeniu maszynowym do optymalizacji dokładności modeli klasyfikacyjnych.
Entropia krzyżowa to kluczowe pojęcie zarówno w teorii informacji, jak i w uczeniu maszynowym, służące jako miara rozbieżności między dwoma rozkładami prawdopodobieństwa na tym samym zbiorze zdarzeń. W uczeniu maszynowym miara ta jest szczególnie istotna jako funkcja straty do ilościowego określania rozbieżności między przewidywaniami modelu a rzeczywistymi etykietami w danych. Takie ilościowe ujęcie jest niezbędne podczas uczenia modeli, zwłaszcza w zadaniach klasyfikacyjnych, gdyż pomaga w dostosowaniu wag modelu tak, aby minimalizować błędy predykcji, ostatecznie zwiększając skuteczność modelu.
Pojęcie entropii krzyżowej, oznaczane jako H(p, q), polega na obliczeniu rozbieżności między dwoma rozkładami prawdopodobieństwa: p (rozkład rzeczywisty) oraz q (rozkład szacowany przez model). Dla rozkładów dyskretnych, entropia krzyżowa jest matematycznie wyrażona jako:
$$ H(p, q) = -\sum_{x} p(x) \log q(x) $$
Gdzie:
Entropia krzyżowa oblicza średnią liczbę bitów potrzebnych do rozpoznania zdarzenia z zestawu możliwości przy użyciu schematu kodowania zoptymalizowanego pod rozkład szacowany (q), a nie rzeczywisty (p).
Entropia krzyżowa jest ściśle powiązana z dywergencją Kullbacka-Leiblera (KL), która ocenia, jak bardzo jeden rozkład prawdopodobieństwa odbiega od innego oczekiwanego rozkładu. Entropię krzyżową H(p, q) można wyrazić przez entropię rozkładu rzeczywistego H(p) oraz dywergencję KL D_{KL}(p || q):
$$ H(p, q) = H(p) + D_{KL}(p \parallel q) $$
To powiązanie podkreśla fundamentalną rolę entropii krzyżowej w ilościowym określaniu błędów predykcji, łącząc teorię statystyki z praktycznymi zastosowaniami uczenia maszynowego.
W uczeniu maszynowym, zwłaszcza w zadaniach klasyfikacyjnych, entropia krzyżowa służy jako funkcja straty oceniająca, jak bardzo przewidywany przez model rozkład prawdopodobieństwa pokrywa się z rzeczywistym rozkładem etykiet. Jest wyjątkowo skuteczna w zadaniach wieloklasowych, gdzie celem jest przypisanie najwyższego prawdopodobieństwa do poprawnej klasy, a tym samym ukierunkowanie procesu optymalizacji podczas treningu modelu.
Funkcja ta wykorzystywana jest w zadaniach klasyfikacji binarnej, obejmujących dwie możliwe klasy (np. prawda/fałsz, pozytywna/negatywna). Strata binarnej entropii krzyżowej jest opisana wzorem:
$$ L = -\frac{1}{N} \sum_{i=1}^N [y_i \log(p_i) + (1-y_i) \log(1-p_i)] $$
Gdzie:
Stosowana w zadaniach klasyfikacji wieloklasowej z więcej niż dwiema klasami. Strata kategorialnej entropii krzyżowej jest liczona jako:
$$ L = -\frac{1}{N} \sum_{i=1}^{N} \sum_{j=1}^{C} y_{ij} \log(p_{ij}) $$
Gdzie:
Rozważmy scenariusz klasyfikacji z trzema klasami: koty, psy i konie. Jeśli prawdziwa etykieta dla obrazu to pies, przedstawiona przez wektor one-hot [0, 1, 0], a model przewiduje [0.4, 0.4, 0.2], strata entropii krzyżowej będzie liczona następująco:
$$ L(y, \hat{y}) = – (0 \times \log(0.4) + 1 \times \log(0.4) + 0 \times \log(0.2)) = 0.92 $$
Niższa wartość entropii krzyżowej oznacza lepsze dopasowanie przewidywanych przez model prawdopodobieństw do rzeczywistych etykiet, co przekłada się na wyższą skuteczność modelu.
Entropia krzyżowa jest nieodzowna podczas trenowania modeli AI, szczególnie w ramach uczenia nadzorowanego. Jest szeroko wykorzystywana m.in. w:
import numpy as np
def cross_entropy(y_true, y_pred):
y_true = np.float_(y_true)
y_pred = np.float_(y_pred)
return -np.sum(y_true * np.log(y_pred + 1e-15))
# Przykład użycia
y_true = np.array([0, 1, 0]) # Rzeczywista etykieta (one-hot)
y_pred = np.array([0.4, 0.4, 0.2]) # Przewidywane prawdopodobieństwa
loss = cross_entropy(y_true, y_pred)
print(f"Strata entropii krzyżowej: {loss}")
W tym przykładzie w Pythonie funkcja cross_entropy
oblicza stratę pomiędzy rzeczywistymi etykietami a przewidywanymi prawdopodobieństwami, wspierając ocenę i optymalizację modelu.
Entropia krzyżowa to miara rozbieżności między dwoma rozkładami prawdopodobieństwa, powszechnie stosowana jako funkcja straty do oceny, na ile przewidywania modelu pokrywają się z rzeczywistymi etykietami.
W uczeniu maszynowym entropia krzyżowa określa błąd między przewidywanymi prawdopodobieństwami a rzeczywistymi etykietami, wspierając proces optymalizacji w celu poprawy dokładności modelu, szczególnie w zadaniach klasyfikacyjnych.
Binarna entropia krzyżowa stosowana jest do klasyfikacji binarnej (dwie klasy), natomiast entropia krzyżowa kategorialna do klasyfikacji wieloklasowej. Obie obliczają stratę między rzeczywistymi i przewidywanymi prawdopodobieństwami, dostosowując się do liczby klas.
Entropia krzyżowa jest powiązana z dywergencją Kullbacka-Leiblera (KL), gdyż może być wyrażona jako suma entropii rozkładu rzeczywistego oraz dywergencji KL między rozkładem rzeczywistym a przewidywanym.
Tak. Przykład: import numpy as np def cross_entropy(y_true, y_pred): y_true = np.float_(y_true) y_pred = np.float_(y_pred) return -np.sum(y_true * np.log(y_pred + 1e-15))
Zacznij budować własne rozwiązania AI z intuicyjną platformą FlowHunt. Optymalizuj swoje modele i automatyzuj procesy efektywnie.
Walidacja krzyżowa to statystyczna metoda służąca do oceny i porównywania modeli uczenia maszynowego poprzez wielokrotny podział danych na zbiory treningowe i w...
Krzywa uczenia się w sztucznej inteligencji to graficzne przedstawienie ilustrujące związek między wydajnością uczenia się modelu a zmiennymi, takimi jak rozmia...
Log loss, czyli strata logarytmiczna/entropia krzyżowa, to kluczowa miara oceny wydajności modeli uczenia maszynowego—szczególnie dla klasyfikacji binarnej—popr...