Newsgroup: it.comp.ia
Titolo: pn NN - 3

Ciao a tutti,
Alessandro Monti ha risposto al mio pb (v. pb NN - 2) dicendo di
utilizzare una rete "multi-layer perceptron"... se non mi sbaglio il
percettrone
semplice, quello proposto da Rosenblatt, è una rete neurale con due
strati di connessioni, uno dei quali fissato casualmente e non
modificabile => un solo strato di sinapsi sottoposto ad apprendimento.
Le funzioni d'attivazione dei nodi dei percettroni semplici sono binarie
o bipolari e l'apprendimento della rete avviene con un algoritmo
facile-facile: la modifica dei pesi, del tipo w_i_(t)=w_i_(t-1)+Dw_i_(t)
con Dw_i=eta*input_i*output_desiderato_i, avviene solo se la risposta
della rete e la risposta desiderata non coincidono. Il problema è che
Cosa intendi per "multi-layer perceptron"? come minimizzi la funzione
errore della
rete?
Grazie ancora.
Angelo
--
 Angelo Bertocchi
angy...@libero.it

 modificabile => un solo strato di sinapsi sottoposto ad apprendimento.
PERCEPTRON: modello proposto da Rosenblatt, che conosci
MULTI-LAYER: non è una parola "di bellezza", ma un modello diverso, anche se
simile.
In questo modello, i neuroni hanno una funzione di attivazione continua a
valori reali (possibilmente da -infinito a +infinito come dominio),
derivabile (ovvio, no?), e non-lineare.
Lo strato di ingresso continua a rimanere fissato e non fa un c... (propaga
i valori del problema, con funzione identità (f(x) = x), mentre poi vi sono
0, 1, 2, 3, (quanti se ne vuole) strati prima di arrivare all'ultimo: lo
strato di uscita.
Gli strati intermedi sono detti "nascosti".
Si dimostra che:
-con 0 strati nascosti, si ha in pratica il percettrone di Rosenblatt. Può
apprendere solo funzioni linermente separabili ma in compenso ha un unico
minimo globale e l'algoritmo che hai visto lo trova facilmente.
- con 1 strato nascosto si apprendono la maggior parte delle funzioni
continue, o con poche discontinuità
- con 2 strati nascosti si apprendono praticamente tutte le funzioni
continue ed una buona classe di quelle discontinue. Reti di questo tipo, del
resto, si chiamano anche "approssimatori universali".
- più di 2 strati nascosti non servono a niente (in teoria). In pratica,
potrebbero facilitare l'apprendimento.
Inoltre, se vi sono strati nascosti perdi la garanzia di avere un unico
minimo globale, ed anzi di solito ti ritrovi con parecchi minimi locali,
qualcuno "buono", altri pessime soluzioni del problema. L'apprendimento è
realizzato utilizzando un algoritmo di discesa del gradiente nello spazio
delle caratteristiche, ed indovina un po' quale è la difficoltà quando ti
trovi in un minimo locale?
L'algoritmo di apprendimento in questo caso, comunque, è lo stesso del
percettrone, ma il problema è che l'errore è noto solo sullo strato di
uscita, per cui sembrerebbe che tu possa aggiornare 1 solo strato di
connessioni (quello che porta dal penultimo strato all'ultimo).
Per risolvere il problema, si ipotizza che l'errore sull'ultimo strato sia
dovuto ad un errore del penultimo, e così via per tutti gli strati nascosti,
e di conseguenza si assegnano gli errori a tutti i neuroni, procedendo a
ritroso (back-propagation).
La formula per l'assegnazione dell'errore è qualla di assegnare ad un
neurone dello strato nascosto la somma degli errori dei neuroni a cui è
connesso in avanti, pesati dal valore della connessione che li unisce, e
moltiplicati per la derivata del valore computato dai neuroni dello strato
successivo. Sembra complicato? In realtà è più complicato a spiegarsi usando
solo il testo che non a mostrare la formuletta, che comunque trovi, ad
esempio, nel cap 19 di
"IA: un approccio moderno", Russel Norvig, UTET 1999.
Ma una domanda mi sorge: possibile che al corso di reti neurali vi spiegano
le cose complicate e non quelle più semplici?
Se come spiegazione ti è sembrata fumosa, ti spedisco il capitolo della mia
tesi dedicato alle reti neurali "FF-BP", dove in breve e con molte
necessarie omissioni ho riassunto un po' tutta la poca matematica che serve.
Oppure, molto meglio, ti do altri titoli, facilmente reperibili, spero, in
una libreria universitaria.
Ciao
--
Alessandro Monti