Università degli studi della Calabria Facoltà di Lettere e Filosofia Corso di laurea in D.A.M.S. Indirizzo Multimediale Psicologia Generale II Docente: Eleonora Bilotta Studentessa: Pizzuto Angela Matr. 59773 Reti Neurali Angela Pizzuto Cos’è una rete neurale? Un normale calcolatore è in grado di compiere operazioni impensabili per un qualsiasi essere umano: esso è in grado di eseguire, per esempio, molti calcoli in successione in tempi brevissimi, ed è velocissimo nel fare cose complicate per la mente umana, come rotazioni di complesse figure geometriche, la memorizzazione di enormi quantità di dati etc... Un normale calcolatore (che definiremo computer seriale) è costituito da un’unità di calcolo (processore) in grado di eseguire alcuni milioni di operazioni il secondo, e tre tipi di memoria: una contenente le istruzioni necessarie a svolgere le operazioni, una da cui vengono letti i dati da elaborare e depositati i risultati ed una permanente su cui i dati vengono registrati. Il meccanismo di funzionamento di un calcolatore è grossolanamente questo: vengono letti sequenzialmente i dati e su di essi vengono applicate determinate operazioni predefinite dal programmatore. Ogni dato viene allora elaborato singolarmente, e sottoposto ad una precisa sequenza di operazioni. Proprio per questa ragione, un calcolatore tradizionale non è in grado di compiere operazioni che risultano semplicissime per la mente umana, come il riconoscimento di un oggetto in mezzo ad altri o la valutazione di un insieme di circostanze per prendere una decisione rapida. La fondamentale differenza tra un calcolatore seriale e la mente umana sta nel fatto che mentre un calcolatore considera ed elabora in modo sequenziale un dato per volta, la mente umana elabora e valuta una gran quantità di informazioni contemporaneamente e la risposta all’ambiente è conseguente a tutte la stimolazioni che ogni singola informazione causa. L’elaborazione delle informazioni avviene in parallelo. Le reti neurali sono pensate e costruite secondo questo modello di elaborazione dati. Una rete neurale è costituita da una serie di unità discrete (nodi o neuroni), connesse tra loro in modo da poter "scambiare" dei dati. 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. I punti di connessione tra il collegamento (assone) e il nodo successivo sono dette sinapsi. Esse hanno la funzione di "pesare" l'informazione proveniente dal nodo precedente. Una rete neurale è costituita da un insieme di unità elementari opportunamente combinate in una struttura reticolare. Gli elementi della rete (neuroni) sono generalmente disposti in strati e presentano un elevato grado di interconnessione tra loro. Ad ogni connessione della rete è associato un peso che rappresenta una sorta di conoscenza interna. Una rete neurale ha la capacità di apprendere una particolare funzione in base a coppie di esempi input/output, che vengono ripetutamente presentate al modello. In generale si costruisce un opportuno insieme di dati (training set) costituito da coppie di esempi input/output e lo si presenta alla rete neurale, che attraverso una legge di apprendimento, 1 Reti Neurali Angela Pizzuto modificando i pesi delle connessioni, impara a classificare correttamente i pattern. Una volta raggiunto il limite per cui la rete si considera addestrata, vengono presentati al modello una serie di pattern che non sono stati utilizzati per l'addestramento (test set). Dalla capacità di generalizzare i risultati dell'apprendimento sui pattern del test set, si deduce la bontà del modello addestrato. Il sistema realizzato permette di dettagliare, direttamente dal Web Browser, la struttura della rete specificandone i neuroni input, output e hidden (ovvero le unità nascoste), il training set sotto forma di coppie input/output, il tasso di apprendimento, il numero di iterazioni, l'errore minimo a cui far fermare la fase di training. Di default sono presentati esempi relativi alla risoluzione del problema dello XOR in cui si classificano in due insiemi, 0 e 1, pattern di dimensione 2. Ad un clic sul pulsante "Inizia Apprendimento" corrisponde l'esecuzione della fase di training in cui vengono sottoposti alla rete gli esempi specificati. Quando tale fase termina, la rete è pronta per la classificazione. E' possibile, infatti, fornire un input e ottenere dalla stessa un output che è funzione della generalizzazione di quanto ha appreso. Elementi di Neuro fisiologia Le reti neurali artificiali sono sistemi di elaborazione ispirati al sistema nervoso degli esseri viventi, in grado di svolgere in modo efficiente compiti che risultano invece difficilissimi o impossibili per i sistemi tradizionali. Per meglio comprendere fin dove si spinge tale analogia facciamo una panoramica sul funzionamento del sistema nervoso umano. Tradizionalmente si suole distinguere i neuroni in tre categorie: Neuroni afferenti o sensoriali, che ricevono stimoli dal mondo esterno e trasmettono segnali ad altri neuroni; Neuroni centrali, che ricevono segnali da neuroni e sono a loro volta connessi ad altri neuroni; Neuroni effettori o motori, che ricevono segnali da neuroni e terminano su muscoli ai quali trasmettono segnali atti a farli contrarre. 2 Reti Neurali Angela Pizzuto Struttura di un neurone biologico. La cellula nervosa consta di un corpo cellulare, o soma di forma varia dal quale si dipartono numerose branche sottili, dette dendriti lungo cui si trasmettono i segnali che il neurone riceve da parte di altri neuroni. Da una piccola protuberanza del soma si diparte un sottile e più o meno lungo prolungamento cui si dà il nome di assone che può essere visto come un cavo, lungo il quale si propagano segnali elettrici. L’assone a sua volta, si ramifica e le sue terminazioni sono connesse a dendriti di altri neuroni mediante giunzioni cui si dà il nome di sinapsi. L’impulso nervoso, giunto ad un neurone tramite una sinapsi, passa successivamente dai dendriti al soma e da questi all’assone; infine da un’altra sinapsi è trasmesso ad un successivo neurone o ad un organo effettore, ma mai nella direzione contraria a quella testé descritta. I neuroni sono rivestiti da una membrana, alla quale è legato il fenomeno elettrico cui è affidata la trasmissione dei segnali da un neurone agli altri. Tra l’interno e l’esterno della membrana si osserva, in condizioni di riposo, una differenza di potenziale di –70 mV all’incirca (detto potenziale di membrana). Le variazioni del potenziale che si propagano lungo gli assoni, costituiscono i segnali con cui i neuroni interagiscono. Ciò che si osserva facendo attraversare questa membrana da impulsi rettangolari di corrente è che per stimoli inferiori ad una certa intensità, essa presenta un comportamento passivo. Per uno stimolo di intensità sufficiente (ossia sopra – soglia) il neurone risponde generando una spike (o come si suole dire "spara"). La forma delle spike è indipendente dal tipo e dall’intensità dello stimolo. Quando, a seguito di uno stimolo sopra – soglia, si genera una spike non è possibile, per grande che sia l’intensità di stimolo, che si produca un’altra spike in un intervallo di tempo successivo cui si dà il nome di periodo di refrattarietà assoluta. Che cosa sono le reti neurali artificiali Una rete neurale è composta da elementi di elaborazioni ispirati ai neuroni, connessi tra loro tramite collegamenti ispirati alle sinapsi, in modo da formare uno schema assimilabile ad un semplicissimo tessuto nervoso. 3 Reti Neurali Angela Pizzuto Neurone base In un ANS, al corpo cellulare del neurone corrisponde l’elemento di elaborazione (PE) che dispone di più ingressi e di una sola uscita. Analogamente al suo modello biologico riceve segnali diversi e può inviare il suo segnale di uscita a più PE. Ogni neurone svolge una funzione molto semplice: effettua una somma "pesata" di segnali di ingresso e utilizza il segnale risultante per generare un segnale di uscita sulla base di una determinata funzione detta "funzione di attivazione" o di trasferimento (Transfer Function). Questi elementi sono quindi connessi fra loro con input e output che corrispondono a dendriti e assoni. Ad ogni sinapsi corrisponde un peso di interconnessione, che modifica (in genere moltiplicandolo) il segnale del neurone emittente. I pesi di interconnessione sono fondamentali perché sono i soli elementi della rete neurale capaci di memorizzare informazione e quindi sono responsabili della capacità di apprendimento del modello neurale. Gli output sono determinati dai pesi di interconnessione e dalla funzione di trasferimento propria del neurone. Quest’ultima viene scelta in sede di progetto ed in genere non è modificabile, mentre i pesi vengono cambiati secondo una "regola di addestramento" che tiene conto dei valori di ingresso e di uscita. I diversi tipi di rete Considerazioni generali Dagli anni sessanta ad oggi sono stati ideati e studiati vari tipi di reti neurali che si differenziano in base al tipo di architettura, al tipo di interconnessioni, alla funzione di trasferimento utilizzata dai PE ed alla regola di apprendimento impiegata. Anche il numero di PE e di interconnessioni è rilevante: in genere più la rete è grande, maggiori sono le sue capacità di contenere informazioni ed inferiore è, invece, la sua capacità di generalizzare. Le connessioni inoltre possono essere simmetriche o asimmetriche. Nel primo caso i due neuroni connessi si scambiano segnali in modo bidirezionale; ciò non corrisponde alla realtà biologica ma presenta vantaggi in particolari applicazioni. Benché molti modelli di ANS si differenziano per non pochi aspetti, alcune caratteristiche sono comuni a tutti. Di queste, senza dubbio la più importante, è la capacità di generalizzare. Una rete neurale, che è stata addestrata su un numero limitato di esempi, è in grado di produrre una risposta adeguata a dei pattern d’ingresso che non ha mai visto in precedenza, ma che presentano tuttavia qualche somiglianza con gli esempi presentati durante la fase di apprendimento. 4 Reti Neurali Angela Pizzuto Il modello feed forward Il tipo Feed-Forward (FF) è il più semplice. Il nome si riferisce al flusso di informazioni che viaggia attraverso la rete strato dopo strato dal livello input a quello output. Diremo che un modello siffatto è totalmente connesso (full-connected) quando ogni neurone di ogni livello è collegato con tutti i neuroni del livello successivo. Esempio di rete FF non full connected Reti ricorrenti Una rete ricorrente si distingue da una FF perché quest’ultima ha almeno un loop (un ciclo che si chiude all’indietro). Per esempio una rete ricorrente potrebbe consistere in un singolo strato con ogni neurone che manda il suo segnale output indietro negli input degli altri neuroni. La presenza di loop ha un profondo impatto sulle capacità di apprendimento della rete e sulle sue prestazioni. La rete di Hopefield La rete di Hopefield (1982) è costituita da vari elementi di elaborazione aventi un solo ingresso ed una sola uscita; tutte le uscite sono retrazionate sugli ingressi, ai quali ogni elemento di elaborazione è connesso tramite pesi diversi (non c’è feedback diretto di un elemento di elaborazione su sé stesso). Il modello di Hopfield L’applicazione naturale del modello di Hopfield consiste nella ricostruzione in base al contenuto di pattern già memorizzati (memoria associativa), ma può essere impiegato anche in compiti di ottimizzazione vincolata quando il problema può essere espresso nei termini di una funzione 5 Reti Neurali Angela Pizzuto energia. Il problema del commesso viaggiatore, che consiste nel visitare N città attraverso il percorso più breve passando per ciascuna città una sola volta e tornare alla città di partenza alla fine del giro, è un tipico problema di ottimizzazione. Nel caso in cui vi siano N città da visitare, il modello di Hopfield richiede N´ N unità disposte su una matrice ove le colonne indicano la posizione di ciascuna città nel giro del commesso e le righe indicano le città. La rete di Carpenter Grossberg La rete di Carpenter-Grossberg funziona principalmente come classificatore ed è in grado di formare classi senza richiedere supervisione in fase di apprendimento. La rete di Kohonen La rete di Cohonen invece si basa su un principio autoorganizzativo secondo cui PE vicini sono sensibili a input fisicamente simili, analogamente a quanto avviene in alcune parti del cervello. La macchina di Boltzmann La Macchina di Boltzmann è un modello per reti neurali ricorrenti stocastiche con connessioni simmetriche (wij= wji) [Ackley, Hinton e Sejnoswski 1985].Il nome è dovuto al fatto che la probabilità di trovare la rete in un certo stato segue una distribuzione di Boltzmann. La differenza fondamentale tra la rete di Hopfield a unità stocastiche e la Macchina di Boltzmann è che quest’ultima può possedere anche unità nascoste che servono unicamente per l’elaborazione interna. Architetture della Macchina di Boltzmann Ciascuna connessione è simmetrica, ossia assume lo stesso valore in entrambe le direzioni. Le unità grigie sono le unità nascoste della rete, quelle bianche le unità visibili su cui vengono applicati pattern di addestramento. La Macchina di Boltzmann può essere impiegata per svolgere compiti di memorizzazione, categorizzazione, approssimazione di funzioni ecc. I campi di utilizzo Le reti neurali artificiali presentano alcune caratteristiche che si rivelano interessanti in molti campi di ricerca e domini di applicazione. Sono state utilizzate per sviluppare codici compatti e robusti (vi è un crescente bisogno di trovare nuovi metodi per rappresentare vasti insiemi di dati in modo compatto e resistente al rumore) che possono essere usati sia per la compressione che per la decompressione di immagini [Kohonen 6 Reti Neurali Angela Pizzuto 1989]. Un modello, ad esempio, è stato impiegato per rappresentare e trasmettere immagini televisive ad alta definizione [Naillon e Theeten 1989]. Hanno trovato molte applicazioni nel riconoscimento e classificazione di oggetti sottomarini a partire da segnali sonar. Infatti i segnali sonar marini sono spesso mescolati ad una grande quantità di rumore oceanico e la reti neurali si sono rivelati ottimi strumenti per scoprire in tempo reale la struttura del segnale sepolto in mezzo a tutto questo rumore. Sono state utilizzate, inoltre, per la distinzione tra mine e rocce di forme e dimensioni simili [Gorman e Sejnowski 1988] e per l’identificazione di oggetti di varie forme e materiali con meccanismi simili a quelli impiegati dai delfini [Roitblat 1991]. Kohonen ha utilizzato una rete neurale per trasformare direttamente il parlato in testo scritto [Kohonen 1988]: la rete impara a segmentare il discorso di un parlante e ad associare in tempo reale ciascun segmento alle lettere dell’alfabeto corrispondenti. Molti modelli di ANS sono stati impiegati per il riconoscimento di caratteri scritti a mano (infatti le grandi differenze di dimensione, posizione e stile rendono questo compito molto arduo per le tecniche tradizionali) [Le Cun, Denker e Solla 1990]. Altri modelli hanno trovato un ampio spettro di applicazioni nello sviluppo di sistemi di controllo per robot o veicoli intelligenti. Uno di essi è stato utilizzato da Pomerleau per la guida automatica di un’automobile: la rete neurale osserva la strada attraverso una telecamera e impara ad associare le immagini con le azioni corrette (su sterzo, acceleratore e freni) imitando un guidatore umano [Pomerleau 1993]. Anche in analisi finanziare le reti neurali si sono rivelate molto efficaci grazie alla loro resistenza alla variazioni casuali ed alla loro capacità di generalizzazione. Sembrano, inoltre, essere adatte come aiuto per la diagnosi e la prognosi di patologie. Apolloni et al.[1990] hanno utilizzato un ANS per diagnosticare la presenza di epilessia. E’ stato addestrato su 134 casi ed ha ottenuto circa l’85% di generalizzazioni corrette in 22 nuovi casi test. Reti Naturali: La frutta La rete neurale seguente riesce a stabilire la frutta tradizionale da quella secca. Tabella con Categorie Input 1. Pesca 2. mela 3. noce 4. albicocca 5.castagna Output 1 1 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 1 0 0 Nella prima fase tramite il programma netmanager creiamo una rete senza pesi 7 Reti Neurali Angela Pizzuto Dopo tramite TrsEditor stabiliamo i pattern, gli input e gli output Mentre il Net trainer è stato utilizzato per l’addestramento della rete. Infine ritorniamo nel netmanager per verificare la rete . 8 Reti Neurali Angela Pizzuto La struttura della nostra rete è la seguente: l rete neurale Frutta è riuscita a categorizzare e ad apprendere. 9