Università degli Studi della Calabria

Università degli Studi della
Calabria
Facoltà di Lettere e Filosofia
Corso di laurea: Dams Multimediale.
Corso di Psicologia Generale II
Reti neurali artificiali
Docente:
Eleonora Bilotta
Studente:
Brunetti Anna
matr. 59616
Indice
o IL Connessionismo e lo studio delle reti neurali
o Reti neurali artificiali e naturali
o L’apprendimento di una rete neurale
IL Connesionismo e lo studio delle reti neurali
IL connessionismo, nonostante abbia una storia passata abbastanza lunga, si è
imposto di recente nel giro di pochissimi anni1.
Questa disciplina,definita anche come “modelli a rete neurale” o “modelli di
sistemi dinamici complessi”, è apparsa sempre più come una rivoluzione
concettuale e metodologica non solo negli studi cognitivi, ma in parecchi altri
settori della scienza.
L’essenziale dei modelli connessionisti è che essi sono esempi di sistemi dinamici
complessi o non lineari, cioè sistemi che fanno emergere le loro proprietà dal
comportamento collettivo di un grande numero di unità piuttosto semplici che
interagiscono in parallelo ciascuna con uno svariato numero di altre unità, in base a
principi di interazione di natura puramente fisica (quantitativa).
E’ questo in sostanza il significato della formula “Parallel Distributed Processing”
(elaborazione distribuita parallela).
Il connessionismo può essere plausibilmente concepito come un capitolo di quella
che oggi si chiama vita artificiale, cioè il tentativo di studiare con metodi di
simulazione su calcolatore tutti i fenomeni della vita e della biologia.
I connessionisti, infatti, ritengono che non si debba e non si possa studiare la mente,
l’intelligenza, ignorando come è fatto e come funziona l’organo fisico che fa da
supporto ai comportamenti intelligenti, cioè il sistema nervoso. Al contrario, essi
cercano ispirazione, nel disegnare sistemi artificiali intelligenti, proprio nella
architettura e nel funzionamento del sistema nervoso e del cervello.
Assume, in questo modo, fondamentale importanza lo studio delle reti neurali.
Una rete neurale è un struttura composta da un certo numero di unità variamente
connesse tra loro, ed è proprio attraverso tali connessioni che ogni unità influenza
fisicamente le altre con le quali è collegata.
Infatti ogni unità della rete neurale, in un dato momento, ha un livello quantitativo
di attivazione che corrisponde, nel sistema nervoso reale, alla frequenza con cui il
neurone invia impulsi nervosi che influenzano gli altri neuroni con cui è connesso.
1
Il connessionismo ha le sue radici più lontane in quel complesso di idee e di ricerche che quasi mezzo secolo fa
cercava analogie tra la mente, il cervello ei calcolatori; cioè nella neuro-cibernetica di Wiener, von Neumann e altri.
Reti neurali artificiali e naturali
Una rete neurale artificiale è un sistema computazionale in cui l’elaborazione
dell’informazione avviene in modo parallelo, ed il cui funzionamento trae
ispirazione dai sistemi nervosi biologici.
Tali sistemi sono fondati sulle cellule neuronali.
Il neurone è composto da un albero dendritico, un soma e un assone, ed è
caratterizzato da un alto grado di convergenza e divergenza, ossia: i segnali
provenienti da migliaia di altri neuroni convergono verso il soma del neurone, il cui
assone a sua volta diverge in migliaia di terminali che vanno a toccare diverse altre
unità.
Il neurone naturale nel suo funzionamento:
 riceve input dagli altri neuroni sui dendriti, attraverso i bottoni della sinapsi;
 in relazione agli input ricevuti, genera impulsi che vengono trasmessi lungo
l’assone.
La sinapsi regola la quantità di segnale ed il tipo di effetto che un neurone provoca
sul neurone ricevente. Essa è il punto di contatto fra il terminale massonico di un
neurone (detto presinaptico) e il ramo dendritico di un altro neurone
(postsinaptico).
Più numerosi sono i siti sinaptici, maggiore è il peso della connessione.
Le connessioni possono essere di due tipi:
 eccitatorie: se un unità aumenta il livello di attivazione dell’unità con cui è
collegata;
 inibitorie: se l’unità di partenza tende a far diminuire il livello di attivazione
dell’unità di arrivo.
Nonostante le reti neurali artificiali riprendano il modello delle reti neurali naturali,
il loro funzionamento è molto più semplificato.
Il neurone artificiale è caratterizzato da un insieme di sinapsi (connessioni con gli
altri neuroni), da una soglia e da una funzione di attivazione.
La configurazione delle connessioni, ed i valori dei pesi sinaptici determinano il
comportamento e la risposta della rete.
Una rete neurale artificiale è composta da unità input (unità che ricevono
informazioni dall’ambiente), unità di output (che emettono risposte nell’ambiente) e
in alcuni casi, unità hidden (unità che sono interne alla rete).
In una rete neurale a due strati, quindi con unità di input e di output, un unità (in
questo caso S3) diventa attiva se la quantità di segnale che riceve supera la soglia di
attivazione.
S1
S2
W(1,3)
I strato (input)
W(2,3)
II strato (output)
S3
Se S1*W(1,3)+S2*W(2,3)>=SogliaS3=1 , Altrimenti S3=0
La funzione di attivazione determina il tipo di risposta che il neurone è in grado di
emettere.
Tale funzione può essere:
Sia
N
net   wi si
(Input netto)
i 0

funzione a soglia

