Która funkcja aktywacji dla warstwy wyjściowej?


44

Chociaż wybór funkcji aktywacji dla ukrytej warstwy jest dość jasny (głównie sigmoid lub tanh), zastanawiam się, jak zdecydować o funkcji aktywacji dla warstwy wyjściowej. Często wybierane są funkcje liniowe, funkcje sigmoidalne i funkcje softmax. Kiedy jednak powinienem użyć tego?


2
Ostatnio ReLU stało się popularne jako funkcja aktywacji ukrytych jednostek.
ijuneja

Odpowiedzi:


39
  • Regresja: liniowa (ponieważ wartości są nieograniczone)
  • Klasyfikacja: softmax (prosta sigmoid też działa, ale softmax działa lepiej)

Używaj prostej sigmoidu tylko wtedy, gdy twój wynik przyjmuje wiele „prawdziwych” odpowiedzi, na przykład sieć, która sprawdza obecność różnych obiektów na obrazie. Innymi słowy, wynik nie jest rozkładem prawdopodobieństwa (nie trzeba sumować do 1).


2
Softmax jest również ważny, jeśli masz wiele grup do klasyfikacji
cdeterman

15
Myślę, że nie można powiedzieć, że softmax działa „lepiej” niż sigmoid, ale można użyć softmax w przypadkach, w których nie można użyć sigmoidu. W przypadku klasyfikacji binarnej funkcja logistyczna (sigmoid) i softmax będą działać równie dobrze, ale funkcja logistyczna jest matematycznie prostsza, a zatem naturalny wybór. Gdy masz więcej niż dwie klasy, nie możesz jednak użyć funkcji skalarnej, takiej jak funkcja logistyczna, ponieważ potrzebujesz więcej niż jednego wyjścia, aby poznać prawdopodobieństwa dla wszystkich klas, dlatego używasz softmax.
HelloGoodbye,

1
Nie sądzę, aby softmax to aktywacja. Ogólnie rzecz biorąc, musisz go aktywować przed normalizacją (softmax).
Aaron

23

Mogę spóźnić się na przyjęcie, ale wydaje się, że są tu pewne rzeczy, które należy wyjaśnić.

g(x)CzCz

C(y,g(z))=12(yg(z))2g(x)=x

C(y,g(z))z=C(y,g(z))g(z)g(z)z=g(z)(12(yg(z))2)z(z)=(yg(z))1=g(z)y
Cz

Cz

Po drugie, chciałbym dodać, że istnieje wiele funkcji aktywacyjnych, których można użyć dla ukrytych warstw. Sigmoidy (takie jak funkcja logistyczna i styczna hiperboliczna) rzeczywiście sprawdziły się dobrze, ale jak wskazał Jatin , cierpią one na zanikanie gradientów, gdy sieci stają się zbyt głębokie. W takim przypadku ReLU stały się popularne. Chciałbym jednak podkreślić, że dostępnych jest znacznie więcej funkcji aktywacyjnych, a różni badacze wciąż szukają nowych (np. Wykładnicze jednostki liniowe (ELU), jednostki liniowe błędu Gaussa (GELU), ...) z różnymi / lepsze właściwości

Podsumowując: Szukając najlepszych funkcji aktywacyjnych, bądź kreatywny. Wypróbuj różne rzeczy i zobacz, jakie kombinacje prowadzą do najlepszej wydajności.


Dodatek: Aby uzyskać więcej par funkcji i aktywacji utraty, prawdopodobnie chcesz poszukać (kanonicznych) funkcji łącza


dlaczego nie jest to najlepsza odpowiedź? bardzo cholernie intuicyjny i całkowicie naukowy
Vikram Murthy

13

Sigmoid i tanh nie powinny być używane jako funkcja aktywacji ukrytej warstwy. Wynika to z problemu znikającego gradientu, tzn. Jeśli dane wejściowe znajdują się po wyższej stronie (gdzie sigmoid staje się płaski), wówczas gradient będzie bliski zeru. Spowoduje to bardzo powolne lub brak uczenia się podczas propagacji wstecznej, ponieważ wagi będą aktualizowane bardzo małymi wartościami.

Szczegółowe wyjaśnienie tutaj: http://cs231n.github.io/neural-networks-1/#actfun

Najlepszą funkcją dla ukrytych warstw jest zatem ReLu.


11
Pytanie dotyczy warstwy wyjściowej. -1
Euler_Salter

1
Zgoda. Dodano odpowiedź na podstawie pierwszego wiersza pytania. Może powinien to być komentarz zamiast odpowiedzi.
Jatin

Cóż, ale czy nie dostałbyś również „problemu z martwymi neuronami ReLU?” Ponadto problem gradientu vanishijg można „rozwiązać” przez normalizację partii. Jeśli nadal chcesz „dezaktywować” niektóre neurony, tak jak robią to aktywacje ReLU, możesz po prostu losowo wyłączyć neurony przez wypadanie. Myślę więc, że na koniec wszystko zależy od problemu i po prostu użyj tego, co działa najlepiej
Kevvy Kim

5

2,3,4,5,...

2,3,4,...

p(y=1)1p(y=1)=p(y=0)

Używanie funkcji tożsamości jako danych wyjściowych może być pomocne, gdy dane wyjściowe są nieograniczone. Zysk lub strata niektórych firm za kwartał może być nieograniczona po obu stronach.

Jednostki ReLU lub podobne warianty mogą być pomocne, gdy wyjście jest ograniczone powyżej lub poniżej. Jeśli wyjście jest ograniczone tylko do nieujemnego, sensowne byłoby użycie aktywacji ReLU jako funkcji wyjściowej.

[1,1]

Zaletą sieci neuronowych jest to, że są one niezwykle elastycznymi narzędziami.

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.