Wielomianowa utrata logistyczna vs (Entropia krzyżowa vs błąd kwadratowy)

9

Zauważyłem, że Caffe (platforma do głębokiego uczenia się) używała Softmax Loss Layer SoftmaxWithLoss jako warstwy wyjściowej dla większości próbek modelu .

O ile mi wiadomo, warstwa Softmax Loss jest połączeniem warstwy wielomianowej straty logistycznej i warstwy Softmax .

Powiedzieli to od Caffe

Obliczanie gradientu warstwy Softmax Loss Layer jest bardziej stabilne numerycznie

Jednak to wyjaśnienie nie jest odpowiedzią, której chcę, wyjaśnienie polega na porównaniu kombinacji warstwy wielomianowej straty logistycznej i warstwy utraty miękkiej warstwy zamiast warstwy po warstwie. Ale nie należy porównywać z innymi rodzajami funkcji strat.

Chciałbym jednak dowiedzieć się więcej o różnicach / zaletach / wadach tych 3 funkcji błędów, którymi są wielomianowe straty logistyczne , krzyżowa entropia (CE) i błąd kwadratowy (SE) w perspektywie nadzorowanego uczenia się? Jakieś artykuły pomocnicze?

karfai
źródło
1
Tylko wskazówka: myślę, że szybciej uzyskasz odpowiedź, jeśli dodasz tag „caffe” do swoich pytań. Również umieszczenie go w stackoverflow zamiast stackexchange może dać więcej uwagi).
mcExchange
1
Ta kombinacja sprawia, że ​​gradient jest łatwy do obliczenia, po prostu y-t. willamette.edu/~gorr/classes/cs449/classify.html
Jingpeng Wu

Odpowiedzi:

11

