Dlaczego sigmoid działa zamiast czegokolwiek innego?

40

Dlaczego de facto standardowa funkcja sigmoidalna tak popularna w (nie-głębokich) sieciach neuronowych i regresji logistycznej?11+ex

Dlaczego nie używamy wielu innych pochodnych funkcji, z szybszym czasem obliczeń lub wolniejszym rozpadem (więc zanikający gradient występuje mniej). Na Wikipedii jest niewiele przykładów dotyczących funkcji sigmoidalnych . Jednym z moich ulubionych z powolnym rozkładem i szybkimi obliczeniami jest .x1+|x|

EDYTOWAĆ

Pytanie różni się od kompleksowej listy funkcji aktywacyjnych w sieciach neuronowych z zaletami / wadami, ponieważ interesuje mnie tylko „dlaczego” i tylko sigmoid.

Mark Horvath
źródło
6
Zauważ, że sigmoid logistyczny jest szczególnym przypadkiem funkcji softmax i zobacz moją odpowiedź na to pytanie: stats.stackexchange.com/questions/145272/...
Neil G
10
Tam inne funkcje, takie jak probit lub cloglog, które są powszechnie stosowane, patrz: stats.stackexchange.com/questions/20523/...
Tim
4
@ user777 Nie jestem pewien, czy jest to duplikat, ponieważ wątek, do którego się odwołujesz, tak naprawdę nie odpowiada na pytanie dlaczego .
Tim
@KarelMacek, czy jesteś pewien, że jego pochodna nie ma lewego / prawego limitu na 0? Praktycznie wygląda na to, że ma ładną styczną na połączonym obrazie z Wikipedii.
Mark Horvath,
5
Nienawidzę nie zgadzać się z tyloma wybitnymi członkami społeczności, którzy głosowali za zamknięciem tego dokumentu jako duplikatu, ale jestem przekonany, że pozorny duplikat nie odnosi się do „dlaczego”, dlatego głosowałem za ponownym otwarciem tego pytania.
whuber

Odpowiedzi:

24

Cytując siebie z tej odpowiedzi na inne pytanie:

W sekcji 4.2 Rozpoznawania wzorców i uczenia maszynowego (Springer 2006) Bishop pokazuje, że logit powstaje naturalnie jako forma późniejszego rozkładu prawdopodobieństwa w bayesowskim traktowaniu klasyfikacji dwuklasowej. Następnie pokazuje, że to samo dotyczy dyskretnie rozłożonych cech, a także podzbioru rodziny rozkładów wykładniczych. W przypadku klasyfikacji wielu klas logit uogólnia się na znormalizowaną funkcję wykładniczą lub softmax.

To wyjaśnia, dlaczego sigmoid jest wykorzystywany w regresji logistycznej.

W odniesieniu do sieci neuronowych ten post na blogu wyjaśnia, w jaki sposób różne nieliniowości, w tym logit / softmax i probit stosowane w sieciach neuronowych, mogą być interpretowane statystycznie, a tym samym motywowane. Podstawową ideą jest to, że wielowarstwową sieć neuronową można uznać za hierarchię uogólnionych modeli liniowych; zgodnie z tym funkcje aktywacyjne są funkcjami łączącymi, które z kolei odpowiadają różnym założeniom dystrybucyjnym.

