Wiem, że istnieje wiele wyjaśnień, czym jest cross-entropia, ale nadal jestem zdezorientowany.
Czy jest to tylko metoda opisania funkcji straty? Czy możemy użyć algorytmu gradientu, aby znaleźć minimum za pomocą funkcji straty?
Wiem, że istnieje wiele wyjaśnień, czym jest cross-entropia, ale nadal jestem zdezorientowany.
Czy jest to tylko metoda opisania funkcji straty? Czy możemy użyć algorytmu gradientu, aby znaleźć minimum za pomocą funkcji straty?
Odpowiedzi:
Entropia krzyżowa jest powszechnie stosowana do ilościowego określenia różnicy między dwoma rozkładami prawdopodobieństwa. Zwykle „prawdziwa” dystrybucja (ta, którą algorytm uczenia maszynowego próbuje dopasować) jest wyrażana w postaci jednopunktowej dystrybucji.
Na przykład załóżmy, że dla konkretnego wystąpienia uczącego prawdziwą etykietą jest B (spośród możliwych etykiet A, B i C). Dlatego jedna gorąca dystrybucja dla tej instancji szkoleniowej to:
Pr(Class A) Pr(Class B) Pr(Class C)
0.0 1.0 0.0
Powyższy prawdziwy rozkład można zinterpretować tak, aby oznaczał, że instancja szkoleniowa ma 0% prawdopodobieństwa bycia klasą A, 100% prawdopodobieństwa bycia klasą B i 0% prawdopodobieństwa bycia klasą C.
Teraz załóżmy, że algorytm uczenia maszynowego przewiduje następujący rozkład prawdopodobieństwa:
Pr(Class A) Pr(Class B) Pr(Class C)
0.228 0.619 0.153
Jak blisko jest przewidywany rozkład do rzeczywistego rozkładu? To właśnie określa utrata krzyżowej entropii. Użyj tej formuły:
Gdzie p(x)
jest prawdziwy rozkład prawdopodobieństwa i q(x)
przewidywany rozkład prawdopodobieństwa. Suma obejmuje trzy klasy A, B i C. W tym przypadku strata wynosi 0,479 :
H = - (0.0*ln(0.228) + 1.0*ln(0.619) + 0.0*ln(0.153)) = 0.479
Tak więc „błędne” lub „dalekie” są twoje prognozy od prawdziwego rozkładu.
Entropia krzyżowa jest jedną z wielu możliwych funkcji straty (inną popularną jest utrata zawiasu SVM). Te funkcje strat są zwykle zapisywane jako J (theta) i mogą być używane w ramach zstępowania gradientowego, które jest iteracyjnym algorytmem służącym do przesuwania parametrów (lub współczynników) w kierunku wartości optymalnych. W poniższym równaniu, należy wymienić J(theta)
z H(p, q)
. Ale pamiętaj, że najpierw musisz obliczyć pochodną funkcji H(p, q)
względem parametrów.
Aby więc odpowiedzieć bezpośrednio na oryginalne pytania:
Czy jest to tylko metoda opisania funkcji straty?
Prawidłowo, entropia krzyżowa opisuje stratę między dwoma rozkładami prawdopodobieństwa. Jest to jedna z wielu możliwych funkcji strat.
Wtedy możemy posłużyć się na przykład algorytmem zejścia gradientowego, aby znaleźć minimum.
Tak, funkcja straty krzyżowej entropii może być używana jako część gradientu.
Dalsza lektura: jedna z moich innych odpowiedzi związanych z TensorFlow.
cosine (dis)similarity
do opisania błędu przez kąt, a następnie spróbować zminimalizować kąt.
p(x)
będzie to lista prawdopodobieństw zgodnych z prawdą dla każdej z klas, która będzie [0.0, 1.0, 0.0
. Podobnie q(x)
lista przewidywanego prawdopodobieństwa dla każdej z klas [0.228, 0.619, 0.153]
. H(p, q)
jest wtedy - (0 * log(2.28) + 1.0 * log(0.619) + 0 * log(0.153))
, co okazuje się być 0,479. Zwróć uwagę, że często używa się np.log()
funkcji Pythona , która w rzeczywistości jest logiem naturalnym; to nie ma znaczenia.
Krótko mówiąc, entropia krzyżowa (CE) jest miarą tego, jak daleko jest twoja przewidywana wartość od prawdziwej etykiety.
Krzyż tutaj odnosi się do obliczenia entropii między dwiema lub więcej cechami / prawdziwymi etykietami (takimi jak 0, 1).
A sam termin entropia odnosi się do losowości, więc jego duża wartość oznacza, że twoje przewidywania są dalekie od prawdziwych etykiet.
Tak więc wagi są zmieniane, aby zmniejszyć CE, a tym samym ostatecznie prowadzi do zmniejszenia różnicy między przewidywanymi a prawdziwymi etykietami, a tym samym do lepszej dokładności.
Dodając do powyższych postów, najprostsza forma utraty krzyżowej entropii jest znana jako binarna-krzyżowa entropia (używana jako funkcja straty dla klasyfikacji binarnej, np. Z regresją logistyczną), podczas gdy wersja uogólniona to kategorialno-krzyżowa entropia (używana jako funkcja straty dla wieloklasowych problemów klasyfikacyjnych, np. w sieciach neuronowych).
Pomysł pozostaje ten sam:
gdy prawdopodobieństwo klasy obliczone przez model (softmax) zbliża się do 1 dla etykiety docelowej instancji szkoleniowej (reprezentowanej przez jedno-gorące kodowanie, np.), odpowiadająca strata CCE spada do zera
w przeciwnym razie wzrasta wraz ze zmniejszaniem się przewidywanego prawdopodobieństwa odpowiadającego klasie docelowej.
Poniższy rysunek ilustruje tę koncepcję (zauważ z rysunku, że BCE staje się niskie, gdy oba yip są wysokie lub oba są jednocześnie niskie, tj. Istnieje zgodność):
Entropia krzyżowa jest ściśle związana z entropią względną lub dywergencją KL, która oblicza odległość między dwoma rozkładami prawdopodobieństwa. Na przykład, pomiędzy dwoma dyskretnymi pmf, relacja między nimi jest pokazana na poniższym rysunku: