Sei sulla pagina 1di 17

Alberto Giudici

Classe V C a.s. 2009­10 Liceo Scientifico “F. Enriques”

Reti Neurali

2009­10 Liceo Scientifico “F. Enriques” Reti Neurali "The machine does not isolate man from the great

"The machine does not isolate man from the great problems of nature but plunges him more deeply into them." ­Saint­ Exup éry, Wind, Sand, and Stars, 1939

“Le macchine non isolano l'uomo dai grandi problemi della natura ma lo immergono più a fondo in questi.”

Reti neurali

Abstract

Le reti neurali (intelligenze artificiali strutturate come insieme di neuroni interconnessi e comunicanti tra di loro, modello della struttura del cervello animale) offrono delle simulazioni di comportamenti animali in robot sempre pi ù simili all'oggetto della simulazione. La ricerca sull'intelligenza artificiale ebbe inizio con il tentativo di realizzare sistemi in grado di pensare autonomamente, tentativo che fu dimostrato come impossibile da John Searle (1956). Le macchine non possono comprendere­pensare in quanto sono degli elaboratori di simboli senza significato. Sviluppi recenti in questo campo, pur considerando la confutazione di Searle, riaprono la domanda sui limiti delle macchine. Dal punto di vista pratico, le reti neurali sono dei modelli matematici delle connessioni-strutture dei neuroni. Questi sistemi sono in grado di apprendere autonomamente modificando la loro struttura. Le reti neurali sono anche in grado di inferire delle funzioni matematiche dalle relazioni tra un numero indefinito di insiemi di elementi, purtroppo funzioni che non possono essere studiate matematicamente dall'uomo. Il loro utilizzo trova spazio nei software per il riconoscimento facciale, vocale e della scrittura; nonostante ciò le reti neurali si stanno diffondendo lentamente in quanto sono ancora oggetto di ricerca.

Introduzione La ricerca sull'intelligenza artificiale parte dal desiderio di realizzare macchine con le medesime

capacit à umane, l'intelligenza, caratteristica propriamente umana, artificiale “Fatta, ottenuta con arte”, instillata in una macchina. Nell'approccio

alla questione sull'IA, che da un versante si traduce in una comparazione tra uomo e

macchina, spesso l'uomo viene ridotto ad un “elaboratore di informazioni” (Weizenbaum) , se

ne considera solo un aspetto, e l'intelligenza

diviene un parametro misurabile quantitativamente. Da un altro punto di vista l'IA studia, tramite la realizzazione di simulazioni sempre più complesse, la capacità umana di pensare e formulare pensieri. In questo ambito, il progredire degli studi fisiologici sul sistema neurale consente di approfondire sia la cognizione

dei processi biologici che portano al pensiero, sia

di simulare sempre con maggiore verosimiglianza la struttura del cervello.

La fantascienza e l'entusiasmo dei primi ricercatori del campo dell'IA hanno contribuito a creare una comune idea di robot­IA. Siamo stati abituati a robot “programmati”, nel senso di macchine il cui comportamento è stato previsto e scritto al loro interno, secondo procedure complicate. Robot il cui comportamento diviene imprevedibile a causa di errori nella progettazione o malfunzionamenti. Le reti neurali, nate dal paragone con il cervello umano, nella loro forma pi ù avanzata, sono dei sistemi complessi in grado di auto apprendere dall'esperienza e di operare anche al di fuori dai domini previsti dai progettisti. Questa capacit à, unita all'utilizzo di logiche diverse da quelle

«La definizione vera e propria, secondo la tradizione aristotelica (d. per genere prossimo e differenza specifica), è quella che individua una più vasta classe di enti (genere prossimo) entro la quale si trova la sottoclasse degli oggetti da definire, rilevando poi la o le restanti caratteristiche peculiari dell’oggetto che si vuole definire (differenza specifica): per es. «l’uomo è un animale [genere prossimo] razionale [differenza specifica]» Enciclopedia Treccani

Le reti neurali saranno quindi «intelligenze artificiali strutturate come insieme di neuroni interconnessi e comunicanti tra di loro, modello della struttura del cervello animale».

Reti Neurali ­ 1

formali/booleane, amplia l'orizzonte di impieghi di questi sistemi e pone di fronte a risultati imprevedibili. Gruppi di robot che evolvendosi in un ambiente condiviso danno luogo prima a una forma di linguaggio poi ad una di inganno a causa della competizione, in maniera imprevista dai ricercatori 1 . Quest'ultimo studio riguarda forme semplici dei processi sia evolutivi sia mentali che rendono difficile il paragone con l'uomo. Questo pu ò essere solo il primo passo: oggi si simulano gli invertebrati e domani? Le reti neurali hanno alla base il funzionamento del cervello umano, cosa saranno in grado di fare se partono con questo smisurato potenziale?

Storia

In "A logical calculus of the ideas immanent in nervous activity ", W.S. McCulloch e W. Pitts nel 1943 scrivono quanto segue dando inizio alla storia delle reti neurali:

“A causa del carattere “tutti­o­nessuno” dell'attivit à neuronale, gli eventi dei neuroni e le relazioni tra questi possono essere trattati in termini di logica proposizionale. E' stato scoperto che il comportamento di ogni rete pu ò essere descritto in questi termini, con l'aggiunta di mezzi logici pi ù complicati per le reti che contengono cicli; e che per qualsiasi espressione che soddisfa certe condizioni, si pu ò trovare una rete che si comporta nella maniera descritta.”

Sebbene le reti attuali siano molto diverse da quelle previste da McCulloch e Pitts, ovvero delle reti con neuroni a due stati, il loro lavoro ha dato inizio ad una modellizzazione dell'attivit à neuronale al fine di riprodurre in una sistema formale la capacit à intellettiva umana.

Il primo modello di rete neurale in grado di apprendere verr à proposto nel 1958 da F. Rosenblatt nel libro "Phychological review". Il modello probabilistico di Rosenblatt introduce il concetto di pesi sinaptici variabili con la conseguente capacit à della rete di memorizzare ed apprendere.

