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,
- 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.
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?
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?