Reti Neurali
Reti Neurali
Classe V C a.s. 200910
Liceo Scientifico “F. Enriques”
Reti Neurali
"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 comprenderepensare 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 «La definizione vera e propria, secondo la tradizione
traduce in una comparazione tra uomo e aristotelica (d. per genere prossimo e differenza specifica),
macchina, spesso l'uomo viene ridotto ad un è quella che individua una più vasta classe di enti (genere
“elaboratore di informazioni” (Weizenbaum) , se prossimo) entro la quale si trova la sottoclasse degli
ne considera solo un aspetto, e l'intelligenza oggetti da definire, rilevando poi la o le restanti
caratteristiche peculiari dell’oggetto che si vuole definire
diviene un parametro misurabile
(differenza specifica): per es. «l’uomo è un animale
quantitativamente. Da un altro punto di vista l'IA [genere prossimo] razionale [differenza specifica]»
studia, tramite la realizzazione di simulazioni Enciclopedia Treccani
sempre più complesse, la capacità umana di Le reti neurali saranno quindi «intelligenze artificiali
pensare e formulare pensieri. In questo ambito, il strutturate come insieme di neuroni interconnessi e
progredire degli studi fisiologici sul sistema comunicanti tra di loro, modello della struttura del
neurale consente di approfondire sia la cognizione cervello animale».
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 robotIA. 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
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 ricercatori1.
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 “tuttionessuno” 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.
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.
Fig 1: Il modello di un neurone.
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
Fig 2: Trasmissione di un treno di due impulsi lungo
fino al raggiungimento del valore del potenziale l'assone. Si noti la variazione del potenziale
d'azione. L'alterazione del potenziale si propaga lungo transmembrana.
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.
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
Fig 3: Schema della struttura di un neurone artificiale.
trasmessi valori di qualunque grandezza.
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 diverse3:
1
funzione a gradino
(nel grafico t=0)
gradino t x = {
1
0
xt
altrimenti
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
1
funzione segno
sign x = {
1 x≥0
−1 altrimenti
-1
1 1/2
funzione sigmoide sigmoide x =
1e−x
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 significativo4, e di modificare i
pesi della connessione di ingresso. Osserviamo come si modifica la funzione soglia del neurone.
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 Peso = +1 ; Bias = 0 Peso = +8.5 ; Bias = 0
possono essere rappresentate su
di un grafico cartesiano Oxy.
Peso = 1.75 ; Bias = 0 Peso = +2; Bias = 4
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 composizione5 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) = x2, k(x): f(x) ∘ g(x) oppure f(g(x) è k(x) = 2x2
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 preprocessing 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.
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 Fig 6: una semplice rete neurale con
da approssimare la risposta della rete neurale ai valori di output noti. I 2 neuroni di Input, 4 neuroni
valori di input sono passati ai neuroni dello strato di ingresso, l'output Nascosti e 1 neurone di 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 (106 109 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 inputoutput 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 inputoutput). 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 23 cifre Fig 7: Rete neurale con due strati nascosti.
significative. Ciascun neurone dello strato azzurro è
connesso a tutti i neuroni dello strato
Questa simulazione mostra come una rete neurale “interpoli” i successivo.
dati costruendo una funzione.
Le funzioni ricostruite dalla simulazione.
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
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.
Fig 8: Il risultato della simulazione
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 esplicativadescrittiva 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 predapredatore 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 spaziotemporali 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 umani13. 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, [...]e. mentale, quello John Searle (1984) propose un gedankenexperiment in
eseguito in una situazione immaginaria perché cui un uomo che si trovasse all'interno di una stanza
non ottenibile con i mezzi di cui si dispone, dovesse dialogare con l'esterno tramite lo scambio di
ma con parametri e grandezze rigorosamente fogli scritti. Questo è il famoso esperimento mentale
definiti, per saggiare un principio o una legge della stanza cinese. L'individuo scelto è totalmente
scientifici in casi limite o in un nuovo conte ignorante di cinese e viene addestrato a manipolare i
sto;[...] simboli cinesi tramite delle procedure pervenute
dall'esterno che egli è in grado di comprendere. A
Enciclopedia Treccani
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 è
John Rogers Searle (born July 31, 1932
una favola per i suoi redattori, la risposta
in Denver, Colorado) is an American
ricevuta, cosi come è compresa philosopher and currently the Slusser Pro
dall'esterno, mette in evidenza una fessor of Philosophy at the University of
comprensione della favola stessa: l'uomo California, Berkeley. Searle began his col
all'interno comprende le favole cinesi. lege education at the University of Wis
Questa conclusione è errata come dimostra consin, and subsequently became a
Searle: la procedura di trattamento Rhodes Scholar at Oxford University
comporta una elaborazione formale dei where he earned an undergraduate degree
simboli cinesi (vi è solo grammatica, non and a doctorate in philosophy and Ethics.
sintassi) che non implica l'acquisizione di Widely noted for his contributions to the
alcuna comprensione del cinese da parte philosophy of language, philosophy of
mind and social philosophy, he began teaching at Berkeley in 1959,
dell'elaboratore.
where, among his many distinctions, he was the first tenured profes
In questo esperimento l'uomo posto sor to join the Free Speech Movement. He received the Jean Nicod
all'interno della stanza che riceve le Prize in 2000, and the National Humanities Medal in 2004.
istruzioni rappresenta il processore di un
computer in cui è stato istanziato un Fonte: en.wikipedia.org
http://en.wikipedia.org/wiki/John_Searle
programma: il linguaggio macchina è
conosciuto dal processore, che non comprende i simboli che manipolerà.
“[...]nessun modello puramente formale sarà mai sufficiente in sé per l'intenzionalità,
perchè le proprietà formali non sono di per sé costitutive di intenzionalità[...]”
(J. Searle, Menti, cervelli e programmi)
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 logicomatematico. 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[...]. Non si tratta quindi di un metodo euristico per risolvere un
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)
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?[...]Per la simulazione, tutto
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[...]”
(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
Joseph Weizenbaum ary 8, 1923 – March 5, 2008) was a
J. Weizenbaum fu una voce autonoma e GermanAmerican author and profes
contrastante nelle prime fasi dello sviluppo sor emeritus of computer science at
MIT.
dell'intelligenza artificiale. La sua riflessione
His influential 1976 book Computer
porta in primo piano i rapporti tra l'uomo ed il Power and Human Reason displays
computer, mette alla luce pericolosi his ambivalence towards computer
entusiasmi ridimensionando l'idea di technology and lays out his case:
computer e difendendo le capacità superiori while Artificial Intelligence may be
dell'uomo. L'esperienza acquisita dalle possible, we should never allow com
reazioni entusiastiche delle persone nei puters to make important decisions because computer will al
confronti delle macchine, in particolare il suo ways lack human qualities such as compassion and wisdom.
progetto, ELIZA15, lo indusse a riflettere sul Weizenbaum makes the crucial distinction between deciding
potere dei computer e sulla mente umana. 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
La prima critica è destinata a quelle ricerche
the product of judgment, not calculation. Comprehensive hu
volte alla meccanizzazione delle attività man judgment is able to include nonmathematical factors
superiori dell'uomo che spesso si traducono such as emotions. Judgment can compare apples and oranges,
nella schematizzazione e impoverimento and can do so without quantifying each fruit type and then re
dell'idea di intelligenza umana. Il computer ductively quantifying each to factors necessary for compari
deve essere ritenuto uno strumento, senza son.
che, cosi facendo, ne siano ridimensionati Fonte: en.wikipedia.org
potere e ruolo. Il suo potere è lo stesso di tutti http://en.wikipedia.org/wiki/Joseph_Weizenbaum
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.
16
..“Work in progress”: gli
Work in progress argomenti elencati sono
quelli che aprono l'orizzon-
te di questa tesina, che pos-
• Reti neurali e sistemi complessi: Squashing Theory sono costituirne un prose-
«La Squashing Theory (Teoria della Spremuta) é una teoria guimento su altre dirama-
per la previsione del comportamento dei sistemi complessi: zioni. Sono gli argomenti
soggetti umani, processi sociali, dinamiche caotiche, etc… in cui mi sono imbattuto
Il fondamento della teoria é un concetto di Squashing: ogni durante la ricerca del mate-
sistema complesso é il risultato di una architettura a 4 riale e non sono stati appro-
dimensioni spaziali in un mondo a 3 dimensioni. »
fonditi.
• Roboetica
«Potremmo definire la roboetica quella parte dell'etica Alberto
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
«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. 469484.
• 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. 4659.
• Israel, Giorgio (1994), “Immagini matematiche della realtà”, in Le Scienze Quaderni, dicembre
1994, numero 81, pp 316.
• 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, ClupClued, pp. 4372.
• Wizenbaum, Joseph (1984), Il potere del computer e la ragione umana, Torino, Edizioni Gruppo
Abele.
Sitografia:
• www.treccani.it
• www.wikipedia.org
• http://puntoinformatico.it/95237/PI/News/retineuraliprincipaliapplicazionipratiche.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/).
p.s.: Ringrazio tutti quelli che mi hanno dato consigli e dritte.
E mio fratello Andrea per le correzioni.
Alberto
Reti Neurali 16