Czy koszt entropii krzyżowej ma sens w kontekście regresji (w przeciwieństwie do klasyfikacji)? Jeśli tak, czy możesz podać przykład zabawki za pośrednictwem TensorFlow? Jeśli nie, dlaczego nie?
Czytałem o entropii krzyżowej w sieciach neuronowych i głębokim uczeniu się Michaela Nielsena i wydaje się, że można to naturalnie wykorzystać do regresji i klasyfikacji, ale nie rozumiem, jak efektywnie zastosowałbyś to w TensorFlow, ponieważ funkcje utraty przyjmują logi (których też tak naprawdę nie rozumiem) i są tutaj wymienione w klasyfikacji tutaj
regression
entropy
tensorflow
cross-entropy
JacKeown
źródło
źródło
Odpowiedzi:
Nie, nie ma sensu korzystanie z funkcji TensorFlow jak
tf.nn.sigmoid_cross_entropy_with_logits
w przypadku zadania regresji. W TensorFlow „entropia krzyżowa” jest skrótem (lub żargonem) dla „kategorycznej entropii krzyżowej”. Kategoryczna entropia krzyżowa jest operacją prawdopodobieństw. Problem regresji próbuje raczej przewidzieć ciągłe wyniki niż klasyfikację.Żargon „entropia krzyżowa” jest nieco mylący, ponieważ istnieje dowolna liczba funkcji utraty entropii krzyżowej; jednakże w uczeniu maszynowym jest konwencja określania tej konkretnej straty jako straty „krzyżowej entropii”.
Jeśli spojrzymy poza funkcje TensorFlow, z którymi się łączysz, to oczywiście istnieje wiele możliwych funkcji krzyżowania entropii. Wynika to z faktu, że ogólna koncepcja entropii krzyżowej dotyczy porównania dwóch rozkładów prawdopodobieństwa. W zależności od dwóch rozkładów prawdopodobieństwa, które chcesz porównać, możesz dojść do innej straty niż typowa kategoryczna strata między entropiami. Na przykład, entropia krzyżowa celu Gaussa z pewną zmienną średnią, ale stałą kowariancją ukośną, zmniejsza się do błędu średniej kwadratowej. Ogólna koncepcja entropii krzyżowej została bardziej szczegółowo przedstawiona w tych pytaniach:
Czy sieci neuronowe uczą się funkcji lub funkcji gęstości prawdopodobieństwa?
Jak skonstruować utratę entropii dla ogólnych celów regresji?
źródło
Odpowiedź udzielona przez @Sycorax jest poprawna. Warto jednak wspomnieć, że stosowanie (binarnej) entropii krzyżowej w zadaniu regresji, w którym wartości wyjściowe mieszczą się w zakresie [0,1], jest prawidłową i rozsądną rzeczą do zrobienia. W rzeczywistości jest on stosowany w autokoderach obrazu (np. Tutaj i w tym dokumencie ). Możesz być zainteresowany, aby zobaczyć prosty matematyczny dowód, dlaczego to działa w tym przypadku w tej odpowiedzi .
źródło
Struktury głębokiego uczenia się często łączą modele i straty i odnoszą się do entropii krzyżowej modelu wielomianowego z nieliniowością softmax
cross_entropy
, co jest mylące. Zasadniczo można zdefiniować entropię krzyżową dla dowolnych modeli .W przypadku modelu Gaussa o różnej średniej, ale stałej kowariancji ukośnej, jest to równoważne MSE. Dla ogólnej kowariancji, entropia krzyżowa odpowiadałaby kwadratowej odległości Mahalanobisa . Dla rozkładu wykładniczego strata przez entropię wyglądałaby jak gdzie jest ciągłe, ale nieujemne. Więc tak , cross-entropia może być stosowany do regresji.faθ( x ) y- logfaθ( X ) , y
źródło
Niestety, jak dotąd przyjęta odpowiedź @Sycorax, choć szczegółowa, jest nieprawidłowa.
Właściwie, najlepszy przykład regresji poprzez kategoryczną entropię krzyżową - Wavenet - został zaimplementowany w TensorFlow .
Zasada jest taka, że dyskretyzujesz przestrzeń wyjściową, a następnie twój model przewiduje tylko odpowiedni przedział; przykład w dziedzinie modelowania dźwięku znajduje się w sekcji 2.2 artykułu . Podczas gdy technicznie model dokonuje klasyfikacji, ostatecznym rozwiązaniem jest regresja.
Oczywistym minusem jest to, że tracisz rozdzielczość wyjściową. Może to jednak nie stanowić problemu (przynajmniej uważam, że sztuczny asystent Google'a przemówił bardzo ludzkim głosem ), lub możesz pobawić się postprocessingiem, np. Interpolując między najbardziej prawdopodobnym binem a jego dwoma sąsiadami.
Z drugiej strony takie podejście sprawia, że model jest znacznie potężniejszy w porównaniu ze zwykłą jednostkową jednostką liniową, tj. Umożliwia wyrażanie prognoz multimodalnych lub ocenę jego pewności. Należy jednak zauważyć, że to ostatnie można naturalnie osiągnąć innymi sposobami, np. Poprzez wyraźne wyjście (log) wariancji, jak w automatycznych koderach wariacyjnych.
W każdym razie to podejście nie daje się dobrze skalować do bardziej wielowymiarowych wyników, ponieważ wtedy rozmiar warstwy wyjściowej rośnie wykładniczo, co sprawia, że jest to zarówno problem obliczeniowy, jak i modelowy.
źródło
Powróciłem do tego pytania, ponieważ nie zgadzam się z odpowiedzią, którą wcześniej zaakceptowałem. Strata entropii krzyżowej MOŻE być stosowana w regresji (chociaż nie jest to powszechne).
Sprowadza się to do tego, że entropia krzyżowa jest koncepcją, która ma sens jedynie przy porównywaniu dwóch rozkładów prawdopodobieństwa. Jako prognozę można rozważyć sieć neuronową, która generuje średnie i standardowe odchylenie dla rozkładu normalnego. Byłoby to surowo karane za większą pewność co do złych prognoz. Tak, to ma sens, ale tylko wtedy, gdy generujesz rozkład w pewnym sensie. Pokazuje to link z @SiddharthShakya w komentarzu do mojego pierwotnego pytania.
źródło