Demistyfikujący softmax

Apr 15 2023
Jak wyprowadzić funkcję softmax z wymagań projektowych zadania klasyfikacyjnego?
Powszechnym podejściem do klasyfikacji wieloklasowej jest przyjęcie osobnego klasyfikatora binarnego dla każdej klasy. Każdy klasyfikator jest odpowiedzialny za rozpoznanie swojej własnej powiązanej klasy.
Zdjęcie Ramakant Sharda na Unsplash

Powszechnym podejściem do klasyfikacji wieloklasowej jest przyjęcie osobnego klasyfikatora binarnego dla każdej klasy.

Każdy klasyfikator jest odpowiedzialny za rozpoznanie swojej własnej powiązanej klasy.

Najpierw rozważ wybory projektowe stojące za konstrukcją pojedynczego klasyfikatora binarnego. Poniżej rozszerzymy projekt na zbiór klasyfikatorów binarnych.

Jako punkt wyjścia weźmy równanie liniowe, które przyjmuje wektor cech x i zwraca wynik y , który jest ważoną sumą cech wejściowych i ich parametrów. Wyjście y jest liczbą rzeczywistą, którą należy odwzorować na decyzję: Czy wejście x reprezentuje obiekt należący do klasy, którą mam wykryć ? Najprostszym wyborem jest zwrócenie komunikatu „ moja klasa” , gdy y przyjmuje wartość dodatnią i pozostawienie klasyfikatora nieaktywnym, gdy y jest ujemne.

Klasyfikator binarny — wersja Beta

Ale wtedy przegapilibyśmy informację o niepewności/pewności wyjścia klasyfikatora. Moglibyśmy również zwrócić surową wartość wyjścia klasyfikatora y jako miarę pewności klasyfikatora co do wyniku . Jednak zakres od -∞ do +∞ byłby niewygodny do interpretacji, porównania i przetwarzania końcowego.

Wymóg projektowy nr 1: dane wyjściowe jako prawdopodobieństwo

Zamiast tego lepiej jest zwrócić wartość w ściśle ograniczonym zakresie, który można zinterpretować jako prawdopodobieństwo p , że dane wejściowe x reprezentują obiekt należący do „ mojej klasy ”.

Zatem pytanie brzmi: jak rzutować y na wartość p , którą można luźno zinterpretować jako prawdopodobieństwo?

Początkowo wartość ta powinna należeć do zakresu <0,1>. Następnie 0,5 powinno być punktem zwrotnym decyzji. Wreszcie, wartości większe niż 0,5 powinny przemawiać za pozytywnym wykryciem klasy.

Z matematycznego punktu widzenia szukamy funkcji ciągłej φ :

tak, że 0 ląduje w 0,5 , +∞ jest rzutowane na 1 , a -∞ na 0 .

Klasyfikator binarny — ulepszony projekt

W tym przypadku łatwym sposobem jest inżynieria odwrotna: zacznij od p i wróć do y . Prawdopodobieństwo klasy p można łatwo przewidzieć z <0,1> w przedziale < 0 , +∞) za pomocą ilorazu szans:

Kolejne odwzorowanie powinno rzucić otrzymane wartości na (-∞, +∞) . Oczywistym wyborem jest funkcja logarytmiczna.

Wtedy oba końce spotykają się tutaj. Zaczęliśmy od przedziału < 0 , 1 > i doszliśmy do przedziału (-∞,+∞) , który na początku zakładano jako zwracany przez y :

Na razie podstawa B logarytmu pozostaje nieokreślona.

Kolejnymi krokami jest odwrócenie zależności do pożądanego p = φ ( y ) :

W końcu dochodzimy do pożądanego wzoru:

Teraz musimy zdecydować o wartości B . Spójrzmy na wykres przedstawiający warianty funkcji φ dla różnych wartości B .

Najmniejszy wydaje się być B=2.71 . O dziwo, podobna wartość ma swój własny symbol e i nazywana jest naturalną bazą. Stąd dla logarytmu o podstawie naturalnej ostatni wzór przyjmuje następującą postać:

Gratulacje!

Właśnie ponownie odkryliśmy słynną funkcję esicy .

Pytanie do Ciebie brzmi : Czy e jest naprawdę najlepszym wyborem? Co by się stało, gdybyśmy wybrali inną wartość? Czy stracilibyśmy interpretację probabilistyczną?

