Home > Doc > Reti Neurali su .... > Esempio di memoria associativa

Reti neurali su Personal Computer e Fuzzy Logic: Introduzione

Esempio di memoria associativa

In questo capitolo vedremo brevemente il funzionamento di una memoria associativa realizzata in linguaggio c e contenuta nel dischetto in forma eseguibile.

La rete è in grado di apprendere una associazione di immagini a coppie realizzate su files ascii con i caratteri "*" e "spazio" che rappresentano rispettivamente pixel acceso e pixel spento. Questa rete è una rete ciclica poiché presenta delle connessioni bidirezionali,cioè gli output ritornano in "retroazione" sugli input (fig.1)

Un sistema retroazionato può presentare differenti comportamenti:

1. si produce una variazione continua dell’ output tale che il sistema "esplode": si dice che è un sistema non convergente.

2. l’output del sistema continua ad oscillare all’ infinito e quindi non converge anche in questo caso.

3. l’output converge verso un determinato valore o verso una determinata configurazione dimostrando che il sistema è a tutti gli effetti una "macchina deterministica".

Quindi, da una rete neurale ciclica ci aspettiamo un comportamento come quello descritto al punto 3: la rete, in risposta ad un input, avrà un certo numero di oscillazioni prima di raggiungere uno stato di stabilità che coinciderà con una risposta in output. Il programma della memoria associativa contenuto nel dischetto si chiama associa.exe, ed è un programma esclusivamente didattico/dimostrativo: contiene una memoria associativa tipo BAM(Bidirectional Associative Memory).

Regola di apprendimento

La formula di addestramento utilizzata in questa memoria associativa è la regola di Hebb:

DW(j,k)=P(j)*P(k)*t

dove: deltaW(j,k) = variazione del peso di connessione tra il neurone j e il neurone k

P(j) = output del neurone j

P(k) = output del neurone k

t = fattore o tasso di apprendimento

Questa regola si può spiegare in questi termini: aumenta il peso che connette due neuroni in modo proporzionale al prodotto degli output da loro forniti per un determinato input. Non è una regola universalmente valida ed è applicabile solo per particolari tipi di reti neurali,come quella di cui parliamo in questo capitolo. Esistono diversi tipi di regole di apprendimento destinate a scopi specifici,come la regola delta (dalla quale deriva la retropropagazione dell’ errore di cui parleremo approfonditamente), o la regola di Kohnen: voglio sottolineare che la regola di apprendimento è il punto critico di ogni rete neurale al di là della architettura sulla quale viene applicata.

Luca Marchese

Successivo: Associa.Exe

Sommario: Indice