Czy koszt entropii krzyżowej ma sens w kontekście regresji?


14

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


2
Znalazłem tutaj na quora, który stwierdza, że ​​różni się od tego, co jest akceptowane jako odpowiedź na to pytanie
Siddharth Shakya

Jeśli przeczytasz całą odpowiedź, zobaczysz, że daje „ciągłą wersję” entropii krzyżowej, co jest całkiem fajne, ale okazuje się, że jest to tylko średni błąd kwadratu (MSE).
JacKeown,

Odpowiedzi:


11

Nie, nie ma sensu korzystanie z funkcji TensorFlow jak tf.nn.sigmoid_cross_entropy_with_logitsw 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:


6
Chociaż należy wspomnieć, że użycie binarnej crosssentropii jako funkcji straty w zadaniu regresji, w którym wartości wyjściowe są wartościami rzeczywistymi z zakresu [0,1], jest dość rozsądnym i słusznym posunięciem.
dzisiaj

@ Dziś myślę, że jest to praktyka, którą niektórzy przyjmują ze względów praktycznych (np. sieć neuronowa zbiega się szybciej), ale nie jestem pewien, czy ten model ma jakiś związek z porównaniem dwóch rozkładów prawdopodobieństwa. Być może mógłbyś wykazać, że istnieje związek między ciągle wycenianym celem w a binarną entropią krzyżową? [0,1]
Sycorax mówi Przywróć Monikę

6

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 .


Funkcje strat można traktować jako prawdopodobieństwa / zmiany boczne lub ich monotoniczną transformację. Tak więc, chociaż prawdą jest, że w niektórych modelach regresji strata podobna do entropii krzyżowej może mieć sens, podejście do jakiejkolwiek regresji, w której wyniki są w zakresie , może nie być rozsądnym podejściem . [0,1]
InfProbSciX

@InfProbSciX „może nie być rozsądnym podejściem do radzenia sobie z regresją, w której wyniki są w zakresie [0,1]”. W jakim sensie „rozsądny”? Lub w jaki sposób definiujesz zasadność funkcji utraty dla określonego zadania? Podejrzewam, że to stwierdzenie może być prawdziwe dla każdej funkcji straty. Czy jest jakaś funkcja straty, która byłaby uzasadniona w przypadku wszelkiego rodzaju zadań regresji, oczywiście po zdefiniowaniu „uzasadnionego”?
dzisiaj

Sposób, w jaki zdefiniowałem rozsądek, polega na zbudowaniu modelu prawa. Na przykład w ramach regresji, takich jak gdzie to iid błędy - powiedzmy, że rozkład normalny, ujemne prawdopodobieństwo logarytmiczne jest dokładnie kwadratową stratą. W ustawieniu, w którym prawo modelu wygląda jak , ujemne prawdopodobieństwo logarytmiczne jest dokładnie binarną entropią krzyżową. Tam, gdzie prawo jest regresją liniową z normalnym przełożeniem na cefach, strata odpowiada karie L2 i tak dalej. Tam, gdzie to możliwe, konstruuję prawo, a następnie odnoszę stratę. ϵ Y B e r n o u l l i ( p θ )Y=fθ(X)+ϵϵYBernoulli(pθ)
InfProbSciX

@InfProbSciX Dziękujemy za odpowiedź. Jak już wspomniałeś, w zależności od zadania regresji (i założeń dotyczących dystrybucji danych, błędów itp.) Funkcja utraty może być nieuzasadniona. I, jak wspomniałem, dotyczy to wszystkich funkcji strat, w tym crossentropy. Oczywiście rozumiem twój punkt widzenia, ponieważ fakt, że wartości wyjściowe mieszczą się w przedziale [0,1], nie gwarantuje, że crossentropy jest optymalną funkcją utraty wyboru, a ja nie próbowałem przekazać tego w mojej odpowiedzi.
dziś

5

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.

fθ(x)ylogfθ(x),
y


2

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.


1
Rozumiem, co mówisz, ale osobiście nie rozważałbym dyskretyzacji przestrzeni wyjściowej jako wykonywania „regresji”, ponieważ jest to przybliżenie problemu regresji przy użyciu klasyfikacji ... ale myślę, że to tylko kwestia terminologii / konwencji.
JacKeown

1
Zgoda. 32-bitowa liczba zmiennoprzecinkowa i tak jest dyskretna :-)
dedObed

-1

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.


1
Ta odpowiedź wydaje się odpowiadać na pytanie w inny sposób niż zadany. Funkcje, do których odwołujesz się w pytaniu, dotyczą określonego rodzaju utraty entropii krzyżowej, a twoje pytanie wydaje się pytać, czy tych funkcji można użyć w regresji, a moja odpowiedź jest napisana tak, jakbyś pytał, jak korzystać z tych funkcji link do. Odpowiedź tutaj wydaje się odpowiadać na pytanie „Czy entropię krzyżową można uogólnić poza klasyfikację?” Edycja Q wyjaśni, że nacisk kładziony jest na to, jak zdefiniowane są pojęcia matematyczne, a nie na używanie funkcji Tensorflow.
Sycorax mówi Przywróć Monikę

Rozumiem twój sprzeciw, ale planuję pozostawić to pytanie, ponieważ reprezentuje ono moje pierwotne zapytanie, które moim zdaniem mogłoby pomóc osobom z tym samym pytaniem, które miałem. W każdym razie cały post powinien zawierać wystarczającą ilość informacji.
JacKeown
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.