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.