Università degli studi della Calabria

Università degli studi della Calabria
Facoltà di lettere e filosofia
Corso di Psicologia Generale II
“Reti Neurali”
“I Rettili”
Stella Simona
Matr. 54478
“Reti neurali”
I computer moderni sono sempre più veloci e potenti, ma non sono ancora
in grado di risolvere alcuni problemi che per gli umani sono banali. Non
esistono programmi per computer che realizzano questi tipi di compiti.
Questo, forse, perché il modo in cui i programmi tradizionali elaborano
l’informazione è molto diverso dal modo in cui funzionano i sistemi nervosi
biologici.
L’architettura e i principi di funzionamento del computer vengono utilizzati
dal Cognitivismo come “metafora della mente”: la mente è un elaboratore
di informazioni rappresentate per mezzo di simboli.
In quel periodo, si cercava di capire la mente attraverso i computer, e i
modi per farlo erano due:
 Intelligenza artificiale: l’idea che si potesse meccanizzare la mente
ignorando il cervello e che il calcolatore programmabile e sequenziale
dovesse costituire un modello per la mente (cognitivismo);
 Connessionismo: il modello della mente non è il calcolatore ma il
cervello.
Per circa 20 anni, l’intelligenza artificiale dominò nella ricerca sulla mente.
Verso la metà degli anni ’80, il connessionismo cominciò a farsi strada.
Vediamo le principali differenze tra cognitivismo e connessionismo:
 Come ho detto prima, per il cognitivismo l’architettura e il modo di
funzionare dei calcolatori sono modelli di com’è fatta e di come
funziona la mente; per il connessionismo, invece, il calcolatore è solo
uno strumento di ricerca, che rende possibile la riproduzione
artificiale (simulazione) di fenomeni che si vogliono conoscere. Con la
simulazione è possibile costruire modelli dettagliati di fenomeni
complicati;
 Per il cognitivismo, il cervello va ignorato e i sistemi artificiali
intelligenti vanno disegnati basandosi su una ricostruzione logicorazionale; i connessionisti, invece, ritengono che non si possa studiare
la mente e l’intelligenza ignorando il funzionamento del sistema
nervoso.
Il connessionismo utilizza le reti neurali, che sono state introdotte nel 1943.
Le reti neurali artificiali sono dei sistemi d’elaborazione dell’informazione
il cui funzionamento trae ispirazione dai sistemi nervosi biologici.
Per analizzare le reti neurali artificiali bisogna, quindi, considerare per
prima cosa le reti neurali naturali: tutti i sistemi nervosi animali sono
2
costituiti da neuroni, che rappresentano le unità strutturali e funzionali del
sistema nervoso. I neuroni hanno una forma molto variabile e spesso
complessa, ma risultano sempre costituiti da un nucleo, dal soma e da due
tipi di prolungamenti, a volte molto lunghi, i dendriti, che trasformano in
impulsi nervosi gli stimoli provenienti dall’esterno o da altri neuroni, e
l’assone che conduce gli impulsi distalmente rispetto al corpo cellulare.
Attraverso questi prolungamenti ogni neurone e collegato con altri neuroni.
Quindi, il neurone riceve input da altri neuroni attraverso i dendriti e
genera impulsi che sono trasmessi lungo l’assone. Lo spazio che esiste tra la
terminazione di un assone e i dendriti di un altro neurone costituisce la
sinapsi, cioè il punto di contatto tra il terminale assonico di un neurone
(detto neurone presinaptico)e il ramo dendritico di un altro neurone
(neurone postsinaptico). Grazie alla sinapsi ogni neurone è in contatto con
gli altri neuroni.
La differenza tra un calcolatore e la mente umana sta nel fatto che mentre
un calcolatore elabora in modo sequenziale un dato per volta, la mente
umana elabora e valuta una gran quantità di informazioni
contemporaneamente, quindi l’elaborazione dell’informazione avviene in
parallelo.
Le reti neurali artificiali sono pensate e costruite secondo questo modello di
elaborazione di dati.
Una rete neurale è costituita da una serie d’unità elementari (neuroni),
connesse tra loro in modo da poter scambiare dei dati. Gli elementi della
rete (neuroni) sono generalmente disposti in strati. Ad ogni connessione
della rete è associato un peso che rappresenta una sorta di conoscenza
interna. Tipicamente sono presenti un certo numero di unità di input, in cui
vengono inseriti i dati riguardanti l’evento da elaborare, un certo numero di
unità nascoste, hidden, ed un certo numero di unità di output. Le sinapsi
hanno in questo caso il compito di “pesare” l’informazione proveniente dal
neurone precedente.
L’apprendimento della rete avviene secondo precisi algoritmi che
esprimono le modifiche da apportare ai pesi sinaptici in funzione della
differenza tra la risposta fornita dalla rete e la risposta attesa per
determinati pattern di input. In fase di allenamento vengono presentati alla
rete pattern con risposta nota. In base alla risposta si modificano i pesi
sinaptici.
La regola di modifica sinaptica di Donald Hebb (psicologo canadese) del
1949, costituisce la base da cui derivano quasi tutti gli algoritmi
d’apprendimento.
La Regola di Hebb dice che “la stimolazione simultanea di due neuroni
collegati tra loro provoca un rafforzamento della sinapsi”.
3
Così, se S1 e S2 sono rispettivamente un pattern d’ingresso e uno d’uscita,
la modifica dei pesi sinaptici è data da:
ΔW= η*S1*S2
dove η è il tasso di apprendimento.
Negli anni la regola di Hebb è stata più volte ritoccata. Nella regola di Hebb
classica i pesi sinaptici possono essere solo aumentati; si crea un problema
di interferenza quando pattern di input hanno elementi in comune; se
applichiamo la regola di Hebb su tutti i pesi, allora questi aumenteranno
tutti allo stesso modo, ma noi dovremmo invece aumentare o diminuire i
pesi in base a delle regole. Per evitare questo problema sono state
introdotte altre tre regole che permettono di aumentare e diminuire il peso
sinaptico:
 Regola Postsinaptica: l’incremento è modulato dal neurone
