CHANGE LANGUAGE | Home > Metodi e Strategie > Reti Neurali su .... >Realizzazione Software

Reti Neurali su personal computer e fuzzy logic

Introduzione

Reti Neurali Error Back Propagation

Applicazioni pratiche di una rete neurale EBP

Reti Neurali Autoorganizzanti

Introduzione

Applicazioni

Le Reti Di Kohonen

Apprendimento Autoorganizzante

Classificatori Supervisionati

Normalizzazione dell' Input

Realizzazione Software

Conclusioni

Fuzzy Logic e La teoria del Ragionamento sfumato

Neurfuzz 1.0

Guida al software allegato

Guida agli applicativi

Bibliografia in lingua Inglese

Reti neurali su Personal Computer e Fuzzy Logic: Reti Neurali Autoorganizzanti

Realizzazione Software

Non è particolarmente difficile la realizzazione di una rete autoorganizzante "giocattolo". Bisogna utilizzare due vettori di m e n float per input e output e un vettore di n*m float per i pesi tra input e output. All’ inizio i pesi devono essere inizializzati in modo random con valori compresi tra 0 e 1.

Una funzione di apprendimento learn() deve leggere, da un file contenente il training set, un pattern e inserirlo normalizzato nel vettore input. Poi deve chiamare una funzione di esecuzione della rete exec() che calcola l'output per ogni neurone effettuando una moltiplicazione dei vettori input con i vettori pesi. Una altra funzione effettuerà uno scanning dei valori di attivazione dei neurodi dello strato output scegliendo il maggiore e passerà alla funzione learn() il numero identificativo(indice del vettore) del neurodo vincente.

A questo punto la funzione learn() può applicare la regola di aggiornamento dei pesi su quel neurodo. Questa operazione completa il ciclo su un pattern e il passo successivo è la lettura di un altro pattern. Tutti i pattern del training set devono essere appresi in questo modo dalla rete per un numero consistente di iterazioni. Normalmente il collegamento a cappello messicano dei pesi sullo strato Kohonen viene trascurato anche perché dovrebbe essere dimensionato in modo opportuno a seconda del problema.

Più importante può risultare l'aggiornamento dei pesi dei neurodi vicini al neurodo vincente, tuttavia le variazioni che si possono attuare su questo modello sono molteplici e consentono di avere risultati migliori per specifici problemi: ad esempio epsilon decrescente e vicinato del neurone vincente decrescente sono accorgimenti che possono favorire la convergenza della rete. Nel listato 1 sono rappresentate in metalinguaggio le funzioni principali semplificate di una simulazione di rete neurale Kohonen autoorganizzante.

LISTATO 1


LEARN:
FOR1 K=1 TO NUMERO ITERAZIONI
FOR2 J=1 TO NUMERO PATTERNS
LETTURA PATTERN(J)
EXEC
SCANNING_OUTPUT-->NEURODO WINNER
UPDATE_WEIGHTS(NEURODO_WINNER)
NORMALIZZ_WEIGHTS (NON INDISPENSABILE)
ENDFOR2
ENDFOR1
EXEC:
FOR1 J=1 TO NUMERO NEURODI MATRICE OUTPUT
FOR2 K=1 TO DIMENSIONE INPUT PATTERN
ATTIV_NEURODO(J)=ATTIV_NEURODO(J)+W(J,K)*X(K)
ENDFOR2
ENDFOR1
SCANNING_OUTPUT:
ATT_MAX=0
FOR J=1 TO NUMERO NEURODI MATRICE OUTPUT
IF (ATTIV_NEURODO(J)>ATT_MAX)
ATT_MAX=ATTIV_NEURODO(J)
NEURODO_WINNER=J
ENDIF
ENDFOR
UPDATE_WEIGHTS(J):
FOR K=1 TO DIMENSIONE PATTERN
W(J,K)NEW=W(J,K)OLD+EPSILON*(X(K)-W(J,K)OLD)
ENDFOR

Luca Marchese

PerformanceTrading.it ed il suo contenuto sono di esclusiva proprietà degli autori. E' vietata la riproduzione anche parziale di qualsiasi parte del sito senza autorizzazione, compresa la grafica e il layout. Prima della consultazione del sito leggere il disclaimer nella sezione [info].