CAPITOLO UNO
Introduzione alle reti neurali
1.1 Cenni sulla teoria
Gli studi sulle reti neurali nacquero come risposta all’esigenza di avere modelli
matematici che riproducessero alcune delle funzioni e capacità del cervello umano, come
la capacità di apprendere, scarsa precisione associata ad alta elasticità d’interpretazione
dell’input e quindi capacità d’estrapolazione. Quella che è stata denominata elasticità di
interpretazione dell’input viene comunemente chiamata "resistenza al rumore" o
"capacità di comprendere dati rumorosi". Per ottenere questi risultati occorreva
sviluppare dei modelli basati su principi completamente differenti da quelli normalmente
utilizzati nell’AI classica per il trattamento dell’informazione e il supporto alla decisione.
Fu per questi motivi che l’attenzione si spostò verso lo studio delle reti neurali
biologiche, e in particolar modo verso lo studio dei neuroni naturali, con l’intento di
formularne il funzionamento attraverso modelli logico-matematici.
Un neurone è composto da un nucleo contenuto in un corpo cellulare. A questo nucleo
giungono delle terminazioni chiamate “dendriti”, i quali ricevono lo stimolo nervoso da
altri neuroni e lo trasmettono al nucleo, proprio per questo si può pensare ai dendriti
come agli “Input” del neurone stesso. Dal nucleo, inoltre, parte un assone (“l’output”)
che nella parte finale si ramifica e presenta delle sinapsi.
La connessione tra due neuroni si ha tra la sinapsi di uno e i dendriti dell'altro. La figura
1 riassume quanto detto.
2
Fig. 1 Neurone biologico
La propagazione dello stimolo nervoso (ovvero dell’informazione), tra neuroni avviene
secondo le modalità che seguono:
1) Il neurone riceve lo stimolo ionico dai suoi dendriti. Se questo è alto, cioè
raggiunge una certa soglia che è propria di ogni neurone, il neurone si attiva
(“spara”) e trasmette un segnale elettrico (il cosiddetto potenziale d’azione)
sull’assone e da qui si propaga verso altri neuroni.
2) La sinapsi riceve il potenziale d'azione ed, in base alla sua struttura, emette una
certa quantità di neurotrasmettitori che sono in grado di indurre un potenziale
ionico nella dendrite del neurone successivo.
Queste due fasi sono state messe in evidenza poiché sono proprio quelle imitate con le
reti neurali artificiali. Infatti si può pensare in prima approssimazione, che il contenuto
informativo momentaneo del sistema biologico è rappresentato dall’insieme dei valori di
3
attivazione di tutti i neuroni, mentre la memoria (di tipo “associativo”) è rappresentata
dai valori di collegamento (più o meno forte) di tutte le sinapsi.
Lo studio delle reti neurali biologiche porterà alla formulazione del neurone formale
1
.
Esso è costituito, figura 2, da una funzione di attivazione a soglia F(.), la cui uscita H
j
rappresenta l’assone del neurone biologico; mentre l’ingresso è dato dalla somma dei
segnali provenienti da altri neuroni, preventivamente modulati con appositi pesi W
kj
, in
tal modo si formalizza il meccanismo che sottende la trasmissione del potenziale
d’azione tra sinapsi appartenenti ai diversi neuroni d’ingresso e le dendriti del neurone
accettore.
Fig. 2 Modello formale di neurone biologico
1
Frank Rosembalt 1958.
4
Analiticamente, tale modello è rappresentabile dalle seguenti relazioni:
k
n
k
kjJ
HWA *
1
∑
=
=
(1.1)
)(
JJJ
SAFH −=
(1.2)
dove S
j
rappresenta la soglia del neurone j-esimo e la F(⋅) la sua funzione di
“attivazione”. La soglia S
j
può eventualmente essere eliminata aggiungendo un input
fittizio H
0
,detto BIAS,
il cui peso sia W
0j
= S
j
; in tal caso si ottiene, sostituendo la (1.1)
nella (1.2) e ponendo H
0
= - 1, l ’espressione compatta:
)
*(
0
k
n
k
kjJ
HWFH
∑
=
=
(1.3)
Questo modello matematico di neurone artificiale fa da impalcatura a diverse tipologie di
reti neurali che man mano si sono sviluppate.
Una prima classificazione delle diverse reti neurali è data dall’architettura dei
collegamenti: per esempio le reti di Hopfield
2
presentano connessioni bidirezionali tra le
diverse unità, mentre la direzione dell'impulso nella Reti Feedforward (non ricorrente)
è unidirezionale, figura 3, pertanto esse sono una generalizzazione del perceptron di
Rosembalt.
2
Hopfield 1982
5
Fig. 3 Reti Feedforward multistrato
D’ora in poi l’attenzione cadrà su quest’ultimo tipo, poiché questa tipologia di rete si
presta bene alla classificazione di modelli e denota una certa capacità di astrazione: è
abile a classificare bene anche modelli che non ha mai visto.
La rete neurale rappresentata in figura 3, è inoltre una rete multistrato poiché è costituita
da uno strato d’ingresso, uno strato intermedio (strato nascosto), ed uno strato d’uscita,
dove gli strati di ingresso e di uscita sono formati da tanti neuroni quanto sono
rispettivamente gli input e gli output della rete. Si precisa inoltre che sono molto
frequenti modelli di reti feedforward aventi due strati nascosti.
6
Il flow-chart di figura 4 evidenzia il flusso delle operazioni svolte da tale rete.
Fig. 4 Flusso delle operazioni svolte da una rete Feedforward
7
Come avviene per i neuroni biologici, la funzione di attivazione del modello formale
deve soddisfare due condizioni: deve tener conto della soglia di attivazione, e non deve
superare un certo livello di saturazione. Le funzioni di attivazione maggiormente
utilizzate sono le seguenti:
1) Funzione lineare (con saturazione): (1.4)
≤
≤≤
>
=
00
/10
/11
)(
xse
axseax
axse
xF
Fig. 5
2) Funzione sigmoide: )0,(,
1
)( >
+
=
−
bacon
e
a
xF
bx
(1.5)
di cui la logistica
x
e
xF
−
+
=
1
1
)( (1.6)
è un caso particolare.
8
Fig. 6
3) Funzione tangente iperbolica: )tanh()( xxF = (1.7)
Fig. 7
Tali funzioni caratterizzano i neuroni degli strati nascosti, mentre funzioni lineari senza
saturazione, del tipo: CxKxF +⋅=)( (1.8)
sono spesso utilizzati negli strati di ingresso e uscita, con l’obbiettivo di normalizzare i
dati di input all’interno dell’ipercubo di lato unitario.
9
Affinché una rete neurale possa specializzarsi nel risolvere un dato problema, occorre che
questa sia sottoposta alla cosiddetta fase di “apprendimento” in analogia con quanto
avviene per le reti biologiche; tale fase in pratica si risolvere nel modificare
adeguatamente i pesi della rete stessa. Comunque bisogna ricordare che la fase di
apprendimento, diversamente da quanto accade nella mente umana, è nettamente
distinta dalla fase di esecuzione ed, inoltre, la precede.
Adesso sarà illustrato brevemente un algoritmo molto utilizzato per l’addestramento di
reti Feedforward : l’“error back-propagation”.
Tale algoritmo non può essere utilizzato qualora non sia possibile trattare empiricamente
il fenomeno che si vuole simulare: infatti esso richiede la disponibilità di un certo
numero di uscite Y
d
osservate, e dei relativi input X
d
che le hanno determinate, nonché
della possibilità di definire un errore Φ (detto errore fisiologico) che rappresenti la
differenza massima tollerata tra l’output Y
d
atteso, e quello U
d
fornito dalla rete in
relazione agli stessi ingressi X
d.
L’idea che sta alla base del back-propagation è quella di fornire in input alla rete gli
esempi X
d ,
osservarne l’uscita U
d
delle rete, modificandone i pesi fino a quando si ha che
Φ<− ||
dd
UY
(1.9)
Tale algoritmo è esposto in maniera più dettagliata in figura 8, dove si può notare la
presenza di due cicli, uno principale ed uno innestato, quest’ultimo si occupa di fornire
uno ad uno gli ingressi d’esempio alla rete , calcolarne i relativi errori e modificare i pesi
della rete; quello principale, detto anche ciclo delle epoche di apprendimento, ripete
quanto sopra fino a che la 1.9 risulta verificata.
10
Fig. 8 Flow-Chart dell’algoritmo di apprendimento back-propagation
11
In altre parole, poiché la funzione d’errore dipende dai pesi, si tratta di trovare il minimo
di questa in uno spazio n-dimensionale. La tecnica più utilizzata per tale scopo è quella
della “discesa del gradiente”: guardando la figura 9, nella quale viene rappresentato
l’errore relativo all’uscita p-esima in funzione di un particolare peso w
jk
, s’intuisce che
per minimizzare tale errore si debba partire dal punto a, relativo al valore iniziale del
peso in questione, e ci si debba muovere con piccoli spostamenti di segno - opposti al
segno della derivata calcolata in a - finché non si arriva al punto b, dove la derivata si
annulla.
Fig. 9
Tale tecnica presenta due problemi:
1) Tempi di apprendimento elevatissimi: è uno dei motivi per cui nei modelli di reti
neurali disponibili, la fase di apprendimento è distinta da quella di esecuzione.
2) Il minimo raggiunto potrebbe essere relativo, e allo stesso tempo l’errore
commesso maggiore dell’errore accettato (punto c): in tal caso si dice che “la rete
non converge”.
12
Il problema della non convergenza in fase di apprendimento, può dipendere
semplicemente dai valori iniziali dei pesi; ma può dipendere pure dal fatto che il numero
di neuroni non sia sufficiente; ed ancora, il numero di neuroni risulta insufficiente poiché
essi sono stati formalizzati attraverso una data funzione di attivazione, che quindi risulta
inadeguata.
Quest’ultima osservazione, in particolare, trova conferma nei risultati ottenuti da una
tipologia di reti Feedforward, dette “reti neurali adattive”. Brevemente, queste reti hanno
dei neuroni con funzione d’attivazione sigmoidale approssimata attraverso l’utilizzo di
curve polinomiali parametriche dette splines. Questo tipo di reti neurali si differenzia
dalle altre poiché in fase d’apprendimento, oltre ai pesi, vengono modificati i coefficienti
stessi di tali polinomi; ottenendo di fatto una rete i cui neuroni sono formalizzati da una
diversa funzione d’attivazione. I risultati sperimentali hanno dimostrato come tali reti
abbiano prestazioni superiori rispetto ad altre tecniche, pur necessitando di un numero
minore di neuroni.
Finita la fase d’apprendimento, si ottiene un modello matematico con “capacità di
generalizzazione": la rete darà una risposta significativa anche ad un input non previsto
negli esempi praticati durante l'addestramento, la rete non impara ad associare ogni input
ad un output ma impara a riconoscere la relazione che esiste tra input e output per quanto
complessa possa essere: diventa pertanto una "scatola nera" che non svelerà la formula
matematica che correla i dati, ma permetterà di ottenere risposte significative a input di
cui non si hanno ancora verifiche "sul campo" sia all'interno del range di valori di
addestramento (interpolazione), che all'esterno di esso (estrapolazione). Naturalmente
l'estrapolazione è più difficoltosa e imprecisa dell’interpolazione e comunque entrambe
13
danno risultati migliori quanto più è completo ed uniformemente distribuito il set degli
esempi.
Più in concreto è possibile, durante la fase d’apprendimento, specializzare la rete neurale
feedforward come:
1) classificazione di pattern: in questo tipo d’apprendimento l'obiettivo è quello di
classificare in un fissato numero di categorie tutti gli input forniti.
2) previsione: addestrando una rete neurale con successioni storiche dei dati del
fenomeno che si vuole prevedere, è possibile fare delle previsione sull’evoluzione
del fenomeno stesso.
3) operatore funzionale.
E’ utile soffermarci sul terzo punto, poiché esso è in realtà la generalizzazione degli altri
due. Infatti una rete neurale addestrata con n ingressi ed m uscite non è altro che
un’applicazione g(.) che associa ad un vettore
n
RIX ⊆∈ (1.10)
un vettore
m
RY ∈ (1.11)
ossia:
mn
RRIXg →⊆∈: (1.12)
dove I è l’insieme degli ingressi che si vogliono utilizzare nella fase di funzionamento.
Poiché la rete impara, come già accennato, la correlazione esistente tra input e output del
fenomeno che si vuole trattare, si intuisce come la g(.) sia un’approssimazione della
funzione f(.) che descrive esattamente il fenomeno stesso, ma che in generale non è
14
conosciuta. A tal proposito è utile sottolineare che questo errore d’approssimazione, che
chiameremo e
rr,
può essere scomposto in due componenti:
αφ +=
rr
e (1.13)
dove :
• φ, come già visto, è l’errore fisiologico utilizzato nella fase d’apprendimento,
dunque è noto e costante. Man mano che l’input alla rete si avvicina agli input
X
d
d’esempio , l’errore e
rr
tende a φ.
• α è l’errore d’astrazione, esso misura la bontà della nostra rete a trattare con
input lontani da X
d.
Questo tipo d’errore non è noto a priori, ma dipende
fortemente dal numero d’esempi usati durante la fase d’apprendimento e da
come essi siano stati distribuiti, nonché dal numero dei neuroni e della
relativa funzione d’attivazione.
Quanto detto finora ci permette di poter affermare che l’esigenza che spinse alla
formalizzazione di tali modelli, è stata in parte soddisfatta. Scendendo un poco più sul
pratico, sono riportati di seguito alcuni risultati ottenuti con le reti neurali e riportati dalla
letteratura scientifica.
Sono stati realizzati:
1) Sistemi di guida autonoma o assistita.
2) Classificatori di segnali radar con prestazioni maggiori dei sistemi che usano le
tradizionali tecniche Bayesiane.
3) Lettori di caratteri stampati, o anche scritti a mano, con elevati livelli di
accuratezza.
4) Sistemi di riconoscimento vocale.
15