Rozważmy również to : dlaczego nie użyć jakiejś nieliniowej relacji między y i x ? Przypomnijmy, że aby wyprowadzić φ , założyliśmy jedynie, że wartość y leży w przedziale (-∞,+∞) .

Kiedy mamy do czynienia z wieloma (powiedzmy M ) klasami, przypisujemy każdej klasie jej własny klasyfikator binarny.

Jeśli klasyfikatory działają niezależnie, może się zdarzyć, że wszystkie zwracane prawdopodobieństwa nie sumują się do 1 , co powoduje, że probabilistyczna interpretacja ich danych wyjściowych jest błędna. To wyzwanie, z którym trzeba się teraz zmierzyć.

Wymóg projektowy nr 2: suma do jednego

Wszystkie klasyfikatory przyjmują ten sam x . I - ty klasyfikator oblicza y_i . Ponownie chcemy zrobić projekcję y_i na p_i , ale tym razem w synchronizacji ze wszystkimi innymi klasyfikatorami , więc

Synchronizacja między klasyfikatorami polega na wzajemnym uzgodnieniu, jak projektować niezależnie obliczone y_i na p_i . Dla pojedynczego klasyfikatora iloraz szans obejmował prawdopodobieństwa dwóch wyników: „ moja klasa ” z prawdopodobieństwem p w porównaniu z „ nie moja klasa ” z prawdopodobieństwem 1-p . Im wyższa wartość y , tym bardziej prawdopodobne jest wyjście „ moja klasa ”. Teraz zamiast wyniku „ not my class ” powinniśmy być bardziej konkretni i wprowadzić wynik „ twoja klasa ”. Dlatego bardziej ogólną wersją byłoby: „ moja klasa ” z prawdopodobieństwem p_kkontra „ twoja klasa ” z prawdopodobieństwem p_l . A im wyższy mój wynik y_k niż twój wynik y_l , tym bardziej prawdopodobne jest " moja klasa " niż " twoja klasa ".

Wymóg projektowy nr 3: wzajemne relacje między prawdopodobieństwami

Oto zaktualizowana wersja równania (1):

Należy zauważyć, że to wymaganie jest rozszerzoną wersją wymagania projektowego nr 1.

Zadanie polega na wzięciu zarówno wymagań projektowych №2, jak i №3, reprezentowanych przez równania (2) i (3), i wyprowadzenie wzoru na taką funkcję Φ _i , że :

Podjęliśmy już decyzję o użyciu logarytmu o podstawie naturalnej e , więc wykorzystajmy go do dalszych rozważań:

Aby skorzystać z informacji zawartych w równaniu (2) stosujemy sumowanie obustronne:

i wyodrębnij elementy, które nie zmieniają się wraz z k przed znakami sumy. Zauważ, że zgodnie z równaniem (2) suma wszystkich prawdopodobieństw równa się 1 :

Ostatecznie dochodzimy do następującej funkcji:

które można przepisać na i zamiast l jako:

Jeszcze raz gratulacje!

W ten sposób w końcu ponownie odkryliśmy powszechnie znaną funkcję softmax .

Końcowe przemyślenia

Mam nadzieję, że docenisz to, że w przejrzysty sposób dotarliśmy do funkcji softmax. W naszych rozważaniach nie uciekaliśmy się do rewelacji, luźnych analogii z nauk fizycznych ani autorytetów. W tym artykule funkcja softmax jest wynikiem prostego rozumowania wywodzącego się z naturalnych wymagań stawianych problemom wieloklasowym .

Moim zamiarem jest dać ci silniejsze poczucie pochodzenia funkcji softmax w rozwiązywaniu problemów uczenia maszynowego.

Polecam zapoznanie się z innym bardzo inspirującym podejściem do wyprowadzania funkcji sigmoidalnej, przedstawionym na blogu Willa Wolfa .

Na koniec zastanów się , czy to wszystko można osiągnąć w inny sposób: używając niezależnie działających klasyfikatorów, następnie normalizując wszystkie p_i , a następnie zastępując p_i znormalizowanymi wartościami.

Bibliografia

[1] Gabriel Furnieres : Funkcje Sigmoid i SoftMax w 5 minut . https://towardsdatascience.com/sigmoid-and-softmax-functions-in-5-minutes-f516c80ea1f9

[2] Will Wolf : Wyprowadzenie Softmax z pierwszych zasad .https://willwolf.io/2017/04/19/deriving-the-softmax-from-first-principles/