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?
y-t
. willamette.edu/~gorr/classes/cs449/classify.htmlOdpowiedzi:
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[∑mi=1y(i)loghθ(x(i))+(1−y(i))log(1−hθ(x(i)))].
Zwykle stosuje się go do problemu klasyfikacji. Błąd kwadratowy jest równanie postaci12N∑Ni=1∥x1i−x2i∥22.
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(θ)=−[∑mi=1∑Kk=11{y(i)=k}logP(y(i)=k|x(i);θ)]
źródło
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.
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)=k∣x(i);θ)
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ść.
Oprócz tych w linkach, polecam to ilustrujące: https://github.com/rasbt/python-machine-learning-book/blob/master/faq/softmax_regression.md
źródło
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:
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
gdzie jest j-tym neuronem w warstwie wyjściowej , pożądaną mocą wyjściową, a jest liczbą przykładów treningowych.aLj L yj N
Dla uproszczenia rozważmy błąd dla pojedynczego wejścia:C=∑j=1K(yj(x)−aLj(x))2
Teraz wyjście aktywacji neuronu w warstwie , wynosi:j ℓ aℓj
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.w b
W przypadku małych kroków obowiązują następujące zasady:
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=−η∂C∂vi ΔC≈−η(∂C∂vi)
co oznacza, że zmiana w parametrze zmniejszyła funkcji kosztu poprzez .Δvi ΔC
Rozważ ty wyjściowy neuron:j
Załóżmy, że chcemy zaktualizować wagę która jest wagą od neuronu w warstwie do -tego neuronu w warstwie \ ell. Potem będzie:wℓjk k ℓ−1 j
Biorąc pochodne za pomocą reguły łańcucha:∂C∂wℓjk=(aLj(x)−y(x))σ′aℓ−1k
∂C∂bℓj=(aLj(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).w b
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 .0 1 1 0 σ′
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ć:σ′ σ′
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.a y
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 .1 1
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
źródło