funzione “logistica” (derivabile)
0<A<1
Per ciò che riguarda l’apprendimento, una rete neurale apprende se varia il suo
peso sinaptico.
Il primo meccanismo di apprendimento sinaptico per reti neurali, fu proposto da
Hebb, la regola di Hebb prevede che se due neuroni collegati tra loro sono attivi
contemporaneamente, il valore sinaptico della loro connessione viene aumentato.
Grazie a questo rafforzamento, l’attivazione del nodo presinaptico causerà
l’attivazione del nodo postsinaptico.
Le regole di Hebb sono 4:




regola classica: i pesi sinaptici possono essere soltanto incrementati
regola postsinaptica: incremento modulato dal neurone postsinaptico
regola presinaptica: incremento modulato dal neurone presinaptico
regola della convarianza: dipende dallo stato di entrambi i neuroni
Un altro tipo di rete neurale (sviluppata da Rosenblatt nel 1958), è il percettrone.
Questo sistema è costituito da dei feature detectors, connessi ognuno con il neurone
di output (il peso delle connessioni è variabile).
Ciò che permette l’apprendimento è la connessione dai featur detectors al neurone,
una sua caratteristica è che eliminando alcune connessioni continuerà a funzionare;
questo grazie al fatto che tale rete riesce a generalizzare ed a ricostruire gli input
incompleti.
Come funziona l’apprendimento del percettrone:
 viene presentato un input;
 se l’output è corretto si aumentala forza delle connessioni (valutazione
positiva)
 se l’output non è corretto si riduce la forza delle connessioni (valutazione
negativa)
Si potrebbe così dire, che per il percettrone si usa un apprendimento per rinforzo.
Tale metodo consente a questa rete , di imparare a mettere in relazione ogni input
con un output.
Il percettrone a due strati però ha dei limiti computazionali,ossia non è in grado di
risolvere i problemi linearmente separabili (ad esempio lo XOR).
Questo accade poiché questo tipo di rete è sprovvisto di unità nascoste che creino
una rappresentazione interna dei pattern di input.
IL problema è stato risolto grazie all’ algoritmo di Error back-propagation
(Rumelhart e McClelland 1986), che permette l’apprendimento (supervisionato) in
reti multistrato.
IL funzionamento della regola di Back-propagation è simile alla regola “Delta”2.
III strato (output)
II strato (hidden)
I strato (input)
Le regole di questo algoritmo, si basano sulla diminuzione e sull’aumento dei pesi
in funzione degli errori.
IL segnale di errore viene propagato all’indietro, si calcola l’errore sull’output, si
aggiornano i pesi tra l’output e le hidden, si calcola l’errore sulle hidden e si
aggiornano i pesi tra le Hidden e l’input, in questo modo si raggiunge
l’apprendimento.
Con l’uso delle reti neurali, gli errori a cui possiamo andare incontro sono:
 minimo assoluto: l’errore arriva a zero e la procedura si ferma, quindi la rete
non ha appreso (può accadere nelle reti neurali a 2 strati)§;
 minimo locale: l’errore non scende oltre il punto, la rete crede di avere e
si ferma (reti neurali a 3 strati).
Per evitare l’ultimo problema, o si cambiano i pesi iniziali o si varia il momento.
Gli Algoritmi Genetici sono un nuovo metodo per addestrare le reti neurali, con
essi non è necessario conoscere gli output corretti da associare agli input.
Gli Algoritmi Genetici si basano sul concetto di riproduzione selettiva (simulazione
della selezione naturale).
Viene misurata la competenza di alcuni organismi (casuali), si selezionano i
migliori in base ad un criterio di fitness.
Questi organismi creeranno dei figli con un patrimonio genetico simile al proprio, le
riproduzioni potranno avvenire per:
 mutazioni: dove avviene una modifica di alcuni pesi sinapticiscelti a caso
(riproduzione asessuata);
 crossover: dove avviene uno scambio di materiale genetico fra i genitori
(riproduzione sessuata).
2
Permette di modificare i pesi: Δw ij = η (dj - oj)ij
L’apprendimento di una rete neurale
La rete neurale è stata creata dal programma NetTools.
Ciò la rete dovrà discriminare sarà la differenza tra le piante arboree e le erbacee
(dovra cioè riconoscere gli alberi).
Per la costruzione della rete a 3 strati si è usato NetManager.
Figura 1. grafico di una rete a tre strati
TrsEditor è stato utilizzato per la costruzione del Training Set, si sono dati i
seguenti dati:
 5 pattern;
 5 imput;
 1 output.
Le domande3 per l’apprendimento, erano le seguenti:
1. Fa parte del regno vegetale?
2. Ha un fusto alto e legnoso?
3. Fa la fotosintesi?
4. Ha un ciclo vitale poliannuale?
5. Fa i fiori?
PATTERN
Pesco
Rosa
Ulivo
Begonia
Felce
3
le domande discriminanti sono due: la 2 e la 4
INPUT
11111
10101
11110
10101
10100
OUTPUT
1
0
1
0
0
Con NetTrainer abbiamo potuto visualizzare il grafico di errore, e attraverso esso
constatare se la rete ha appreso.
Figura 2. Grafico di errore
La rete neurale ha impiegato 6,26 secondi per apprendere.
Riutilizzando NetManager verifichiamo l’apprendimento della rete fornendogli
due esempi nuovi:
Pino
Fagiolini
11110
10100
Interrogando la rete, le risposte connesse ad ogni pattern sono state:
Pino
Fagiolini
0,9074
0,1000
Possiamo affermare che la rete ha appreso.