Moim zdaniem funkcja straty jest funkcją celu, w której chcemy, aby nasze sieci neuronowe optymalizowały jej wagi zgodnie z nią. Dlatego jest on specyficzny dla zadania, a także w pewien sposób empiryczny. Dla jasności, wielomianowa utrata logistyczna i strata między Entropiami są takie same (patrz http://ufldl.stanford.edu/wiki/index.php/Softmax_Regression ). Funkcja kosztu wielomianowej straty logistycznej wygląda następująco: J(θ)=1m[i=1my(i)loghθ(x(i))+(1y(i))log(1hθ(x(i)))].

Zwykle stosuje się go do problemu klasyfikacji. Błąd kwadratowy jest równanie postaci 12Ni=1Nxi1xi222.

Dlatego zwykle stosuje się go w celu zminimalizowania błędów konstrukcyjnych.

EDYCJA: @MartinThoma Powyższa formuła wielomianowej straty logistycznej dotyczy tylko przypadku binarnego, w przypadku ogólnym powinna to być , gdzie K jest liczbą kategorii.J(θ)=[i=1mk=1K1{y(i)=k}logP(y(i)=k|x(i);θ)]

beahacker
źródło
2
W Caffe MultinomialLogisticLoss to , więc kto się tutaj myli? 1Nn=1Nlog(pn,ln)
moi
Nie jest źle, to zmienne binarne, w końcu można je zredukować do formuły. yi
beahacker
Myślałem, że utrata logistyczna wielu wiadomości nie ma drugiego podsumowania, więcJ(θ)=1m[i=1my(i)loghθ(x(i))]
Martin Thoma,
1
@MartinThoma Moja formuła dotyczy tylko przypadku binarnego, w przypadku ogólnym powinna to byćJ(θ)=[i=1mk=1K1{y(i)=k}logP(y(i)=k|x(i);θ)]
beahacker
@beahacker Czy mógłbyś mi powiedzieć, dlaczego drugie spotkanie nie jest uwzględnione w przypadku wielomianowym, jak zauważył Martin Thoma. Próbuję zrozumieć, dlaczego tak się dzieje. Przynajmniej możesz wskazać mi jakiś zasób do zbadania.
Nandeesh
2

Chciałbym dowiedzieć się więcej o różnicach / zaletach / wadach tych 3 funkcji błędów, którymi jest wielomianowa utrata logistyczna, krzyżowa entropia (CE) i błąd kwadratowy (SE) w perspektywie nadzorowanego uczenia się?

Wielomianowa strata logistyczna jest w rzeczywistości taka sama jak entropia krzyżowa. Spójrz na tę funkcję (funkcja kosztu w softmax ): gdzie m to numer próbki, K to numer klasy.

J(θ)=i=1mk=1K1{y(i)=k}logp(y(i)=kx(i);θ)

Funkcja wskaźnika ( ) określa, czy poniżej ma wartość 0 czy 1 w definicji entropii krzyżowej , która jest oznaczona jako jedna „gorąca” w danych treningowych, a jest warunkowym prawdopodobieństwem softmax (q (x) jak pokazano poniżej). 1{y(i)=k}p(x)p(y(i)=kx(i);θ)

xp(x)logq(x)

A MSE jest głównie w sytuacji, gdy funkcja połączenia jest funkcją jedności (rozkład odpowiedzi następuje po rozkładzie normalnym), standardowa regresja liniowa, podczas gdy entropia krzyżowa jest zwykle w przypadku, gdy funkcja połączenia jest funkcją logit. Oto niesamowite porównanie, do którego możesz się odnieść.

Jakieś artykuły pomocnicze?

Oprócz tych w linkach, polecam to ilustrujące: https://github.com/rasbt/python-machine-learning-book/blob/master/faq/softmax_regression.md

Lerner Zhang
źródło
1
MSE zastosowane do (binarnego) klasyfikatora nazywa się wynikiem Briera.
Dave
0

KRÓTKA ODPOWIEDŹ Zgodnie z innymi odpowiedziami Wielomianowa utrata logistyczna i strata z powodu entropii krzyżowej są takie same.

Cross Entropy Loss to alternatywna funkcja kosztu dla NN z wprowadzoną sztucznie funkcją aktywacji sigmoidów, aby wyeliminować zależność od od równań aktualizacji. Czasami ten termin spowalnia proces uczenia się. Alternatywne metody to regularyzowana funkcja kosztów.σ

W tego typu sieciach można chcieć mieć prawdopodobieństwa jako dane wyjściowe, ale nie dzieje się tak w przypadku sigmoidów w sieci wielomianowej. Funkcja softmax normalizuje wyjścia i wymusza ich w zakresie . Może to być przydatne na przykład w klasyfikacji MNIST.[0,1]

DŁUGA ODPOWIEDŹ Z NIEKTÓRYMI BADANIAMI

Odpowiedź jest dość długa, ale spróbuję podsumować.

Pierwszymi nowoczesnymi sztucznymi neuronami, które zostały zastosowane, są sigmoidy, których funkcją jest:

σ(x)=11+ex
który ma następujący kształt: wprowadź opis zdjęcia tutaj

Krzywa jest ładna, ponieważ gwarantuje, że moc wyjściowa mieści się w zakresie .[0,1]

Jeśli chodzi o wybór funkcji kosztu, naturalnym wyborem jest kwadratowa funkcja kosztu, której pochodna jest gwarantowana i wiemy, że ma minimum.

Teraz rozważmy NN z sigmoidami wyszkolonymi z kwadratową funkcją kosztu, z warstwamiL

Definiujemy funkcję kosztu jako sumę kwadratów błędów w warstwie wyjściowej dla zestawu danych wejściowych :X

C=12NxNj=1K(yj(x)ajL(x))2

gdzie jest j-tym neuronem w warstwie wyjściowej , pożądaną mocą wyjściową, a jest liczbą przykładów treningowych.ajLLyjN

Dla uproszczenia rozważmy błąd dla pojedynczego wejścia:

C=j=1K(yj(x)ajL(x))2

Teraz wyjście aktywacji neuronu w warstwie , wynosi:jaj

aj=kwjkaj1+bj=wjaj1+bj

Przez większość czasu (jeśli nie zawsze) NN trenuje się przy użyciu jednej z technik opadania gradientu, która zasadniczo polega na aktualizacji wag i odchyleń małymi krokami w kierunku kierunku minimalizacji. Celem jest zastosowanie niewielkiej zmiany wag i odchyleń w kierunku, który minimalizuje funkcję kosztów.wb

W przypadku małych kroków obowiązują następujące zasady:

ΔCCviΔvi

Nasze to wagi i uprzedzenia. Będąc funkcją kosztu chcemy zminimalizować, tj. Znaleźć właściwą wartość . Załóżmy, że wybieramy , a następnie: viΔvi

Δvi=ηCvi
ΔCη(Cvi)

co oznacza, że zmiana w parametrze zmniejszyła funkcji kosztu poprzez .ΔviΔC

Rozważ ty wyjściowy neuron:j

C=12(y(x)ajL(x)2
ajL=σ=11+e(wjaj1+bj)

Załóżmy, że chcemy zaktualizować wagę która jest wagą od neuronu w warstwie do -tego neuronu w warstwie \ ell. Potem będzie:wjkk1j

wjkwjkηCwjk
bjbjηCbj

Biorąc pochodne za pomocą reguły łańcucha:

Cwjk=(ajL(x)y(x))σak1
Cbj=(ajL(x)y(x))σ

Widzisz zależność od pochodnej sigmoidu (w pierwszym jest wrt w drugim wrt , ale to niewiele się zmienia, ponieważ oba są wykładnikami).wb

Teraz pochodną dla ogólnej pojedynczej zmiennej sigmoid jest: z

dσ(z)dz=σ(z)(1σ(z))

Rozważmy teraz neuron z jednym wyjściem i załóżmy, że neuron powinien wyprowadzić zamiast tego wyprowadza wartość bliską : zobaczysz oba na wykresie, że sigmoid dla wartości bliskich jest płaski, tj. Jego pochodna jest bliska , tj. aktualizacje parametru są bardzo wolne (ponieważ równania aktualizacji zależą od .0110σ

Motywacja funkcji entropii krzyżowej

Aby zobaczyć, jak pierwotnie wyprowadzono entropię krzyżową, załóżmy, że właśnie odkryłeś, że termin spowalnia proces uczenia się. Możemy się zastanawiać, czy możliwe jest wybranie funkcji kosztu, aby zniknął termin . Zasadniczo można chcieć:σσ

Cw=x(ay)Cb=(ay)
Z reguły łańcuchowej mamy: Porównując pożądane równanie z regułą łańcucha, otrzymujemy Używając metody ukrywania:
Cb=Caab=Caσ(z)=Caσ(1σ)
Ca=aya(1a)
Ca=[ylna+(1y)ln(1a)]+const
Aby uzyskać funkcję pełnego kosztu, musimy uśrednić wszystkie próbki szkoleniowe gdzie stała tutaj jest średnią poszczególnych stałych dla każdego przykładu szkolenia.
Ca=1nx[ylna+(1y)ln(1a)]+const

Istnieje standardowy sposób interpretacji entropii krzyżowej pochodzącej z dziedziny teorii informacji. Z grubsza mówiąc, chodzi o to, że entropia krzyżowa jest miarą zaskoczenia. Dostajemy małą niespodziankę, jeśli wynik jest tym, czego oczekujemy ( ), i wysoką niespodziankę, jeśli wynik jest nieoczekiwany.ay

Softmax

W przypadku klasyfikacji binarnej entropia krzyżowa przypomina definicję w teorii informacji, a wartości można nadal interpretować jako prawdopodobieństwa.

W przypadku klasyfikacji wielomianowej nie jest to już prawdą: dane wyjściowe odnotowują sumę do .1

Jeśli chcesz, aby sumowały się do , użyj funkcji softmax, która normalizuje wyjścia tak, że suma wynosi .11

Również, jeśli warstwa wyjściowa składa się z funkcji softmax, składnik spowalniający nie jest obecny. Jeśli użyjesz funkcji kosztu prawdopodobieństwa logarytmicznego z warstwą wyjściową softmax, w wyniku otrzymasz formę pochodnych cząstkowych, a następnie równania aktualizacyjne, podobne do tych znalezionych dla funkcji entropii krzyżowej z neuronami esowatymi

jednak

Francesco Boi
źródło