Non linearità prima dello strato finale di Softmax in una rete neurale convoluzionale


12

Sto studiando e cercando di implementare reti neurali convoluzionali, ma suppongo che questa domanda si applichi ai percetroni multistrato in generale.

I neuroni di output nella mia rete rappresentano l'attivazione di ogni classe: il neurone più attivo corrisponde alla classe prevista per un dato input. Per considerare un costo di entropia incrociata per l'allenamento, sto aggiungendo uno strato di softmax alla fine della rete, in modo che il valore di attivazione di ciascun neurone sia interpretato come un valore di probabilità.

La mia domanda è: i neuroni nel livello di output dovrebbero applicare una funzione non lineare all'input? La mia intuizione è che non è necessario:

  • se l'input -esimo neurone in uscita è il prodotto punto tra un vettore (proveniente dal livello precedente) e i pesi per quel neurone,ioXTθioXθio
  • e se impiego una funzione monotonica non lineare come il sigmoide o il ReLU
  • quindi l'output di attivazione più grande corrisponderà comunque al più grande , quindi da questo punto di vista la funzione non lineare non cambierebbe la previsione.XTθio

C'è qualcosa di sbagliato in questa interpretazione? Ci sono alcuni fattori di addestramento che sto trascurando che rendono necessaria la non linearità dell'output?

E se ho ragione, cambierebbe qualcosa se invece di usare la funzione sigmoid uso la funzione ReLU , che non è strettamente monotona?

max(0,XTθio)

MODIFICARE

Con riferimento alla risposta di Karel, la cui risposta era sostanzialmente "dipende", ecco una descrizione più dettagliata della mia rete e dei dubbi:

Supponiamo che io abbia N livelli nascosti e che il mio livello di output sia solo un livello di softmax su un insieme di neuroni che rappresentano le classi (quindi il mio output atteso è la probabilità che i dati di input appartengano a ciascuna classe). Supponendo che i primi strati N-1 abbiano neuroni non lineari, qual è la differenza tra l'utilizzo di neuroni non lineari vs lineari nello strato N-esimo nascosto?



Gli strati N-2, N-3, .. 1 sono lineari o non lineari?
Karel Macek,

I livelli da 1 (il più vicino all'ingresso) a N-1 non sono lineari. Il livello N è l'ultimo (più vicino all'output) nascosto. Il livello softmax è il livello N + 1.
rand

1
Che dire di un livello BN prima del softmax? va bene la non linearità? (conta come una non linearità?)
Charlie Parker

Risposte:


11

Non si dovrebbe usare una non linearità per l'ultimo strato prima della classificazione softmax. La non linearità ReLU (utilizzata ora quasi esclusivamente) in questo caso eliminerà semplicemente le informazioni senza aggiungere ulteriori vantaggi. Puoi guardare l' implementazione del caffe del noto AlexNet per un riferimento a ciò che viene fatto in pratica.


2
Che dire di un livello BN prima del softmax? va bene la non linearità? (conta come una non linearità?)
Charlie Parker

6

Potresti voler inviare un valore negativo nella funzione softmax, per indicare che un evento ha una bassa probabilità. Se si passano i valori di input in una relu, la rete non passerà alcun gradiente attraverso le unità in cui l'input per la relu è negativo. Quindi, sebbene il potere espressivo del softmax non sia cambiato, probabilmente renderà l'apprendimento molto più difficile.


0

La risposta non è sì o no. Dipende fortemente dalle tue aspettative riguardo alla tua rete. Presumo che tu voglia avere un buon classificatore, possibilmente applicabile a una vasta gamma di problemi. Pertanto, la non linearità può essere utile per acquisire classi non banali. La non linearità può essere inclusa nell'ultimo livello prima del livello soft-max oppure può essere nel livello precedente.


Puoi dare un'occhiata alla mia modifica?
rand
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.