Studiuję i próbuję wdrożyć splotowe sieci neuronowe, ale przypuszczam, że to pytanie dotyczy ogólnie wielowarstwowych perceptronów.
Neurony wyjściowe w mojej sieci reprezentują aktywację każdej klasy: najbardziej aktywny neuron odpowiada przewidywanej klasie dla danego wejścia. Aby rozważyć koszt entropii krzyżowej dla szkolenia, dodaję warstwę softmax na końcu sieci, aby wartość aktywacji każdego neuronu była interpretowana jako wartość prawdopodobieństwa.
Moje pytanie brzmi: czy neurony w warstwie wyjściowej powinny stosować nieliniową funkcję na wejściu? Mam intuicję, że nie jest to konieczne:
- jeśli dane wejściowe do wyjściowego neuronu to iloczyn iloczynu między wektorem (pochodzącym z poprzedniej warstwy) a wagami dla tego neuronu,
- a jeśli zastosuję monotoniczną funkcję nieliniową, taką jak sigmoid lub ReLU
- wówczas większy wynik aktywacji będzie nadal odpowiadał największemu , więc z tego punktu widzenia funkcja nieliniowa nie zmieni prognozy.
Czy coś jest nie tak z tą interpretacją? Czy pomijam jakieś czynniki szkoleniowe, które powodują, że nieliniowość wyjściowa jest konieczna?
A jeśli mam rację, czy cokolwiek by się zmieniło, gdyby zamiast korzystania z funkcji sigmoid korzystałem z funkcji ReLU , która nie jest ściśle monotoniczna?
EDYTOWAĆ
W odniesieniu do odpowiedzi Karela, której odpowiedź brzmiała „to zależy”, oto bardziej szczegółowy opis mojej sieci i wątpliwości:
Załóżmy, że mam N ukrytych warstw, a moja warstwa wyjściowa jest tylko warstwą softmax nad zestawem neuronów reprezentujących klasy (więc moim oczekiwanym wynikiem jest prawdopodobieństwo, że dane wejściowe należą do każdej klasy). Zakładając, że pierwsze warstwy N-1 mają neurony nieliniowe, jaka jest różnica między użyciem neuronów nieliniowych a liniowych w N-tej ukrytej warstwie?
Odpowiedzi:
Nie należy używać nieliniowości dla ostatniej warstwy przed klasyfikacją softmax. Nieliniowość ReLU (obecnie używana prawie wyłącznie) w tym przypadku po prostu wyrzuci informacje bez dodatkowych korzyści. Możesz zapoznać się z implementacją znanej AlexNet firmy Caffe w celu uzyskania odniesienia do tego, co zostało zrobione w praktyce.
źródło
Możesz wysłać wartość ujemną do funkcji softmax, aby wskazać, że zdarzenie ma małe prawdopodobieństwo. Jeśli przekażesz wartości wejściowe do relu, sieć nie przepuści żadnego gradientu przez jednostki, w których wejście do relu jest ujemne. Tak więc, chociaż moc ekspresji softmax nie ulegnie zmianie, prawdopodobnie utrudni to naukę.
źródło
Odpowiedź nie brzmi tak lub nie. Zależy to ściśle od twoich oczekiwań dotyczących sieci. Zakładam, że chcesz mieć dobry klasyfikator, który może dotyczyć wielu problemów. Dlatego nieliniowość może być pomocna w przechwytywaniu nietrywialnych klas. Nieliniowość może być zawarta w ostatniej warstwie przed warstwą miękkiego maksimum lub w warstwie poprzedniej.
źródło