Università degli Studi della Calabria Facoltà di Lettere e Filosofia Corso di laurea in D.A.M.S. Indirizzo Multimediale PSICOLOGIA GENERALE II RETE NEURALE Professoressa: Eleonora Bilotta A cura di : Anello Mariacarmine SOMMARIO Introduzione Rete neurale “Esseri viventi” 1 INTRODUZIONE La rete neurale è una struttura formata da un certo numero di unità collegate tra loro da connessioni. Attraverso le connessioni un’unità influenza fisicamente le altre unità con cui è collegata. Le unità hanno alcune delle caratteristiche essenziali delle cellule nervose, i neuroni del sistema nervoso reale, mentre le connessioni hanno alcune delle caratteristiche essenziali dei collegamenti sinaptici tra neuroni. Ogni unità della rete neurale ha un livello quantitativo di attivazione che corrisponde, nel sistema nervoso reale, a quanto è attivo in un certo momento un neurone reale, cioè alla frequenza con cui il neurone “scarica” impulsi nervosi che influenzano gli altri neuroni con cui è collegato. Le reti neurali si distinguono in reti neurali naturali e reti neurali artificiali. RETI NEURALI NATURALI Lo studio del neurone è importante perché tutti i sistemi nervosi naturali sono costituita da neuroni. Il sistema nervoso è fondato 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: 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 diversi altri neuroni. Il neurone è l’unica cellula che non si rigenera. Il neurone naturale funziona: -ricevendo input da altri neuroni sui dendriti; -in relazione degli input, genera impulsi che vengono trasmessi lungo l’assone; -molto lento rispetto a componenti elettronici; -il suo comportamento è influenzato da neurotrasmettitori. Per codificare l’informazione, 50 anni fa, si pensava che il neurone naturale fosse un dispositivo binario (acceso/spento). Oggi, invece, si è certi che l’informazione del neurone passa attraverso la frequenza degli impulsi. Il neurone genera impulsi anche quando sta a riposo. Quando è stimolato aumenta o riduce la frequenza degli impulsi. Il neurone riceve impulsi attraverso i bottoni della sinapsi. La sinapsi regola la quantità di segnale e il tipo di effetto che esso provoca sul neurone ricevente. Una sinapsi è il punto di contatto fra il terminale assonico di un neurone (anche detto neurone presinattico) e il ramo dendritico di un altro neurone (neurone postsinaptico). Una sinapsi ha ridotte dimensioni che permettono una grande ricchezza di connettività in uno spazio molto compatto. Il punto di giunzione sinaptico è caratterizzato dalla presenza di un piccolissimo spazio tra le due membrane di trasmissione. Più numerosi sono i siti sinaptici, maggiore è il peso della connessione. Le connessioni sono di due tipi, eccitatorie e inibitorie. Se la connessione è eccitatoria, un’unità tende a far aumentare il livello di attivazione dell’unità con cui è collegata. Se è inibitoria, l’unità di partenza tende a far diminuire il livello di attivazione dell’unità di arrivo. Risulta chiaro che la rete neurale può essere considerata come un modello del sistema nervoso. Un neurone emette un segnale lungo il suo assone, quando la differenza di carica elettrica fra la parte interna ed esterna della sua membrana raggiunge un certo livello di soglia. Il neurone in fase di “riposo” (quando non riceve alcun segnale esterno) rimane in una situazione di equilibrio. 2 RETE NEURALE ARTIFICIALE Il neurone artificiale è caratterizzato da un insieme di sinapsi che corrispondono ai terminali di altri neuroni, da una soglia e da una funzione di attivazione. S1 S2 W(1,3) Considerando una rete con 2 unità di input, un’unità di output: Il valore del neurone S3 è attivato solo quando vi è il superamento della soglia. I strato W(2,3) II strato 1 S3 SE S1*W(1,3)+S2*W(2,3)>=Soglia ALLORA S3=1 ALTRIMENTI S3=0 Se S1+ S2 moltiplicati per i loro pesi sono maggiori della soglia, S3 sarà uguale a 1 altrimenti sarà uguale a 0. Esempio della funzione AND con un neurone artificiale S1 input S2 Funzione AND SE W(1,3) W(2,3) output S3 S1=1 E S2=1 allora S3=1altrimenti S3=0 Considerando una rete con 2 unità di input, un’unità di output: la funzione AND richiede una risposta positiva quando entrambe le unità di input sono attive e la risposta opposta in tutti gli altri casi. APPRENDIMENTO Per quanto concerne l’apprendimento, la risposta di una rete neurale è determinata dai valori sinaptici delle connessioni fra i nodi. Si distinguono due modalità di apprendimento: 1) Apprendimento supervisionato: la modifica dei valori sinaptici avviene impiegando una misura di errore tra la risposta fornita dalla rete neurale e la risposta desiderata per ogni vettore di input.2 2) Apprendimento per auto-organizzazione: non esiste una risposta desiderata imposta dall’esterno, ma la definizione di alcune semplici regole che danno luogo a un’autoorganizzazione della rete durante la fase di esposizione ai pattern di input. Le reti neurali che funzionano in base a tali principi sono in grado di estrarre informazioni dall’ambiente, di classificare autonomamente una serie di pattern e di sviluppare delle configurazioni interne. L’apprendimento consiste nella presentazione ripetuta di una serie di vettori, anche detti pattern d’addestramento. Nell’apprendimento supervisionato ogni pattern è composto da una coppia, il vettore d’ingresso e il vettore della risposta desiderata; nell’apprendimento auto-organizzato, invece, vi sono solo i vettori d’ingresso. Nel I strato ci sono 2 neuroni; nel II strato c’è un solo neurone; Le connessioni vengono chiamati pesi sinaptici e determinano quanto parte di informazione arriva da un neurone all’altro. 2 Procedura definita”apprendimento con insegnante” poiché si ipotizza che la risposta provenga dall’esterno. 1 3 Fra i pochi meccanismi di apprendimento che definiscono un punto di partenza su cui sviluppare modelli complessi sono importanti le regole hebbiane. La regola di Hebb (psicologo canadese) stabilisce che se due neuroni collegati fra loro sono contemporaneamente attivi, l’efficacia sinaptica della connessione viene rinforzata. In seguito a questo rafforzamento, la sola attivazione del nodo presinaptico sarà sufficiente a causare l’attivazione del nodo postsinaptico. Questa associazione verrà ulteriormente rinforzata ogni volta che i due nodi saranno attivi contemporaneamente. Per modificare l’apprendimento sono state sviluppate 4 regole, fondate sulla regola di Hebb: 1)regola classica: i pesi sinaptici possono essere solo incrementati 2)regola postsinaptica: incremento modulato dal neurone postsinaptico 3)regola presinaptica: incremento modulato dal neurone presinaptico 4)regola della covarianza: dipende dallo stato di entrambi i neuroni Tali regole permettono l’aumento del peso o il decremento in base alla stimolazione dei neuroni. Molti psicologi si sono interessati anche della visione artificiale, in particolar modo Rosenblatt nel 1958, ha sviluppato un sistema, dove sono presenti: -neurone di output -connessioni da ogni feature detectors al neurone di output -peso variabile delle connessioni fra feature detectors e neurone di output Neurone di output Feature detectors Retina artificiale La connessione dal feature detectors al neurone permette l’apprendimento. Il percettrone come struttura computazionale, ha una capacità di generalizzare, riesce a ricostruire degli input che non sono completi. Caratteristica del percettrone è che eliminando alcune connessioni lui continuerà comunque a funzionare. La procedura di apprendimento di un percettrone consente di apprendere qualsiasi mapping input-output teoricamente acquisibile. Ogni qualvolta la rappresentazione dettata dal mondo esterno sia tale che la struttura di somiglianza del pattern di input si discosti nettamente da quella del pattern di output, una rete senza rappresentazioni interne (cioè, una rete senza unità nascoste) sarà incapace di apprendere le associazioni appropriate. Un esempio classico è quello del problema dell’o disgiuntivo (XOR). Questo problema, come molti altri non può essere risolto da reti sprovviste di unità nascoste che creino una rappresentazione interna dei pattern di input. Il percettrone ha dei limiti computazionali, per esempio, non può risolvere il problema dello XOR 3. Per superare il problema della separabilità lineare, viene usato l’algoritmo di Back-Propagation che permette l’apprendimento di reti multistrato. 3 XOR: funzione linearmente non separabile. 4 Si avranno: output hidden input Il funzionamento della regola di Back-Propagation è simile alla regola Delta.4 Le regole si fondono su l’aumento o la diminuzione dei pesi, in funzione degli errori. Per risolvere il problema (es. XOR): -si propaga il segnale di errore all’indietro; -si calcola l’errore sull’output; -si modificano i pesi tra output e hidden, -si modificano i pesi tra hidden e input. -Si crea una relazione tra la variazione dell’errore ed il cambiamento dei pesi. Attraverso l’algoritmo si indirizza l’errore sulle hidden, riapplicando l’aggiornamento dei pesi tra input e hidden, si raggiunge l’apprendimento. Nel percettrone i pesi vengono modificati in modo discreto, vengono codificati in modo continuo tramite la funzione di attivazione.5 Tale funzione determina il tipo di risposta che un neurone è in grado di emettere. N net wi si i 0 L’input netto di un neurone i-esimo è la somma algebrica dei prodotti fra tutti i segnali di ingresso S, e i valori delle sinapsi corrispondenti W. Tra le funzioni: 1) Funzione di attivazione “a scalino” (percettrone) Se net > soglia 1 A 0 altrimenti Il neurone può essere attivo o inattivo. 2)Funzione logistica A 1 1 e knet 0<A<1 La funzione logistica è continua, si approssima da 0 a 1. 4 5 La regola Delta permette di modificare i pesi. Se il neurone supera una soglia si attiva, se è inferiore non si attiva. 5 Con le reti neurali gli errori che si possono determinare sono quelli del: -minimo assoluto (es. rete neurali a 2 strati): l’errore arriva a zero e la procedura si ferma (la rete ha appreso); -minimo locale 6(es. rete neurale a 3 strati): l’errore non scende oltre un punto, la procedura si ferma (la rete non ha appreso). Un nuovo metodo di addestramento per reti neurali ( ma non solo) è l’algoritmo genetico, dove non è necessario conoscere gli output corretti da associare agli input. Gli algoritmi genetici sono fondati sul concetto di riproduzione selettiva.7 Vi sono ripetute interazioni tra l’organismo e l’ambiente: -generazione di una popolazione casuale di organismi; -misura della competenza degli organismi nel loro ambiente; -selezione dei migliori organismi; -meccanismi di riproduzione e mutazione del genotipo. I meccanismi di riproduzione avvengono per : 1) Mutazione: dove avviene una modifica di alcuni pesi sinaptici scelti a caso (riproduzione asessuata); 2) Crossover: dove avviene uno scambio di materiale genetico fra i genitori (riproduzione sessuata). Con gli algoritmi genetici si ottiene una forma di adattamento e non di apprendimento. 6 7 Un modo per evitare il minimo locale è quello di modificare i pesi. L’algoritmo genetico funziona tramite riproduzione e mutazione del genotipo. 6 RETE NEURALE “ESSERI VIVENTI” Il software NetTools ha permesso la creazione della rete. La rete neurale, definita “ESSERI VIVENTI”, riesce ad estrarre informazioni dalla discriminazione tra gli esseri vertebrati e invertebrati. TABELLA CON CATEGORIE E DOMANDE Discriminazione tra vertebrati e invertebrati CINQUE DOMANDE: Sono dotati di organi per il moto, le pinne? Hanno temperatura variabile? Respirano per mezzo dei polmoni? Hanno la pelle protetta da piume? Vivono nell’acqua? DETERMINO GLI ESEMPI CON LE RISPOSTE CORRETTE: INPUT OUTPUT PESCI 1 1 1 0 0 1 ANFIBI 1 0 1 1 0 1 VERMI 0 0 0 0 0 0 UCCELLI 1 0 0 1 1 0 CETACEI 1 1 0 0 0 1 CELENTERATI 0 0 1 0 0 1 RETTILI CANI8 0 0 1 0 1 1 0 0 0 0 1 1 IL LAVORO SI SUDDIVIDE IN DIVERSE FASI I FASE NetManager è stato utilizzato per la costruzione della rete neurale. ESSERI VIVENTI è una rete neurale multistrato (numero di strati>3). Il file è stato salvato come modello ,“Anello.spr”. 8 Le due categorie in basso ( rettili e cani) verranno utilizzati per verificare l’apprendimento della rete. 7 Esempio di rete senza pesi II FASE TrsEditor è stato utilizzato per costruire gli esempi sui quali la rete ha imparato (costruzione del Training Set). La rete è costituita da : 6 pattern>5 input>1 di output . Il file è stato salvato con il nome “Anello.trs” Inserimento degli esempi III FASE NetTrainer è stato utilizzato per l’addestramento della rete. Inserendo i precedenti file è stata creata la rete neurale artificiale “ESSERI VIVENTI”.rna Visualizzazione dell’errore; grafico errore>play; 8 IV FASE NetManager è stato utilizzato nuovamente per verificare l’apprendimento della rete, attraverso due modalità: associando i valori della I categoria di animali e “testando” tramite il bottone “interroga”; i valori ottenuti sono corretti; la rete acquisisce che i pesci sono esseri viventi vertebrati. I esempio di verifica Associando i valori di una delle categorie di animali non conosciuti dalla rete, risulta chiaro che non sono stati identificati. II esempio di verifica Struttura della rete neurale Proprietà della rete neurale RISULTATO: La rete neurale “ESSERI VIVENTI” è riuscita a categorizzare e quindi ha appreso. 9 10