Ciao, per quanto riguarda la discussione, credo che al momento il forum possa restare il posto più indicato, anche perchè spero si possa aggiungere ancora qualcuno che desideri partecipare attivamente alla discussione, e ancora perchè per ora la discussione è a "tempo perso"; nel caso diventi più interessante, potremo ripiegare su un forum privato o su altro del genere.
Ma veniamo a noi!
Sulla sigmoide, mi confermi quanto già letto, e personalmente ritengo che possa determinare un fattore di scelta più "convinto"; mi chiedevo se una funzione più "morbida" come la lineare potesse essere più indicata per un minor effetto memoria della rete. Per il momento però resto sulla sigmoide. E in parte ho anticipato la risposta alla tua domanda.
Io personalmente faccio un ragionamento piuttosto "infantile" e penso al neurone come ad una black-box che implementa la funzione di attivazione e la moltiplica all'input. Quindi, se prendiamo la lineare, è come se entrando zero esce zero, entrando 0,3 esce 0,3 e così via... la sigmoide invece cerca di comportarsi quasi come un gradino e l'obiettivo è quello di avere un valore molto basso (ad es.: 0,01) per valori piccoli di input (ad esempio <0.3), molto alti (da esempio 0,99) per valori grandi di input (ad esempio > 0,7) e valori intermedi con una crescita più ripida. In pratica quindi, la funzione di attivazione la vedo come una forma di "decisione" del singolo neurone. Spero con questo di aver risposto alla tua domanda (ricordiamoci sempre che siamo in un campo abbastanza euristico). Per la tanh, quindi, basta che guardi la funzione. Ovviamente, poi, entra in gioco il fattore "jolly" rappresentato dal bias.
Secondo me il primo step che dobbiamo fare è individuare il modello, inteso come numero di layer e di neuroni, ovvero definire input ed output, per il quale spero di poter contare anche nel promesso intervento di un altro utente interessato al thread.
Per quanto riguarda il numero di layer, credo che dipenda molto dalla funzione che vogliamo inseguire, in quanto, come sai, a seconda dei livelli possiamo rappresentare (con la giusta struttura!!) solo funzioni continue o qualunque tipo di funzione. Per cui, la nostra funzione è continua o no? Lo spazio delle variabili è linearmente separabile (per l'uso di variabili binarie)? Definiamo euristicamente la natura della funzione che regola gli eventi e su essa costruiamo input e output o viceversa?
[Per gli aspetti più teorici, ci vorrebbe un matematico!!! ]
Ovviamente, non mi sorprendo se non hai tutte le risposte; non mi sorprendo nemmeno se, come me, non ne hai nemmeno una!!! però, se partiamo da ipotesi concrete e modellabili, ormai il software ce l'ho e, con i dovuti tempi, posso buttare giù qualche simulazione...