Autore:
Fabio Pacioni
27/07/2007
La regola di Hebb
Nella 2° parte dell 'articolo sul OCR (Riconoscimento ottico
dei caratteri) è sono stato descritto il prercettrone semplice.
Si rimanda pertanto a tale articolo per chi necessitasse di
ulteriori chiarimenti in merito all 'argomento.
Come spiegato questo tipo di neuroni si attivano quando la somma
pesata degli ingressi supera una deteminata soglia. La regola di apprendimento
impiegata è quella di Hebb che rafforza le connessioni
quando sono attivi contemporaneamente i neroni pre-sinaptici e quelli
post-sinaptici.
Il software sviluppato in questo articolo serve a verificare il funzionamento
di questo tipo di neuroni.
In particolare l' interfaccia permette di creare un percettrone con N ingressi
ed una sola uscita.
Addestramento
La figura sopra riportata illustra mostra la schermata del programma.
Mediante il bottone "Bipolari/Binarie" si può scegliere se adottare
come valori per l' ingresso ed uscita i livelli binari 1 / 0 (regola
di hebb semplice) oppure i livelli bipolari 1 / -1 (regola
di Hebb Estesa).
Il tasto "Aggiungi Unità di Input" permette di definire il numero degli ingressi.
Procedura:
- Definire le componenti Xi del vettore di ingresso X ed
associare la relativa uscita selezionando rispettivamente
la casella di testo relativa ed impostando con le frecce
(su' e giù') della tastiera il livello desiderato.
NB: si può passare velocemente alla casella successiva
mediante il tasto TAB
- Effettuare l' addestramento mediante il Bottone
"Apprendi"
- Ripetere l' operazione associando ad ogni vettore di
ingesso il relativo valore di uscita.
Il programma ad ogni passo riporta:
-I valori degli ingressi Xi
-Il valore di uscita
-La variazione dei pesi sinaptici Dw relativi agli ingressi Xi
-I pesi sinaptici attuali Wi
Elaborazione
Mettere la spunta su "Fine addestramento"
Inserire un vettore di ingresso X nelle caselle di testo relative.
Premere "elabora" e verificare che l' uscita sia quella corretta.
Esempio : La Funzione AND
La tabella della verità della funzione AND è la seguente:
TAB1:
X1 X2 OUTPUT
0 0 0
0 1 0
1 0 0
1 1 1
Se si effettua l' addestramento in questo modo (cioè con livelli binari)
non si riesce a far apprendere questa trasformazione alla rete.
La trasformazione ,viceversa, viene appresa correttamente se si impiegano unità
bipolari.In tal caso la tabella della verità e la seguente:
TAB2:
X1 X2 OUTPUT
-1 -1 -1
-1 1 -1
1 -1 -1
1 1 1
In pratica il livello 0 viene sostituito con il livello -1
La regola di Hebb in questo caso è più potente perchè i pesi sinaptici possono anche decrescere ed addirittura assumere valori negativi durante il processo di addestramento.
Infatti essendo : DWi=Xi*Y , quando Xi ed Y hanno segno discorde DWi è
minore di zero. Visto che i pesi delle connessioni Wi all 'istante
t sono dati da:
Wi(t)=Wi(t-1)+Dwi(t) , la forza della connessione diminuisce (perchè il termine Dwi che viene sommato è negativo). In tal caso si dice che la regola di hebb tende a creare sinapsi inibitore.
Con i livelli binari della prima tabella invece, Dwi può assumere
solo 0 (quando Xi e/o Y sono zero) oppure 1 (quando sia Xi che Y sono
1) ma mai valori negativi!
I pesi Wi in questo caso posso solo crescere o rimanere costanti.
L' interferenza
Si può dimostrare che dati due vettori di ingresso a questi possono
essere associate uscite diverse solo se i vettori presi sono ortogonali
tra loro (cioè se il loro prodotto scalare è nullo). L'
ultimo vettore di ingresso della TAB1, ossia 11 non è ortogonale
a nessuno dei precedenti ed infatti la trasformazione non viene appresa,
viceversa si può verificare che tutti i vettori della TAB2 sono
ortogonali tra loro.
Il fatto che nel percettrone due vettori non ortogonali debbano necessarimente
essere associati alla stessa risposta è noto con il nome di interferenza.
Tale fenomeno, in reti composte da piu neuroni, causa la produzione
di risposte miste ovvero l' attivazione contemporanea ed indesiderata
di più neuroni.