I primi entusiasmi verranno troncati nel 1969 da M. Minsky e S. A. Papert, nell'opera "An introduction to computational geometry". Minsky e Papert mostrano i limiti operativi delle semplici reti a due strati basate su quelle di Rosenblatt, facendo cosi perdere interesse nello sviluppo delle reti neurali per almeno un decennio.

Il ritorno in auge si dovr à a David E. Rumelhart, G. Hinton e R. J. Williams che basandosi sulla tesi di dottorato di Paul Werbos svilupperanno l'algoritmo di retropropagazione dell'errore, error backpropagation, che è oggi alla base della maggioranza delle reti neurali. Questo algoritmo è costitutivo della capacità di apprendimento delle reti neurali.

Ad oggi le reti neurali trovano applicazione nei campi pi ù differenti: riconoscimento dei caratteri manoscritti, riconoscimento vocale o dei volti, applicazioni mediche, ottimizzazione dei processi industriali, analisi in campo finanziario. Numerose aziende che mettono in primo piano l'applicazione delle reti neurali sono nate negli ultimi anni.

1 Mitri S, Floreano D. and Keller L. (2009), The evolution of information suppression in communicating robots with conflicting interests, PNAS

Reti Neurali ­ 2

Il modello biologico

Alla base della nascita delle reti neurali vi è il paragone, come dice il nome stesso, con i neuroni che costituiscono il tessuto nervoso e dei nessi causali tra questi che danno origine alle capacit à mentali superiori dell'uomo. Il termine rete rimanda al collegamento tra i diversi neuroni organizzati nel tessuto. Le connessioni presenti sono necessarie per dar luogo a forme di cognizione o di elaborazione delle informazioni. Non si ritiene che sia un singolo neurone a causare il pensiero.

si ritiene che sia un singolo neurone a causare il pensiero. Fig 1: Il modello di

Fig 1: Il modello di un neurone.

La struttura di un neurone Un neurone è costituito da un corpo centrale denominato soma o pirenoforo, dal quale si allontanano dei prolungamenti chiamati dendriti e un singolo assone, una struttura allungata che, dopo diverse suddivisioni, si conclude con diversi terminali sinaptici. Soma e dendriti di un neurone sono “collegati” al bottone sinaptico di altri neuroni. Questo collegamento è chiamato propriamente sinapsi e per ogni connessione si individuano due neuroni: neurone presinaptico, quello il cui terminale sinaptico è collegato all'altro neurone, che è chiamato neurone postsinaptico. E' a livello della sinapsi che si registra lo scambio di informazioni tra due neuroni, scambio che avviene in una sola direzione: dal neurone presinaptico al neurone postsinaptico. Il neurone ricevente elaborer à l'informazione e a sua volta la trasmetter à ai successivi neuroni che sono a questo collegati.

La trasmissione degli impulsi

I neuroni hanno una differenza di potenziale transmembrana detto potenziale di riposo (pari a circa ­70mV) dovuta ad una diverso accumulo di ioni a ridosso della membrana. Ogni cellula nervosa è eccitabile, ovvero pu ò modificare rapidamente l'accumulo di ioni, e quindi variare il potenziale di membrana. Un neurone a riposo che riceva uno stimolo, sia esso luminoso, meccanico o da parte di altri neuroni, si eccita modificando il proprio potenziale di membrana

fino al raggiungimento del valore del potenziale d'azione. L'alterazione del potenziale si propaga lungo

l'assone. Questo è un segnale nervoso elementare, treni di questi potenziali costituiscono gli impulsi nervosi. Un impulso nervoso pu ò propagarsi in una sola direzione poich é la membrana ritornata a riposo è refrattaria, per un breve istante, a un'ulteriore eccitazione.

per un breve istante, a un'ulteriore eccitazione. Fig 2: Trasmissione di un treno di due impulsi

Fig 2: Trasmissione di un treno di due impulsi lungo l'assone. Si noti la variazione del potenziale transmembrana.

La connessione tra neuroni, cosi come tra neurone e una cellula effettrice, è interrotta da un breve spazio, la discontinuit à o fessura sinaptica, che termina la propagazione dell'impulso nervoso.

Reti Neurali ­ 3

L'informazione potr à proseguire solo grazie all'intervento dei neurotrasmettitori, molecole liberate nello spazio sinaptico dal neurone presinaptico, e riconosciute da recettori presenti sul neurone postsinaptico. La ricezione dei neurotrasmettitori, che agiscono rapidamente, per breve tempo e localmente, genera un nuovo potenziale d'azione che da origine ad un nuovo impulso, e cosi via di neurone in neurone. L'informazione trasmessa da un neurone è influenzata da quella proveniente dagli altri neuroni, sia inibitori che eccitatori.

Il modello matematico

Come è stato tradotto il modello biologico?

L'unit à fondamentale di una rete neurale è il neurone o nodo o percettrone: una unità costituita da uno o più ingressi, una funzione soglia e uno o pi ù collegamenti in uscita. Per tutti i neuroni, tranne per quelli che svolgono funzione di input o output della rete stessa, i collegamenti sono da/verso uno

o più neuroni e consentono solo il passaggio di informazioni, non lo scambio. Le informazioni

scorrono solo in una direzione a livello del collegamento. 2 Cosi come avviene per le cellule nervose dove l'informazione pu ò propagarsi in una sola direzione a causa della ripolarizzazione della membrana del pirenoforo. Le informazioni trasmesse ed elaborate da un neurone sono numeri. Nelle configurazioni più semplici gli input vengono moltiplicati per un peso, un numero reale, ed in seguito sommati. Il valore cosi trovato viene inviato alla funzione soglia che attiva o inibisce il neurone. Alla somma dei vari input viene aggiunto il valore di soglia, chiamato bias, introdotto per replicare i differenti valori del potenziale d'azione di ogni singolo neurone.

