9
Capitolo 1 Lo scenario
1.1 Dalla biologia alla IA
Il modello di riferimento delle reti neurali artificiali sono quelle biologiche. Il sistema nervoso
animale è organizzato in moduli, ciascuno dei quali caratterizzato dalla presenza di tre elementi:
1) fibre nervose: sono i canali di comunicazione che trasportano l’informazione ai neuroni
attraverso le sinapsi posizionate sull’albero dendritico o sul soma dei neuroni
2) neuroni principali: possiedono un lungo assone che trasmette il segnale ad altre regioni
3) neuroni intrinsechi: trasmettono il segnale solamente all’interno del modulo in cui si
trovano.
Un neurone è solitamente formato da un albero dendritico, una soma, un assone ed è
caratterizzato da un alto grado di convergenza e divergenza. Infatti, le informazioni, provenienti
da migliaia di altri neuroni, convergono verso la soma del neurone, il cui assone a sua volta
diverge in migliaia terminazioni che vanno a toccare diversi altri neuroni.
Le sinapsi sono il punto di contatto fra il termine assionico di un neurone ed il ramo dendridico
dell’altro e regolano l’entità ed il tipo di effetto che agisce sul neurone ricevente. Il ruolo di
queste connessioni è molto complesso, esse infatti traducono il segnale elettrico in un segnale
chimico e quindi nuovamente in un segnale elettrico. Vi sono due importanti tipi di sinapsi: le
eccitatorie e le inibitorie. Nonostante quest’ultime ne rappresentino il 16% nella corteccia
SOMA
NUCLEO
DENDRITI
ASSONE
SINAPSI
10
celebrare dei mammiferi, esse svolgono un ruolo importante nella risposta del segnale, grazie
alla loro collocazione strategica e all’effetto relativamente forte sull’attività postsinaptica. In
generale esse svolgono un ruolo di “veto” sul segnale che viaggia verso il soma del neurone
postsinaptico. Solitamente nei modelli artificiali, l’effetto delle sinapsi si traduce nel risultato
di una somma algebrica dei contributi inibitori ed eccitatori.
Le connessioni tra i neuroni sono soggette a continue modifiche, infatti un modo che il cervello
ha per imparare, è aggiungendole o eliminandole. Inoltre, l’efficacia di una sinapsi può variare
in funzione del risultato di una determinata esperienza, fornendo sia la memoria che
l’apprendimento, attraverso l’aumento duraturo dell’efficacia sinaptica (o potenziamento a
lungo termine).
Il cervello umano contiene circa 10 miliardi di neuroni, collegati in media ad altri neuroni
attraverso 10000 sinapsi. La rete centrale forma un massiccio sistema parallelo di elaborazione
delle informazioni. Ciò contrasta con l’architettura dei computer tradizionali, dove un singolo
processore esegue una singola serie di istruzioni. Se prendiamo in considerazione il tempo di
esecuzione per ogni operazione elementare, i neuroni biologici operano tipicamente ad una
velocità massima di 100 Hz, mentre una CPU convenzionale effettua diverse centinaia di
milioni di istruzioni al secondo.
Il cervello, nonostante sia costituito da un “hardware” molto lento, conserva notevoli capacità,
rispetto ai processori artificiali (19):
- può imparare e riorganizzarsi attraverso l’esperienza.
- ha consapevolezza della propria intelligenza.
- esegue calcoli in modo altamente parallelo in modo efficace. Ad esempio, una
complessa percezione visiva si verifica in meno di 100 ms, cioè, 10 fasi di lavorazione.
- le sue prestazioni tendono a peggiorare in caso di danni parziali, mentre la maggior parte
dei programmi sono molto fragili (se si rimuovono alcune parti arbitrarie, molto
probabilmente cesserà di funzionare)
- è possibile un recupero parziale dei danni, se le unità possono imparare ad assumere
funzioni precedentemente svolte da aree danneggiate.
11
1.2 Che cos’è una rete neurale artificiale?
Una Artificial Neural Netwok (ANN) è un modello matematico il cui funzionamento trae
ispirazione dai sistemi nervosi biologici. La rete possiede molte semplici unità e, a seconda del
loro ruolo, si possono suddividere in:
- unità di ingresso (input): che ricevono informazioni dall’ambiente esterno
- unità nascoste (hidden): che comunicano solamente con le unità all’interno della rete
- unità di uscita (output): che emettono risposte all’ambiente esterno
- schema semplificato della struttura di una Rete Neurale -
Ogni unità intende simulare il ruolo di un neurone nelle reti biologiche: per questo motivo esse
vengono definite impropriamente neuroni, nodi o processori.
Ciascun’unità ha il compito di attivarsi se la quantità totale di segnale che riceve, supera la
propria soglia di attivazione. Se un neurone si attiva, emette un segnale che viene trasmesso
lungo i canali di comunicazione fino alle altre unità a cui è collegato; quindi, ogni nodo agisce
come filtro che trasforma il messaggio ricevuto in un segnale inibitorio o eccitatorio,
aumentandone o diminuendone l’intensità a seconda delle proprie caratteristiche individuali.
Questi punti di connessione simulano le sinapsi biologiche, da cui prendono il nome, inoltre
dato che il loro ruolo consiste nel “pesare” l’intensità dei segnali trasmessi, vengono definiti
anche pesi o pesi sinaptici.
unità di input unità di output
unità nascoste
12
Dato che un nodo può ricevere in ingresso segnali da un gran numero di altri nodi e/o recettori
ambientali, ciascun dei quali viene pesato dalla corrispondente connessione sinaptica, anche un
semplice nodo è in grado di esibire comportamenti complessi.
Ciascun neurone elabora solo l’informazione locale, questo significa che si attiva solo in
funzione dell’informazione che riceve attraverso le proprie connessioni di ingresso, ma non
conosce né qual è lo scopo globale della rete, né quali operazioni sono svolte dagli altri nodi.
Inoltre, non è dotato di caselle di memoria ausiliarie, come nel caso del processore dei computer
seriali dove la memoria è composta da diversi elementi distinti e localizzati, ciascuno dei quali
svolge una funzione diversa dall’elemento di elaborazione. Nelle reti neurali, infatti, la memoria
è totalmente distribuita e non richiede l’utilizzo di componenti aggiuntivi poiché è una proprietà
intrinseca del sistema stesso. Le sinapsi rappresentano la “memoria a lungo termine”, invece lo
stato di attivazione temporaneo dei nodi, in risposta ad uno stimolo d’ingresso, viene definito
“memoria a breve termine”.
Una rete impara a fornire le risposte appropriate per ciascun input, gradualmente grazie ad un
gran numero di dati, modificando i valori delle proprie connessioni sinaptiche in base alle regole
di apprendimento. Queste sono ben diverse da quelle dei programmi tradizionali dove l’insieme
di regole rappresenta la soluzione del problema specifico per cui è stato creato il programma,
infatti, la regola delle reti neurali, indica le condizioni locali e le modalità in cui le sinapsi si
modificano a prescindere dal tipo di compito per cui la rete è utilizzata.
Le reti neurali artificiali presentano alcune caratteristiche che si rivelano interessanti in molti
campi di ricerca. Benché molte di queste peculiarità variano da modello a modello, ve ne sono
alcune sufficientemente generali (4):
- Robustezza
Una NN è resistente al rumore, ovvero è in grado di continuare a restituire una risposta corretta,
anche se alcune delle sue connessioni vengono eliminate, lesionate o se viene aggiunto del
rumore al segnale di ingresso, ai canali di trasmissione, o alla funzione di attivazione dei nodi.
Tale proprietà è comune anche ai sistemi nervosi biologici, dove la capacità di apprendere e
ricordare non viene alterata dalla perdita di neuroni. Nonostante ciò, più il rumore aumenta, più
le prestazioni della rete subiscono un decadimento graduale, aumentando la percentuale di
errore. Questa proprietà rappresenta un vantaggio rispetto ai sistemi seriali, dove di solito, la
perdita di un singolo anello della catena di elaborazione, comporta una caduta catastrofica
dell’intero sistema.
13
- Flessibilità
Un modello neurale trova una vasta gamma di campi applicativi, pur non conoscendo le
proprietà del dominio di applicazione, perché le apprenderà con l’esperienza. Questo non
implica che un qualsiasi modello possa essere utilizzato per tutti i tipi di compiti, ma sta a
significare che l’utente non deve necessariamente conoscere le soluzioni dettagliate che
costituiscono il problema in esame. Infatti, chi utilizza una rete neurale deve essere in grado di
individuare precisamente le finalità del progetto, il tipo di compito ed una serie di vincoli, al
fine di scegliere il modello neurale più appropriato.
Quindi, mentre da un lato questa caratteristica presenta notevoli vantaggi perché permette di
affrontare molti problemi di cui sono ignote le soluzioni, dall’altro vi è il pericolo di rinunciare
a comprendere a piano la natura del problema e di utilizzare una soluzione neurale che non
aumenta la nostra conoscenza.
- Generalizzazione
Anche se una rete neurale è stata addestrata su un numero limitato di esempi, è in grado di
produrre una risposta adeguate a dei pattern d’ingresso che non ha mai visionato in precedenza,
ma che presentano qualche somiglianza con gli esempi presentati durante la fase di training.
Questa proprietà deriva dal fatto che molti modelli rappresentano interiormente un numero di
associazioni stimolo-risposta più grande del numero di sinapsi disponibili; quindi, una rete
neurale tende ad estrarre le caratteristiche invarianti dei pattern di input, piuttosto che
memorizzare ciascun singolo pattern.
Il modo in cui una RN è in grado di generalizzare ad un nuovo pattern di ingresso, dipende dal
grado in cui queste proprietà invarianti possono essere ritrovate nei pattern stessi. Questa
peculiarità appartiene anche ai sistemi biologici dove, ad esempio, il rapporto costante tra le
luci riflesse da superfici adiacenti ed illuminazione, permette al sistema visivo di riconoscere i
colori. L’estrazione di caratteristiche invarianti risulta essere una strategia di calcolo molto
potente ed apprezzata, soprattutto quando non è possibile lavorare su un set esaustivo di tutti i
dati.
- Recupero in base al contenuto
Le reti neurali artificiali sono in grado di recuperare le proprie memorie in base al contenuto,
partendo da dati incompleti, simili o corrotti da rumore. Come accade nei sistemi nervosi
biologici, è sufficiente un indizio per dirigere l’attivazione del sistema nella direzione giusta,
14
(1.1)
completando o recuperando l’intera memoria (gli oggetti famigliari sono riconosciuti più
facilmente da quelli sconosciuti). Invece, i calcolatori seriali, recuperano i dati grazie un numero
che rappresenta l’indirizzo di memoria corrispondente; se questo numero viene alterato o perso,
non è più possibile recuperare l’intero dato.
1.3 Il modello matematico
I modelli neurali artificiali rappresentano una notevole semplificazione della loro controparte
biologica, dai più semplici sistemi di calcolo paralleli, ai modelli più complessi che cercano di
cogliere gli aspetti generali del sistema nervoso.
In linguaggio matematico, l’idea di base è stata quella di estrarre combinazioni lineari dagli
input come caratteristiche derivate e quindi modellare l’obiettivo come una funzione non lineare
di queste caratteristiche.
Il primo modello matematico di neurone artificiale, tutt’ora in uso, è stato proposto da Mc
Culloh e Pitts nel 1943, ed è caratterizzato da un insieme di sinapsi che corrispondono ai
terminali di altri neuroni, da una soglia e da una funzione di attivazione.
Come mostrato in figura l’effetto del segnale in ingresso, è uguale al prodotto w ∙ x, dove w è il
peso attribuito alla sinapsi corrispondente. L’input netto o funzione di attivazione Ai equivale
alla somma algebrica dei prodotti fra tutti i segnali di ingresso xi e i valori dei pesi delle sinapsi
corrispondenti (5)
= ∑
X1
X2
X3
Xj
yi ∑ Ф(A i)
15
a cui solitamente si sottrae il valore soglia υi del neurone.
= ∑
−
L’output y i viene calcolato sottoponendo il potenziale di attivazione così ottenuto, all’azione di
una funzione di attivazione Ф(A).
= Ф( )= Ф ( ∑
− )
Date le caratteristiche additive del calcolo dell’input netto, la soglia può essere considerato
equivalente ad un peso sinaptico di valore collegato ad un ulteriore input con attivazione
costante -1. Il peso sinaptico si definisce “bias” (wo) e l’unità aggiuntiva “unità di bias” (xo).
Adottando questa notazione l’attivazione del neurone può essere indicata come:
= Ф( ∑ )
facendo partire la somma da 0 e fissando x0 = -1. Trattare la soglia come un ulteriore peso
sinaptico proveniente da un’unità sempre attiva, significa che essa può essere modificata con le
stesse regole di apprendimento impiegata per gli altri pesi della rete, semplificando le notazioni
matematiche e l’algoritmo di calcolo.
Dato che una rete neurale è composta da più neuroni, è vantaggioso analizzare il sistema anche
con la notazione vettoriale; l’equazione (1.1) diventa
A = W ∙ x
ovvero il prodotto vettoriale dei segnali di ingresso x
T
= {x1, x2, …, xn} e la matrice W = {w11,
w12,…,w1n,w21,w22,…,wmn} di connessioni sinaptiche dove le righe m corrispondono ai neuroni
riceventi e le colonne n ai segnali di ingresso.
Analizziamo ora più la funzione di attivazione che determina il tipo di risposta che un neurone
è in grado di emettere. Nella formulazione originale del 1943, la soglia viene mantenuta fuori
dal calcolo del potenziale di attivazione e la risposta del neurone è data da una funzione a
gradino (4):
Ф(A) = {
1 > 0
dove υ è la soglia del neurone. Alternativamente l’output può essere bipolare (funzione segno)
Ф(A) = {
1 > −1