postsinaptico; la regola prevede che il valore della connessione
sinaptica viene aumentato quando sia l’unità presinaptica che quella
postsinaptica sono attive, ma viene diminuito quando l’unità
presinaptica è attiva e quella postsinaptica è inattiva, come segue:
ΔW(1,2)= η(S1*S2+(S1-1)S2)
 Regola Presinaptica: l’incremento è modulato dal neurone
presinaptico; la regola prevede che il valore della connessione
sinaptica viene aumentato quando sia l’unità presinaptica che quella
postsinaptica sono attive, ma viene diminuito quando l’unità
postsinaptica è attiva e quella presinaptica è inattiva, come segue:
ΔW(1,2)= η(S1*S2+(S2-1)S1)
 Regola della covarianza: dipende dallo stato di entrambi i neuroni;
quando l’unità presinaptica e quella postsinaptica sono nello stesso
stato (entrambe attive o entrambe inattive) la connessione viene
rinforzata; quando le due unità sono in stati diversi, la connessione
viene indebolita.
Nel 1962 Rosenblatt propose l’idea di modificare i pesi sinaptici di una rete
neurale artificiale in base all’errore generato dal confronto tra la risposta
della rete e la risposta desiderata. Egli da vita ai percettroni, che sono
4
delle reti neurali ispirate dagli studi sul sistema di visione del cervello. Essi
hanno una struttura del tipo:
Neurone di output
Feature detectors
Retina artificiale
Ogni Feature detectors vede solo una parte della retina; nel primo strato le
sinapsi non possono essere modificate; nel secondo strato le connessioni
sono variabili.
Quindi le connessioni dagli input ai Feature detectors non possono imparare,
mentre quelle dai feature detectors al neurone d’output possono imparare.
Un algoritmo d’apprendimento molto importante è quello di Backpropagation apparso intorno al 1969, ma modificato molte volte.
La sua importanza sta nel metodo con cui la rete reagisce ogni volta che
effettua un errore: questi errori, infatti, vengono propagati da ogni strato
attraverso le connessioni sinaptiche e sommati per ciascuna unità da cui
ricevono segnale; l’errore cioè è propagato all’indietro da uno strato a
quello precedente.
Quindi:
 viene calcolato l’errore sull’output e vengono aggiornati i pesi tra
output e hidden,;
 viene calcolato l’errore sulle hidden e aggiornati i pesi tra hidden e
input.
5
“I Rettili”
Lo scopo della rete neurale che ho creato è di individuare la classe di
appartenenza dell’animale preso in esame: rettile o anfibio.
Ho posto allora tre domande:
 Depone le uova sulla terraferma?
 Vive nell’acqua?
 È ricoperto di squame?
Determiniamo gli esempi con le risposte corrette:
INPUT
Rana
Biscia d’acqua
Coccodrillo
Salamandra
0
0
1
0
1
1
1
0
0
1
1
0
OUTPUT
0
1
1
0
Apriamo NetManager:
 File
Nuova Rete
FFW Classic
 Numero di Strati=2;
 Strato 1=3 (input);
 Strato 2=1 (output);
 Salva come modello: “rettili.str”.
6
Apriamo TrsEditor:
 File
Nuovo;
 Numero di pattern 4 (esempi);
 Numero di input 3;
 Numero di output 1;
 Poi ho inserito i valori di esempio;
 Training set
Crea;
 Salva con nome:”rettili.trs”.
Il risultato finale è mostrato nell’immagine:
7
Apriamo NetTrainer:
 File
Nuovo;
 Rete: rettili.str;
 Training Set: rettili.trs;
 Visualizza grafico dell’errore:
 Salva rete: “rettili.rna”.
Riapriamo NetManager:
 File
Apri: rettili.rna;
 verificando i vari casi, vediamo che la rete ha appreso.
 Se inseriamo due valori a caso, non compresi tra gli esempi dati alla
rete avremo:
INPUT
Lucertola
Proteo
1
1
0
1
1
0
OUTPUT
1
0
Abbiamo così creato una rete neurale artificiale.
8