Nieliniowość przed końcową warstwą Softmax w splotowej sieci neuronowej

12

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 ja wyjściowego neuronu to iloczyn iloczynu między wektorem (pochodzącym z poprzedniej warstwy) a wagami dla tego neuronu,xT.θjaxθja
  • 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.xT.θja

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?

max(0,xT.θja)

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?


skraj
źródło
Czy warstwy N-2, N-3, .. 1 są liniowe czy nieliniowe?
Karel Macek
Warstwy od 1 (najbliżej wejścia) do N-1 są nieliniowe. Warstwa N jest ostatnią (bliżej wyjścia) ukrytą warstwą. Warstwa softmax to warstwa N + 1.
rand
1
Co z warstwą BN tuż przed softmax? czy ta nieliniowość jest w porządku? (czy to się liczy jako nieliniowość?)
Charlie Parker,

Odpowiedzi:

11

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.

pir
źródło
2
Co z warstwą BN tuż przed softmax? czy ta nieliniowość jest w porządku? (czy to się liczy jako nieliniowość?)
Charlie Parker,
6

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ę.

Alex Lamb
źródło
0

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.

Karel Macek
źródło
Czy możesz spojrzeć na moją edycję?
rand