Newsgroup: it.comp.ia
Titolo: Reti Neurali: e adesso?...

Salve a tutti,
ultimamente mi sono dedicato all'approfondimento delle Reti Neurali; ho
implementato in Java (per un'eventuale applet futura) una rete con il
relativo algoritmo di apprendimento Back-Propagation riportato sul testo
di Rich-Knight, gli ho sottoposto il problema dello XOR...e adesso?
Io vorrei fare qualcosa che non sia solo "classificazione", come cita il
testo. Ho provato a realizzare il gioco del filetto (anche se una rete
non è esattamente la soluzione più furba!), ma non ci sono riuscito...
Vorrei realizzare qualcosa che apprenda tramite an "addestratore" (è il
caso dell'apprendimento con rinforzo, giusto?), ma non so da dove
partire.
Attendo consigli (anche su libri da consultare)
Ciao
-- 
get a look to: "IA a portata di tutti"
http://www.geocities.com/SiliconValley/Peaks/4181/

partire.
Sul libro che hai c'e' il capitolo sulle reti neurali in cui c'e'
spiegato com funzionano i modelli multistrato con le relative formule
da utilizzare per l'apprendimento e qualche algoritmo. Non sono piu'
preciso perche' il libro l'ho prestato.

partire.
Come avrai visto sul libro che citi, i sistemi di apprendimento per una rete si 
dividono in due gruppi: quelli supervisionati (cioe' con un addestratore) e quelli 
non supervisionati.
La BackProp fa parte dei primi, percio' stai gia' usando un ''addestratore''.
Per quanto riguarda l'apprendimento con rinforzo, so che esiste ma nulla di piu'; 
se ricordo bene anche il Rich-Knight non dice molto. 
Appena ho un po' di tempo do un'occhiata su altri libri per vedere se c'e' qualcosa; 
se trovo qualcosa di interessante te lo faccio sapere, in ogni caso ci sara' 
sicuramente qualche riferimento bibliografico a riguardo, prova a partire da li. 
Ciao, Matteo.


 preciso perche' il libro l'ho prestato.
Veramente sull'apprendimento con rinforzo c'č solo uno striminzito
paragrafo che in sostanza dice che ad ogni uscita della rete bisogna
dare un voto (n° reale): la rete deve allora ripetere l'elaborazione in
modo da ottenere il voto piů alto. Quello che non capisco č dove va di
preciso ad influire questo voto? (nel calcolo dell'errore dello strato
d'uscita, forse, ma la formula precisa qual'č?)


 A quanti cicli di apprendimento hai sottoposto la rete?
Scusa, mi sono spiegato male... Non volevo sottoporre alla rete tutti i
casi possibili; la mia intenzione era quella di giocarci contro con il
risultato che, partita dopo partita, la rete imparasse a giocare sempre
meglio (fino ad arrivare al limite di non perdere mai), un po' come
faceva quel "tizio" (come si chiama?!) con il gioco della dama.
Con la propagazione all'indietro io dovrei memorizzare praticamente
tutte le possibili partite giocabili perchè, se non ho capito male,
l'apprendimento della rete non si "somma" di volta in volta (come del
resto fa il cervello umano). Ogni volta, cioè, che io gli sottopongo un
nuovo es. di addestramento, questa deve riesaminare anche tutti i casi
precedenti.
Forse ho detto un sacco di cazzate (scusate l'ignoranza) e forse mi sono
anche spiegato male...pazienza!


precedenti.
Se devi memorizzare a mano tutti i possibili casi non hai concluso
niente, cioe'...non c'e' niente di intelligente oltre che diventa una
cosa impossibile :-)))
Con la backp. addestri la rete solo con un campione di casi, piu' o
meno ampio, in modo da avere dei pesi soddisfacenti che legano  le
varie unita' degli strati.
Una volta addestrata la rete va da sola, continuando comunque a
"limare" i pesi quando e' in funzione. Semplificando quindi si puo'
dire che impara. 
Quando si presenta un nuovo ingresso le unita' di attivazione
"combattono" tra di loro detertminando l'uscita piu' adeguata e
cambiando i pesi per lasciare una traccia di cio' che e' successo. 
La fase di apprendimento prevede l'immissione di dati di ingresso, il
controllo sull'uscita corrispondente a questi dati e quindi il ritorno
indietro modificando i pesi delle unita' di attivazione basandosi
sull'errore riscontrato.
La BP utilizza la sigmoide come funzione per cambiare i pesi delle
unita' di attivazione.
Questo per quanto riguarda i metodi del supervised learning. 

Sapete, sarà perché di IA io ci capisco meno di nulla, ma 'sta storia di
insegnare a giocare a filetto al computer mi affascina. Non c'è in giro
qualche bel programmino di reti neurali, un po' duttile e con un'inetrfaccia
comprensibile, che permetta di usare le RN per scopi pratici senza dover
scrivere codice?
--
Ciao!
   by LJL
 
ljl...@tin.it
 
http://space.tin.it/computer/ferlucch

 scrivere codice?
Guarda nella sez. "FTP" del mio sito (segnato sotto): c'è qualcosa per
Windows.
Per Linux invece, c'è questo fornitissimo sito (che mi ha dato un amico
del NG) dove troverai un po' di tutto:
http://chpc06.ch.unito.it/linux/Z/3/index.html
Ciao.


> scrivere codice.
Per LJL: come programma sulle Reti Neurali, visto che usi win95 (ho dato un'occhiata al tuo header), 
ti consiglio nndt (Neural Network Developement Tool): e' molto semplice da usare, ha una bella 
interfaccia user friendly, ed e' anche ben documentato; l'indirizzo e':
http://www.abo.fi/~bjsaxen/nndt.html
(l'home-page e' un po' spoglia, pero' il prog. e' bello)
Ciao, Matteo.

 ma non ho tovato praticamente nulla.
Prova con:D. Floreano, Manuale sulle reti neurali, il Mulino, 1996.
Non è esattamente prolisso, ma qualcosa dice; resta, comunque, il miglior libro
italiano sulle RN (secondo me!).
ciao
carlo

Grazie per l'indicazione. Visto che siamo in tema di consigli, per non
rimanere indietro, ;) anch'io consiglio un libro sulle reti neurali:
S.Cammarata, ''Reti Neurali: dal Perceptron alle reti caotiche e neuro-fuzzy'',
Etas Libri, 1997 e costa 49.000lire.
Ci sono anche delle mini-appendici su caos deterministico, logica fuzzy e
algoritmi genetici (moolto mini).
E' la seconda edizione (molto ampliata e molto aggiornata) del libro ''Reti Neuronali''
pubblicato nel 90.
Ciao, Matteo


 Ciao, Matteo
Ho letto il Cammarata, e lo trovo un buon libro (specie dopo l'aggiornamento); già che siamo in
tema bibliografico, vorrei chiedere a Matteo (e a tutti voi appassionati di RN) se qualcuno ha
sotto mano l'algoritmo RCE (Restricted Coulomb Energy) per reti autopoietiche. Ho cercato a
lungo, ma senza successo.
Grazie in anticipo a chi suggerirà!
carlo

lungo, ma senza successo.
Mah...il nome non mi e' nuovo, se non sbaglio dovrebbe essere un algoritmo particolarmente adatto 
al riconoscimento di pattern affetti da rumore, ma non saprei dove trovare i dettagli.
Io tengo gli occhi aperti, e se trovo qualcosa te lo faccio sapere.
Mi spiace, ma anzi non potresti dirmi qualcosa tu del RCE: come mai lo stai cercando cosi' 
affannosamente?
Ciao, Matteo. 