A. Donda
źródło
1
Świetny! Kiedy więc używamy sigmoidów w sieci, możemy powiedzieć, że domyślnie zakładamy, że sieć „modeluje” prawdopodobieństwa różnych zdarzeń (w warstwach wewnętrznych lub na wyjściu). Może to być rozsądny model wewnątrz sieci, nawet w przypadku błędu kwadratu (pozwalając neuronowi wyjściowemu na inną funkcję aktywacji). Nigdy wcześniej nie myślałem o tej intuicji, dzięki!
Mark Horvath,
@MarkHorvath Cieszę się, że mogłem pomóc. :-)
A. Donda
Historycznie nie. Moje najlepsze podsumowanie niechlujnej historii polega na tym, że logit wszedł do nauki statystycznej głównie dlatego, że formy funkcjonalne używane do przewidywania zmian w czasie (populacje, które powinny podążać za krzywymi logistycznymi) wyglądały właściwie, gdy zostały zaadaptowane i przyjęte jako funkcje łączące [anachroniczne zastosowanie tam!] Do odpowiedzi binarnych ; i łatwo nimi manipulować za pomocą prostego rachunku różniczkowego, którego nie są wyrażenia w wartościach bezwzględnych. Ale oczywiście najprostsze logiczne uzasadnienie takich funkcji jest interesujące i kluczowe, a odpowiedź na to pytanie jest właśnie taka.
Nick Cox,
1
Przeczytałem sekcje obu książek Bishopa (2006 i 1995) i nadal nie jestem przekonany, że sigmoid jest tutaj niezbędny, chociaż z pewnością motywację czerpię z logit. Co się stanie, jeśli zapiszę tę samą funkcję utraty entropii krzyżowej na podstawie 2-klasowego założenia Poissona, ale użyję innej funkcji aktywacji zamiast sigmoidu? Na przykład ten podobny, ale nie tak ładny, zdefiniowany fragmentarycznie: g (x) = 1 / (2-2x) jeśli x <0, 1 - 1 / (2 + 2x) dla x> 0, g (0) = 0,5 Teraz równanie maksymalnego prawdopodobieństwa wygląda inaczej, ale jeśli go zminimalizujemy, nadal nie otrzymujemy prawdopodobieństw jako wyników?
eraoul,
gdyby Bischop wziął , w "naturalnie powstawania" funkcja będzieza=p(x,do1)(1+p(x,do1))p(x,do2)) , prawda? za1+za2)
Pan Tsjolder
18

Jednym z powodów, dla których ta funkcja może wydawać się bardziej „naturalna” niż inne, jest fakt, że jest ona odwrotnością parametru kanonicznego rozkładu Bernoulliego: (Funkcjapwewnątrz wykładnika nazywa się parametrem kanonicznym.)

fa(y)=py(1-p)1-y=(1-p)exp{ylog(p1-p)}.
p

Być może bardziej przekonujące uzasadnienie pochodzi z teorii informacji, w której funkcję sigmoidalną można uzyskać jako model maksymalnej entropii . Z grubsza mówiąc, funkcja sigmoidalna przyjmuje minimalną strukturę i odzwierciedla nasz ogólny stan niewiedzy na temat podstawowego modelu.

dsaxton
źródło
Dobre uzasadnienie regresji logistycznej. Zabawne jest to, że używamy tego również do kwadratu błędu ...
Mark Horvath,
11

Zadawałem sobie to pytanie od miesięcy. Odpowiedzi na CrossValidated i Quora wszystkie zawierają ładne właściwości logistycznej funkcji sigmoid, ale wydaje się, że sprytnie odgadliśmy tę funkcję. Brakowało mi uzasadnienia wyboru. W końcu znalazłem jeden w sekcji 6.2.2.2 książki „Głębokie uczenie się” autorstwa Bengio (2016) . W moich własnych słowach:

Krótko mówiąc, chcemy, aby logarytm danych wyjściowych modelu był odpowiedni do opartej na gradiencie optymalizacji prawdopodobieństwa danych szkoleniowych.

Motywacja

  • Chcemy modelu liniowego, ale nie możemy użyć z=wT.x+b bezpośrednio jako z(-,+) .
  • Do klasyfikacji sensowne jest założenie rozkładu Bernoulliego i modelowanie jego parametru θ w P.(Y=1)=θ .
  • Musimy więc zmapować z od (-,+) do [0,1] aby dokonać klasyfikacji.

Dlaczego logistyczna funkcja sigmoidalna?

Odcięcie z pomocą P.(Y=1|z)=mzax{0,mjan{1,z}} daje zerowy gradient dla z poza [0,1] . Potrzebujemy silnego gradientu, gdy prognoza modelu jest błędna, ponieważ rozwiązujemy regresję logistyczną z opadaniem gradientu. W przypadku regresji logistycznej nie ma rozwiązania w formie zamkniętej.

