Co decyduje o wyborze funkcji (Softmax vs Sigmoid) w klasyfikatorze logistycznym?
Załóżmy, że istnieją 4 klasy wyjściowe. Każda z powyższych funkcji podaje prawdopodobieństwo, że każda klasa będzie poprawnym wyjściem. Który wziąć do klasyfikatora?
Co decyduje o wyborze funkcji (Softmax vs Sigmoid) w klasyfikatorze logistycznym?
Załóżmy, że istnieją 4 klasy wyjściowe. Każda z powyższych funkcji podaje prawdopodobieństwo, że każda klasa będzie poprawnym wyjściem. Który wziąć do klasyfikatora?
Odpowiedzi:
Funkcja sigmoidalna jest używana do regresji logistycznej dwuklasowej, podczas gdy funkcja softmax jest używana do regresji logistycznej wieloklasowej (aka MaxEnt, wielomianowa regresja logistyczna, regresja softmax, maksymalny klasyfikator Entropii).
W dwuklasowej regresji logistycznej przewidywane prawdopodobieństwa są następujące przy użyciu funkcji sigmoidalnej:
W wieloklasowej regresji logistycznej z klasami przewidywane prawdopodobieństwa są następujące, przy użyciu funkcji softmax:
Można zauważyć, że funkcja softmax jest rozszerzeniem funkcji sigmoidalnej na przypadek wieloklasowy, jak wyjaśniono poniżej. Spójrzmy na wieloklasową regresję logistyczną z klasami :
z . Widzimy, że uzyskujemy takie same prawdopodobieństwa jak w dwuklasowej regresji logistycznej za pomocą funkcji sigmoidalnej. Wikipedia rozwija się nieco bardziej.
W rzeczywistości są one równoważne w tym sensie, że jedno można przekształcić w drugie.
Załóżmy, że twoje dane są reprezentowane przez wektor o dowolnym wymiarze i zbudowałeś dla niego binarny klasyfikator, używając transformacji afinicznej, po której następuje softmax:
Przekształćmy go w równoważny binarny klasyfikator, który używa sigmoidu zamiast softmax. Przede wszystkim musimy zdecydować, jakie jest prawdopodobieństwo, że sigmoid (co może dotyczyć klasy lub ). Ten wybór jest absolutnie dowolny, dlatego wybieram klasę . Następnie mój klasyfikator będzie miał postać:
Klasyfikatory są równoważne, jeśli prawdopodobieństwa są takie same, dlatego musimy narzucić:
Wymiana , oraz ich wyrażenia w kategoriach i i robi niektóre proste algebraicznych manipulacji, można sprawdzić, czy równość powyżej posiada tylko wtedy, gdy i są przez:
Zauważyłem, że ludzie często kierują się na to pytanie, szukając, czy użyć sigmoid vs softmax w sieciach neuronowych. Jeśli jesteś jedną z osób budujących klasyfikator sieci neuronowej, oto jak zdecydować, czy zastosować sigmoid czy softmax do surowych wartości wyjściowych z twojej sieci:
Odniesienie: aby uzyskać bardziej szczegółowe wyjaśnienie, kiedy należy zastosować sigmoid kontra softmax w projektowaniu sieci neuronowej, w tym przykładowe obliczenia, zobacz ten artykuł: „Klasyfikacja: Sigmoid vs. Softmax”.
Dodając do wszystkich poprzednich odpowiedzi - chciałbym wspomnieć o tym, że każdy problem z klasyfikacją wielu klas można sprowadzić do wielu problemów z klasyfikacją binarną za pomocą metody „jeden na wszystkich”, tj. Posiadania sigmoidów C (gdy C jest liczbą klas) i interpretowanie każdej sigmoidy jako prawdopodobieństwa bycia w tej konkretnej klasie lub nie, i przyjmowanie maksymalnego prawdopodobieństwa.
Na przykład w przykładzie cyfr MNIST można użyć softmax lub dziesięciu sigmoidów. W rzeczywistości to właśnie robi Andrew Ng w swoim kursie Coursera ML. Możesz sprawdzić tutaj, jak Andrew Ng użył 10 sigmoidów do klasyfikacji wieloklasowej (dostosowanej przeze mnie z Matlaba do Pythona), a oto moja adaptacja softmax w pythonie.
Warto również zauważyć, że chociaż funkcje są równoważne (dla celów klasyfikacji wieloklasowej) różnią się nieco pod względem implementacji (szczególnie w odniesieniu do ich pochodnych i sposobu reprezentowania y).
Dużą zaletą korzystania z wielu klasyfikacji binarnych (tj. Sigmoidów) w porównaniu z pojedynczą klasyfikacją wieloklasową (tj. Softmax) - jest to, że jeśli softmax jest zbyt duży (np. Jeśli używasz osadzenia jednego słowa na gorąco o rozmiarze słownika 10 K lub większym ) - szkolenie go może być nieefektywne. Zamiast tego możesz wziąć niewielką część zestawu treningowego i użyć go do treningu tylko niewielkiej części sigmoidów. Jest to główna idea negatywnego próbkowania .