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) = m a x { 0 , m i n { 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 )= 1m∑i =1m- logP.(Y= yja|xja; w , b )=1m∑i = 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:
- ∀ z∈ R : f( z) ∈ [ 0 , 1 ]
- fa( 0 ) = 0,5
- fa powinno być obrotowo symetryczne wrt( 0 , 0,5 ) , tj.fa( - x ) = 1 - f( 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 + e- z orazfa( z) = 0,5 + 0,5 z1 + | 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 + e- z do naszej funkcji kosztów.
Nasycenie dla Y= 1
Dla P.( Y= 1 | z) = 11 + e-z orazY= 1, koszt pojedynczej źle sklasyfikowanej próbki (tj.m = 1) wynosi:
jot(z)= - log( P(Y= 1 |z) )= - log( 11 + e- z)= - log( ez1 + ez)= - z+ log( 1 + ez)
- z
- zY= 1log( 1 + ez)zz- z
- z| z|Y= 1log( 1 + ez)0z- zz- 1z, nie zachodzi nasycenie, które spowodowałoby zanikanie gradientów.
Y= 0
Y= 1Y= 0
jot( z)Y= 1
Y= 0
Alternatywy
z1 + | z|[ 0 , 1 ]P.( Y= 1 | z) = 0,5 + 0,5 z1 + | z|
Y= 1
jot( z) = - log( 0,5 + 0,5 z1 + | z|)
który wygląda następująco:
z→ - ∞