Funkcja logistyczna ma fajną właściwość polegającą na asymptotowaniu stałego gradientu, gdy prognoza modelu jest błędna, biorąc pod uwagę, że do dopasowania modelu używamy oszacowania maksymalnej wiarygodności. Jest to pokazane poniżej:

W przypadku korzyści numerycznych można oszacować maksymalne prawdopodobieństwo poprzez zminimalizowanie ujemnego prawdopodobieństwa logarytmu danych treningowych. Nasza funkcja kosztów to:

jot(w,b)=1mja=1m-logP.(Y=yja|xja;w,b)=1mja=1m-(yjalogP.(Y=1|z)+(yja-1)logP.(Y=0|z))

Ponieważ P.(Y=0|z)=1-P.(Y=1|z) , możemy skupić się na przypadku Y=1 . Pytanie brzmi więc, jak modelować P.(Y=1|z) biorąc pod uwagę, że mamy z=wT.x+b .

Oczywiste wymagania dla funkcji fa mapowania z na P.(Y=1|z) to:

  • zR:fa(z)[0,1]
  • fa(0)=0,5
  • fa powinno być obrotowo symetryczne wrt(0,0,5) , tj.fa(-x)=1-fa(x) , aby odwrócenie znaków klas nie miało wpływu na funkcję kosztu.
  • fa powinien być nie malejący, ciągły i zróżnicowany.

Wszystkie te wymagania są spełnione przez przeskalowanie funkcji sigmoid . Zarówno fa(z)=11+mi-z orazfa(z)=0,5+0,5z1+|z|spełnij je. Funkcje sigmoidów różnią się jednak pod względem zachowania podczas optymalizacji prawdopodobieństwa dziennika na podstawie gradientu. Widzimy różnicę, podłączając funkcję logistycznąfa(z)=11+mi-z do naszej funkcji kosztów.

Nasycenie dla Y=1

Dla P.(Y=1|z)=11+mi-z orazY=1, koszt pojedynczej źle sklasyfikowanej próbki (tj.m=1) wynosi:

jot(z)=-log(P.(Y=1|z))=-log(11+mi-z)=-log(miz1+miz)=-z+log(1+miz)

-z

  • zY=1log(1+miz)zz-z
  • z|z|Y=1log(1+miz)0z-zz-1z, nie zachodzi nasycenie, które spowodowałoby zanikanie gradientów.

Y=0

Y=1Y=0

jot(z)Y=1

wprowadź opis zdjęcia tutaj

Y=0

Alternatywy

z1+|z|[0,1]P.(Y=1|z)=0,5+0,5z1+|z|

Y=1

jot(z)=-log(0,5+0,5z1+|z|)

który wygląda następująco:

wprowadź opis zdjęcia tutaj

z-

Kilian Batzner
źródło
Co masz na myśli, gdy piszesz „gdy model jest zły”?
Gabriel Romon,
(xja,yja)z=5yja=0
6

Ponieważ w pierwotnym pytaniu wspomniano o problemie z rozkładającym się gradientem, chciałbym tylko dodać, że w przypadku warstw pośrednich (gdzie nie trzeba interpretować aktywacji jako prawdopodobieństwa klasowego lub wyników regresji), inne nieliniowości są często lepsze niż funkcje sigmoidalne. Najważniejsze są funkcje prostownika (jak w ReLU ), które są liniowe w dziedzinie dodatniej i zero w zakresie ujemnym. Jedną z ich zalet jest to, że są mniej podatni na rozkładające się gradienty, ponieważ pochodna jest stała w domenie dodatniej. ReLU stały się popularne do tego stopnia, że ​​sigmoidy prawdopodobnie nie mogą być już nazywane de facto standardem.

Glorot i in. (2011) . Głębokie rzadkie sieci neuronowe prostowników

user20160
źródło
2
Tak. Myślę, że powodem, dla którego funkcja logistyczna była tak popularna, był jej import ze statystyk. Relu jest obecnie najpopularniejszy na wielu polach.
Ricardo Cruz,