Il risultato di questa operazione viene

trasmesso agli altri neuroni a questo collegati che agiranno similmente. L'attivazione o l'inibizione del neurone è solitamente graduale ovvero non si utilizzano solo valori come 0 o 1 per indicare due stati (attivo­ inibito), sul collegamento possono essere trasmessi valori di qualunque grandezza.

possono essere trasmessi valori di qualunque grandezza. Fig 3: Schema della struttura di un neurone artificiale.

Fig 3: Schema della struttura di un neurone artificiale.

La funzione di soglia o di attivazione La funzione di soglia è volta alla simulazione della dipendenza dell'attivazione del neurone da parte dei segnali ricevuti dagli altri neuroni. La funzione di soglia pu ò essere di tipologie diverse 3 :

funzione a gradino

(nel grafico t=0)

gradino t x  = {

 

1

1

x t altrimenti

0

 

0

2 Esistono reti, le cosiddette reti ricorrenti, dove i collegamenti sono tali trasportare ciclicamente le informazioni. Le informazioni, quindi, possono passare pi ù volte all'interno di uno stesso neurone prima di raggiungere lo strato di output. Anche in questo caso è però mantenuto il verso nel passaggio di informazioni.

3 Fonte: twiki.dsi.uniroma1.it ­­­ http://www.slidefinder.net/4/4neural/8948333

Reti Neurali ­ 4

funzione segno

funzione sigmoide

sign x = { 1 1

sigmoide x =

x 0 altrimenti

1

1 e x

1 -1 1/2
1
-1
1/2
= x ≥ 0 altrimenti 1 1  e − x 1 -1 1/2 Come i

Come i pesi influiscono sulla funzione di output Una rete neurale può essere utilizzata per “apprendere” funzioni diverse a seconda dell'addestramento svolto. Immaginiamo di avere un neurone con una funzione di attivazione sigmoide, con le altre funzioni non si ottiene alcun cambiamento significativo 4 , e di modificare i pesi della connessione di ingresso. Osserviamo come si modifica la funzione soglia del neurone.

Osserviamo come si modifica la funzione soglia del neurone. Come risulta dalle immagini a seconda dei

Come risulta dalle immagini a

seconda dei valori dei pesi le funzioni assumono un diverso grafico.

In

questi esempi l'insieme dei

valori di input è il dominio della funzione di soglia.

Le reti neurali ad un solo

ingresso e con un solo output possono essere rappresentate su

di

un grafico cartesiano Oxy.

essere rappresentate su di un grafico cartesiano Oxy. Peso = +1 ; Bias = 0 Peso

Peso = +1 ; Bias = 0

su di un grafico cartesiano Oxy. Peso = +1 ; Bias = 0 Peso = ­1.75

Peso = ­1.75 ; Bias = 0

Oxy. Peso = +1 ; Bias = 0 Peso = ­1.75 ; Bias = 0 Peso

Peso = +8.5 ; Bias = 0

; Bias = 0 Peso = ­1.75 ; Bias = 0 Peso = +8.5 ; Bias

Peso = +2; Bias = ­4

; Bias = 0 Peso = +8.5 ; Bias = 0 Peso = +2; Bias =

4 Si ottiene una traslazione lungo l'asse delle x per quanto riguarda una funzione a gradino.

Reti Neurali ­ 5

Una rete neurale ad uno strato con un solo input e un solo output Immaginando una composizione 5 di funzioni differenti si possono ottenere funzioni con grafici molto diversi modificando i pesi delle singole funzioni.

 
   
 

Fig 4: i(x1,x2,x3) = h(x1) g(x2) f(x3) ; Da notare è il grafico di i(x) [rosso].

 
 

Fig 5: Il verso delle frecce indica il verso di scorrimento dell'informazione.

Questo esempio mostra come la combinazione di più funzioni possa dar luogo a funzioni diverse. Inoltre spiega tramite l'esempio come sia possibile ottenere funzioni matematiche diverse con la medesima rete neurale. Le reti neurali sono in grado, sfruttando l'algoritmo di backpropagation di modificare i pesi dei singoli neuroni in modo da giungere alla funzione presentata come esempio. Oppure, nel caso in cui non sia data una funzione, di dedurne una dagli insiemi di valori dati.

Una rete è composta da più neuroni collegati tra di loro in modo tale da individuare almeno 3 livelli:

Neuroni di Input: questi neuroni ricevono i dati dall'ambiente

Neuroni Nascosti: uno o più livelli di neuroni nascosti collegati tra di loro; nelle reti neurali

5 Composizione di funzioni; Da Wikipedia, l'enciclopedia libera.

In matematica, la composizione di funzioni è l'applicazione di una funzione al risultato di un'altra funzione. Pi ù precisamente, una funzione f tra due insiemi X e Y trasforma ogni elemento di X in uno di Y: in presenza di un'altra funzione g che trasforma ogni elemento di Y in un elemento di un altro insieme Z, si definisce la composizione di f e

g come la funzione che trasforma ogni elemento di X in uno di Z usando prima f e poi g. Per esempio: siano f(x) = 2x e g(x) = x 2 , k(x): f(x) g(x) oppure f(g(x) è k(x) = 2x 2

Reti Neurali ­ 6

più semplici è presente un solo livello di neuroni nascosi, come in Fig 6.

Neuroni di Output: ultimo passaggio della elaborazione, restituiscono i dati ricevuti. Le informazioni scorrono in una direzione: dallo strato di ingresso, passando per quelli nascosti, si giunge al calcolo degli output nel terzo strato.

Analisi del sistema di apprendimento di una rete neurale Una premessa al processo di apprendimento. Una fase importante nello sviluppo di un sistema basato sulle reti neurali è il pre­processing dei dati raccolti. I parametri reali che costituiranno l'input della rete neurali dovranno essere convertiti in numeri per poter essere elaborati. Per esempio un suono andr à convertito in bande di frequenza, un'immagine nei valori numerici dei propri pixel.

un'immagine nei valori numerici dei propri pixel. Fig 6: una semplice rete neurale con 2 neuroni

Fig 6: una semplice rete neurale con 2 neuroni di Input, 4 neuroni

Nascosti e 1 neurone di Output.

Dopo essere stata inizializzata con dei pesi casuali, una rete neurale deve subire un procedimento chiamato apprendimento (o anche addestramento): i pesi dei singoli neuroni vengono modificati in modo da approssimare la risposta della rete neurale ai valori di output noti. I

valori di input sono passati ai neuroni dello strato di ingresso, l'output ottenuto dalla rete è confrontato con gli output noti, si calcola l'errore commesso e utilizzando l'algoritmo di retropropagazione dell'errore (error backpropagation ) si modificano i pesi dei neuroni procedendo nel verso opposto a quello seguito per il calcolo degli output. Quest'ultima procedura, denominata nel suo complesso epoca, è ripetuta diverse volte (10 6 ­ 10 9 volte o più ) per migliorare sempre pi ù i pesi delle connessioni dei neuroni. Si dice che una rete abbia eseguito un addestramento di N epoche.

Potremmo dire che la rete neurale «impara dall'esperienza commettendo errori» in quanto dalla presentazione degli stessi valori, tra i quali si presuppone l'esistenza di una relazione, «riconosce» quella funzione che sar à memorizzata nei pesi delle connessioni dei singoli neuroni. Ripetendo pi ù volte il confronto con gli insiemi input­output corretti acquista «esperienza», gli errori compiuti vengono corretti di epoca in epoca.

Le reti neurali possono approssimare funzioni matematiche ma anche trovare relazioni e fornire un modello non studiabile delle relazioni tra input e output. Una rete neurale a singolo livello, ci si riferisce al numero di livelli nascosti, è in grado di apprendere qualsiasi funzione continua, mentre sono necessari almeno due livelli nascosti, rete multistrato, per riprodurre delle funzioni discontinue. 6 Le reti neurali vengo utilizzate per realizzare dei modelli che permettano di calcolare con una certa accuratezza i risultati di una funzione anche al di fuori dei valori di addestramento. Il paragone con una funzione matematica deve considerare funzioni con pi ù di una incognita, in quanto, una rete neurale pu ò avere una elevato numero di neuroni di input. Il numero considerevole di variabili aumenta la complessit à delle relazioni matematiche da elaborare e fa si che le reti neurali, sebbene non permettano di studiare un modello, possono fornire una previsione del comportamento del fenomeno studiato.

6 Da: http://automatica.ing.unibs.it/mco/cgsa/neurali/reti_neurali.htm «Un uno strato sufficientemente grande di unit à nascoste si pu ò rappresentare qualsiasi funzione continua degli ingressi. Con due strati si possono rappresentare anche funzioni discontinue.»

Reti Neurali ­ 7

Un esempio: immaginiamo di aver registrato per diversi mesi l'andamento del meteo in una certa località. Sono stati raccolti dati riguardanti la pressione atmosferica, la temperatura e l'umidit à dell'aria, velocit à e direzione del vento, la quantità ed i tipo di precipitazioni e l'ora del rilevamento dei dati. E' possibile realizzare una rete neurale, che considerando come input i valori rilevati ad una certa ora della giornata di oggi, restituisca il tipo di precipitazione nelle prossime 12 h oppure la temperatura nei giorni successivi. In questo esempio la rete neurale, confrontandosi con lo storico del meteo in quest'area, viene addestrata ad «approssimare» quella funzione, relazione, che non si riesce ad esprimere matematicamente, fornendo una previsione del fenomeno. 7

Paradigmi di apprendimento

Vi sono tre grandi paradigmi di apprendimento, ciascuno corrispondente ad un particolare compito

astratto di apprendimento. Si tratta dell'apprendimento supervisionato, apprendimento non supervisionato e l'apprendimento per rinforzo. Di solito un tipo di architettura di rete pu ò essere impiegato in qualsiasi di tali compiti. L'apprendimento precedente è un apprendimento supervisionato in quanto è presente un insieme di valori di input ed il corrispettivo output. L'obiettivo finale dell'apprendimento supervisionato è la previsione del valore dell'uscita per ogni valore valido dell'ingresso, basandosi soltanto su un numero limitato di esempi di corrispondenza (vale a dire, coppie di valori input­output). Per fare ciò , la rete deve essere infine dotata di un'adeguata capacit à di generalizzazione, con riferimento a casi ad essa ignoti.

Autoapprendimento Riporto qui un passaggio di un articolo dal quale emerge chiaramente la differenza tra le comuni intelligenze artificiali e le reti neurali, l'autoapprendimento.

«Quali sono le caratteristiche pi ù interessanti che i sistemi neurali esibiscono rispetto a modelli

di simulazione di tipo tradizionale?

Mentre l'intelligenza artificiale tradizionale cerca di riprodurre le capacit à degli esseri umani

in termini di simboli e regole per manipolare questi simboli, le reti neurali sono invece modelli

ispirati alle caratteristiche fisiche del corpo, in particolare del sistema nervoso. Una differenza

cruciale, per esempio, consiste nel fatto che un sistema di intelligenza artificiale in genere non apprende, perch é è previamente programmato. Al contrario, è tipico delle reti neurali e, in genere, di tutti i sistemi che si ispirano alle caratteristiche degli organismi biologici, che le capacit à di tali sistemi sono frutto di un apprendimento autonomo, spontaneo, avvenuto all'interno del sistema. C' è , quindi, una forma di auto organizzazione, di auto apprendimento autonoma, che non esiste nei sistemi tradizionali . Questo pu ò essere un vantaggio nel senso che per certi problemi non

si ha idea di come programmare il computer in modo che possa risolverli. Queste forme di

autoapprendimento, invece, fanno s ì che lo stesso sistema trovi da solo le soluzioni pi ù interessanti a cui noi non avremmo pensato se avessimo dovuto programmarlo.» 8

(Domenico Parisi)

La differenza tra le reti neurali e le normali intelligenze artificiali consiste nella diversa

progettazione: mentre i sistemi esperti si basano sulla logica umana, le reti neurali si fondano sulla struttura del cervello umano. Questa notevole differenza è causa del grande potenziale e dell'imprevidibilit à delle reti neurali: cosi come possono fornire soluzioni laddove non si riesca a descrivere un algoritmo, pu ò risultare difficile la predisposizione di algoritmi di apprendimento efficaci per una determinata situazione. La loro complessit à rende difficile determinare cosa una

7 Un approfondimento pu ò essere trovato alla pagina web:

http://digilander.libero.it/vvillas/reti_neurali/reti_neurali_e_previsioni_del_te.htm

8 Da http://www.mediamente.rai.it/biblioteca/biblio.asp?id=449&tab=int

Reti Neurali ­ 8

rete possa o meno dal punto di vista matematico. La ricerca sulle reti neurali è ancora aperta.

Utilizzi ed Esempi

Neuraleng ® 9 è una azienda che si presenta cosi «La Neural Engeneering S.p.a è una società specializzata in alta tecnologia che opera soprattutto nella ricerca in materia di applicazioni di intelligenza artificiale e nella progettazione di dispositivi elettronici basati su reti neurali » Altri esempi di utilizzi:

Elaborazione di segnali

Controllo

Riconoscimento di schemi grafici

Classificazione di immagini

Medicina

Riconoscimento e produzione del parlato

Predizioni Finanziarie

Simulazioni

Caratteristiche della rete neurale multistrato: 1 neurone di input, 2 strati nascosti composti da 6 neuroni il primo e da 8 il secondo, 1 neurone di output.

Analizzando i pesi delle connessioni dei singoli neuroni e conoscendo il tipo di funzione di soglia e gli estremi dei collegamenti tra i neuroni, è stato possibile ricostruire la funzione approssimata di ogni neurone e la funzione risultante dalla composizione delle singole funzioni.

I valori dei pesi nella simulazione sono numeri con 10 cifre decimali, per comodit à sono stati approssimati a 2­3 cifre significative.

Questa simulazione mostra come una rete neurale “interpoli” i dati costruendo una funzione.

Le funzioni ricostruite dalla simulazione.

una funzione. Le funzioni ricostruite dalla simulazione. Fig 7: Rete neurale con due strati nascosti. Ciascun

Fig 7: Rete neurale con due strati nascosti. Ciascun neurone dello strato azzurro è connesso a tutti i neuroni dello strato successivo.

f(x) = 1/(1+e^( x)) la funzione di soglia

m(x) = f(1.7g(x)+0.7h(x) 10.1i(x) 2.8j(x)+8.1k(x) 3.6 l(x) 3.0 )

g(x) = f(5.6x+0.9)

n(x) = f(0.1g(x) 0.04h(x)+0.4 i(x) 0.9j(x) 0.9k(x) 0.5l(x) 0.96)

h(x) = f(2.3x+0.2)

o(x) = f(1.6g(x) 1.0h(x)+2.2i(x)+0.53j(x)+7.6k(x)+0.35l(x) 1.12)

i(x) = f(14.7x 11.3)

p(x) = f(3.6g(x)2.8h(x)+3.9i(x) 1.1j(x) 3.3k(x)+6.3l(x) 4.5)

j(x) = f(3.0x 0.5)

q(x) = f(0.96g(x)0.37h(x)+1.8i(x) 0.34j(x)0.29k(x)0.22l(x)1.3)

k(x) = f(15.5x 8.2)

r(x) = f(+0.57g(x) 0.25h(x)6.6i(x) 3.0j(x)+5.1k(x) 2.8l(x) 3.9)

l(x) = f(6.1x 5.5)

s(x) = f( 4.7g(x)1.8h(x)+3.2i(x)+2.5j(x) 2.2k(x)+2.9l(x) 0.31)

t(x) = f( 0.42g(x) 0.035h(x)+0.23i(x) 0.79j(x)+0.84k(x)+0.12l(x) 1.75)

u(x) = f(6.9m(x) 0.23n(x) 6.4o(x)+7.4p(x)+0.074q(x)+5.8r(x)+5.4s(x)+0.41t(x)+0.19)

9 NeuralEng ® : http://www.neuraleng.com/

Reti Neurali ­ 9

Fig 8: Il risultato della simulazione I pallini blu rappresentano i punti utilizzati per l'addestramento

Fig 8: Il risultato della simulazione

I pallini blu rappresentano i punti utilizzati per l'addestramento della rete neurale. La curva verde rappresenta l'output della rete neurale per tutti i valori di input possibili.

Sotto: la funzione ricostruita basandosi su quelle raccolte dal risultato della simulazione.

su quelle raccolte dal risultato della simulazione. Fig 9: La funzione costruita utilizzando i risultati della

Fig 9: La funzione costruita utilizzando i risultati della simulazione

Reti Neurali ­ 10

Modelli matematici

Le reti neurali possono essere considerate dei modelli da due punti di vista: un modello dei processi biologici che sono alla base della capacit à umana di pensare ed elaborare informazioni oppure un modello di fenomeni dei quali, causa la loro complessit à, non si riesce a fornire una descrizione matematica. Nel secondo caso le reti neurali offrono, a sacrificio di uno studio matematico, una certa prevedibilità del fenomeno grazie all'elaborazione di una simulazione.

Un modello matematico utilizza il linguaggio ed il formalismo propri della matematica per esprimere le relazioni tra le grandezze considerate.

Mod èllo: Nel linguaggio scientifico, costruzione schematica, puramente ipotetica o realizzata materialmente, di origine anche intuitiva, con cui viene rappresentato globalmente o soltanto in parte l'oggetto di una ricerca. 10

«le scienze non cercano di spiegare, a mala pena tentano di interpretare, ma fanno soprattutto dei modelli. Per modello si intende un costrutto matematico che, con aggiunta di certe interpretazioni verbali, descrive dei fenomeni osservati. La giustificazione di un costrutto matematico del genere è soltanto e precisamente che ci si spetta che funzioni – cio è descriva correttamente i fenomeni di un'area ragionevolmente ampia. Inoltre, esso deve soddisfare certi criteri estetici – cio è in relazione con la quantit à di descrizione che fornisce, deve essere piuttosto semplice.» (John von Neumann, Opere, vol.6, pag. 492) 11

Un modello, anche un modello matematico, ha due funzioni principali: una funzione esplicativa ed una funzione utilitaristica. Come afferma Neumann, un modello esprime il tentativo di fornire una descrizione della realt à, dell'«intima essenza dei fenomeni»(Giorgio Israel), mantenendo il modello quanto pi ù semplice possibile. Ma al tempo stesso deve essere utile in quanto possa fornire una qualche capacità di intervento sull'oggetto del modello stesso, che si traduce immediatamente in capacità di previsione delle risposte dell'oggetto alle possibili modifiche attuate dall'uomo.

La rappresentativit à della realtà da parte di un modello, in particolare un modello matematico, venne messa in crisi da molteplici avvenimenti verso la fine dell'Ottocento: prima una crisi del programma meccanicista (H.Poincar è) in seguito dei fondamenti della matematica stessa (K.

G ö del).

“Un modello è sempre una semplificazione, una sorta di idealizzazione di ci ò che si intende modellare.”

(J. Weizenbaum, op. cit.)

Con la crisi della matematica e della fisica, che diedero il via, tra le molte, alla teoria del caos, la matematica abbandon ò lo stretto legame con la fisica e si assistette ad una sua rapida diffusione in molti ambiti di ricerca come base per la modellizzazione. Nasce la «visione applicativa della matematica centrata attorno alla nozione di modello»(G. Israel).

Le reti neurali in quanto modello matematico di un fenomeno non possiedono quella

10 Fonte:www.treccani.it – Enciclopedia – voce “modello”

11 Fonte: Immagini matematiche della realt à di Giorgio Israel; LE SCIENZE – quaderni, numero 81, Dicembre 1994

Reti Neurali ­ 11

caratteristica funzione esplicativa­descrittiva della realt à che appartiene, invece, ad un modello fisico. Rimane, quindi, la capacit à di previsione del modello che una rete neurale ha costituito durante l'addestramento. Questa funzione, a scapito di una nobile indagine speculativa, fornisce numerose applicazioni in ambito pratico.

modelli matematici Nella scienza e nella tecnica, si fa largo uso di m. matematici: si ricorre al formalismo e alle relazioni matematiche per descrivere in forma semplificata e controllabile i fenomeni che caratterizzano un sistema in genere complesso. Per es., in biologia le equazioni che descrivono la relazione preda­predatore tra due popolazioni animali (equazioni di Volterra). Molto spesso i m. matematici vengono implementati al calcolatore (modellistica numerica). Lo sviluppo dei m. matematici si compie nelle tre fasi successive della formulazione, calibrazione e validazione, spesso reiterate fino al raggiungimento di un risultato soddisfacente. La formulazione consiste nella scelta delle variabili, nella conversione in termini matematici dei processi considerati, attraverso equazioni, disequazioni o formule di altro tipo, e nella selezione dei parametri e delle scale spazio­temporali pi ù appropriate. La calibrazione del m. viene effettuata facendo variare uno o pi ù parametri e analizzando la risposta del m., fino a ottenere un funzionamento realistico. La validazione, infine, è la procedura mediante la quale si verifica se un m. riesce a riprodurre con sufficiente accuratezza il funzionamento del sistema reale. 12

La definizione di modello matematico fornita dall'enciclopedia Treccani si adatta bene alle reti neurali per quanto riguarda i processi che portano allo sviluppo di un modello matematico:

formulazione, calibrazione e validazione. La formulazione pu ò essere paragonata alla costruzione informatica, la programmazione, della rete neurale; calibrazione e validazione sono procedure simili

al processo di addestramento della rete che tramite calibrazioni e validazioni successive approssima

un comportamento realistico.

Intelligenza artificiale

Le reti neurali sono considerate intelligenze artificiali in quanto sono in grado di eseguire alcuni compiti dell'intelligenza umana. Questa è il progetto dell'intelligenza artificiale: la realizzazione di una macchina con le stesse capacit à umane superiori. Le reti neurali basandosi sulla struttura del cervello umano hanno rivelato capacit à superiori ai sistemi basati su intelligenze artificiali di tipo diverso.

La stanza cinese

Gli entusiasmi dei primi ricercatori del campo dell'intelligenza artificiale riguardavano la possibilit à

di realizzare macchine in grado di pensare, riflettere, persino in grado di provare emozioni, in breve

desideravano creare macchine umane. I primi progetti portarono alla realizzazione di macchine non distinguibili da interlocutori umani 13 . Queste evidenze fecero sorgere la domanda sull'effettiva capacit à di comprendere e pensare di un sistema opportunamente programmato.

12 Fonte: www.treccani.it – Enciclopedia – voce “modello”

13 Si pensi al testi di Turing che venne superato dal programma ELIZA, un programma evidentemente non pensante.

Reti Neurali ­ 12

Gedankenexperiment, [

eseguito in una situazione immaginaria perch é non ottenibile con i mezzi di cui si dispone, ma con parametri e grandezze rigorosamente definiti, per saggiare un principio o una legge scientifici in casi limite o in un nuovo conte­ sto;[ ]

Enciclopedia Treccani

mentale, quello

]e.

John Searle (1984) propose un gedankenexperiment in cui un uomo che si trovasse all'interno di una stanza dovesse dialogare con l'esterno tramite lo scambio di fogli scritti. Questo è il famoso esperimento mentale della stanza cinese. L'individuo scelto è totalmente ignorante di cinese e viene addestrato a manipolare i simboli cinesi tramite delle procedure pervenute dall'esterno che egli è in grado di comprendere. A questo punto gli vengono inviate dei testi in cinese

come dati su cui elaborare: finita l'elaborazione restituisce all'esterno un testo scritto con simboli cinesi. Il testo cinese trasmesso all'uomo è

una favola per i suoi redattori, la risposta ricevuta, cosi come è compresa dall'esterno, mette in evidenza una comprensione della favola stessa: l'uomo all'interno comprende le favole cinesi. Questa conclusione è errata come dimostra Searle: la procedura di trattamento comporta una elaborazione formale dei simboli cinesi (vi è solo grammatica, non sintassi) che non implica l'acquisizione di alcuna comprensione del cinese da parte dell'elaboratore. In questo esperimento l'uomo posto all'interno della stanza che riceve le istruzioni rappresenta il processore di un computer in cui è stato istanziato un

programma: il linguaggio macchina è conosciuto dal processore, che non comprende i simboli che manipoler à.

John Rogers Searle (born July 31, 1932 in Denver, Colorado) is an American philosopher and currently the Slusser Pro­ fessor of Philosophy at the University of California, Berkeley. Searle began his col­ lege education at the University of Wis­ consin, and subsequently became a Rhodes Scholar at Oxford University where he earned an undergraduate degree and a doctorate in philosophy and Ethics. Widely noted for his contributions to the philosophy of language, philosophy of mind and social philosophy, he began teaching at Berkeley in 1959, where, among his many distinctions, he was the first tenured profes­ sor to join the Free Speech Movement. He received the Jean Nicod Prize in 2000, and the National Humanities Medal in 2004.

Fonte: en.wikipedia.org http://en.wikipedia.org/wiki/John_Searle

Prize in 2000, and the National Humanities Medal in 2004. Fonte: en.wikipedia.org http://en.wikipedia.org/wiki/John_Searle

“[

perchè le proprietà formali non sono di per s é costitutive di intenzionalit à[

(J. Searle, Menti, cervelli e programmi)

]nessun

modello puramente formale sar à mai sufficiente in s é per l'intenzionalit à,

]”

La confutazione di Searle presuppone l'elaborazione di simboli come metodo per far apprendere una macchina, simboli ad essa incomprensibili. In maniera diversa, le reti neurali hanno la particolare caratteristica di trattare numeri con il linguaggio logico­matematico. I segni e i simboli hanno un valore per il sistema in quanto comportano dei mutamenti della struttura della rete neurale.

“Le reti neurali rappresentano una delle poche tecnologie collegate all'intelligenza artificiale che abbia un fondamento matematico rigoroso e che si basi sulla manipolazione di numeri e non di simboli. Ciò consente l'uso di matematica anche

piuttosto sofisticata[

certo numero di problemi: la base è una solida teoria matematica che giustifica le prestazioni e dimostra, non solo sperimentalmente, la capacit à delle reti neurali di risolvere problemi complessi.”

(Fabio Canegalli, Reti neurali e modelli previsionali)

].

Non si tratta quindi di un metodo euristico per risolvere un

Questa caratteristica delle reti neurali potrebbe dar luogo a forme di comunicazione elementare tra

Reti Neurali ­ 13

sistemi strutturati sul modello di una stessa rete neurale. 14

Nel suo saggio Searle termina con alcune conclusioni generali riguardanti la simulazione di capacit à umane da parte di una macchina. E' un errore confondere la simulazione con la duplicazione di una attività: da una simulazione si ottiene quanto le viene formalmente detto sulla trasformazione di un input in un corrispettivo output.

“Per quale motivo uno dovrebbe supporre che la simulazione da parte di un computer

della comprensione effettivamente produca comprensione?[

quello di cui si ha bisogno è il giusto input o output e un programma che trasformi il precedente input nel seguente output. Confondere la simulazione con la duplicazione è

il risultato dello stesso sbaglio[

la simulazione, tutto

]Per

]”

(J. Searle, op. cit.)

Il modello matematico del tessuto nervoso biologico è la base di questo passaggio dai simboli ai numeri che potrebbe aumentare le possibilit à dell'intelligenza artificiale delle reti neurali.

“Copiando la struttura "fisica" dovrebbero seguire anche quelle propriet à "biologiche" che nessuna macchina è mai riuscita a riprodurre.”

(Fabio Canegalli, op. cit.)

Joseph Weizenbaum (Berlin, Janu­ ary 8, 1923 – March 5, 2008) was a German­American author and profes­ sor emeritus of computer science at MIT. His influential 1976 book Computer Power and Human Reason displays his ambivalence towards computer technology and lays out his case:

while Artificial Intelligence may be possible, we should never allow com­ puters to make important decisions because computer will al­ ways lack human qualities such as compassion and wisdom. Weizenbaum makes the crucial distinction between deciding and choosing. Deciding is a computational activity, something that can ultimately be programmed. It is the capacity to choose that ultimately makes us human. Choice, however, is the product of judgment, not calculation. Comprehensive hu­ man judgment is able to include non­mathematical factors such as emotions. Judgment can compare apples and oranges, and can do so without quantifying each fruit type and then re­ ductively quantifying each to factors necessary for compari­ son.

Fonte: en.wikipedia.org http://en.wikipedia.org/wiki/Joseph_Weizenbaum

each to factors necessary for compari­ son. Fonte: en.wikipedia.org http://en.wikipedia.org/wiki/Joseph_Weizenbaum

Joseph Weizenbaum J. Weizenbaum fu una voce autonoma e contrastante nelle prime fasi dello sviluppo dell'intelligenza artificiale. La sua riflessione porta in primo piano i rapporti tra l'uomo ed il computer, mette alla luce pericolosi entusiasmi ridimensionando l'idea di computer e difendendo le capacit à superiori dell'uomo. L'esperienza acquisita dalle reazioni entusiastiche delle persone nei confronti delle macchine, in particolare il suo progetto, ELIZA 15 , lo indusse a riflettere sul potere dei computer e sulla mente umana.

La prima critica è destinata a quelle ricerche volte alla meccanizzazione delle attivit à superiori dell'uomo che spesso si traducono nella schematizzazione e impoverimento dell'idea di intelligenza umana. Il computer deve essere ritenuto uno strumento, senza che, cosi facendo, ne siano ridimensionati potere e ruolo. Il suo potere è lo stesso di tutti

i sistemi che si autoconvalidano. Le ideologie scientiste che portano a considerare ogni aspetto della realt à come modellizzabile matematicamente sono molto vicine alla convinzione che «la vita non sia che un programma che va

14 Un approfondimento: Sara Mitri, Dario Floreano, and Laurent Keller , The evolution of information suppression in

communicating robots with conflicting interests

15 ELIZA è stato in sistema in grado di simulare uno terapeuta Rogersiano

Reti Neurali ­ 14

su un enorme computer». Questa è l'idea dei programmatori megalomani su cui Weizenbaum scaglia numerosi rimproveri. L'invito è quello a mantenere la capacit à critica in quei versanti dove è più facile cadere preda degli entusiasmi per le meraviglie del progresso tecnologico.

entusiasmi per le meraviglie del progresso tecnologico. in progress ”: gli argomenti elencati sono quelli che

in progress”: gli

argomenti elencati sono quelli che aprono l'orizzon- te di questa tesina, che pos- sono costituirne un prose- guimento su altre dirama- zioni. Sono gli argomenti in cui mi sono imbattuto durante la ricerca del mate- riale e non sono stati appro- fonditi.

Work

Work in progress 16

Reti neurali e sistemi complessi: Squashing Theory

«La Squashing Theory (Teoria della Spremuta) é una teoria per la previsione del comportamento dei sistemi complessi:

soggetti umani, processi sociali, dinamiche caotiche, etc… Il fondamento della teoria é un concetto di Squashing: ogni sistema complesso é il risultato di una architettura a 4 dimensioni spaziali in un mondo a 3 dimensioni. »

Roboetica «Potremmo definire la roboetica quella parte dell'etica che si occupa delle problematiche legate ai robot e alla loro interazione con l’uomo, gli animali, la società, la natura ed il mondo in generale»

Evoluzione cooperativa

Reti neurali e algoritmi genetici

Reti neurali e teoria dei giochi

Reti neurali e fuzzy logic

Alberto

«La logica fuzzy o logica sfumata o logica sfocata è una logica in cui si pu ò attribuire a ciascuna proposizione un grado di verit à compreso tra 0 e 1. È una logica polivalente, e pertanto un'estensione della logica booleana. È fortemente legata alla teoria degli insiemi sfocati e, gi à intuita da Cartesio, Bertrand Russell, Albert Einstein, Werner Karl Heisenberg, Jan Łukasiewicz e Max Black, venne concretizzata da Lotfi Zadeh.»

16 Le seguenti descrizioni sono state riprese o da wikipedia.org o da altri siti.

Reti Neurali ­ 15

Bibliografia:

Alberghina L. e Tonini F. (2002), Biologia: Dall'evoluzione biologica all'evoluzione culturale dell'uomo, Milano, Arnoldo Mondadori Scuola

Beccari M., Romano U., “Modellistica matematica e analisi dei sistemi”, in Enciclopedia degli idrocarburi, risorsa web reperita su www.treccani.it, pp. 469­484.

Canegalli, Fabio (1997), Reti neurali e modelli previsionali: Apprendere dall'esperienza come i sistemi complessi si semplificano in comportamenti a rischio per prevenirne l'occorrenza, Psycomedia, <http://www.psychomedia.it/pm/science/complex/caneg1a.htm>, 14 Settembre 1997

Hinton, Geoffrey E., Reti artificiali e apprendimento, in Intelligenza artificiale, Rimini, Le Scienze, pp. 46­59.

Israel, Giorgio (1994), “Immagini matematiche della realt à ”, in Le Scienze Quaderni, dicembre 1994, numero 81, pp­ 3­16.

McCulloch W.S. e Pitts W. (1943), "A logical calculus of the ideas immanent in nervous activity ",

Searle, John R. (1984), Menti, cervelli e programmi , in Un dibattito sull'intelligenza artificiale, a cura di Graziella Tonfoni, Milano, Clup­Clued, pp. 43­72.

Wizenbaum, Joseph (1984), Il potere del computer e la ragione umana, Torino, Edizioni Gruppo Abele.

Sitografia:

www.treccani.it

www.wikipedia.org

http://punto­informatico.it/95237/PI/News/reti­neurali­principali­applicazioni­pratiche.aspx

Software:

L'intero progetto è stato realizzato sul sistema operativo OpenSource Ubuntu Linux v. 10.04 “Lucid Lynx”.

Le simulazioni sono state realizzate con il linguaggio di programmazione python (www.python.org). In particolare è stata utilizzata la libreria matplotlib per le interfacce delle simulazioni (http://matplotlib.sourceforge.net/).

I grafici delle funzioni sono stati eseguiti con KmPlot (http://edu.kde.org/kmplot/).

stati eseguiti con KmPlot (http://edu.kde.org/kmplot/). p.s.: Ringrazio tutti quelli che mi hanno dato consigli e
stati eseguiti con KmPlot (http://edu.kde.org/kmplot/). p.s.: Ringrazio tutti quelli che mi hanno dato consigli e

p.s.: Ringrazio tutti quelli che mi hanno dato consigli e dritte. E mio fratello Andrea per le correzioni.

tutti quelli che mi hanno dato consigli e dritte. E mio fratello Andrea per le correzioni.

Alberto

Reti Neurali ­ 16