ALGORITMI DI OTTIMIZZAZIONE PER
L'ADDESTRAMENTO DI RETI NEURALI
Marco Sciandrone
Istituto di Analisi dei Sistemi ed Informatica “A. Ruberti”
Consiglio Nazionale delle Ricerche, Roma
Statistica
Fisica
Ottimizzazione
Biologia
Psicologia
Reti Neurali
Matematica
Informatica
ISTITUTO DI ANALISI DEI SISTEMI ED INFORMATICA
 Ingegneria dei Sistemi
 Informatica
 Biomatematica
 Ottimizzazione
OPTIMIZATION LABORATORY FOR DATA MINING
Data mining:
apprendimento automatico di informazioni, correlazioni e
caratteristiche significative da basi di dati di grandi dimensioni
relative a processi di varia natura
Motivazione:
esigenza di analizzare e comprendere fenomeni complessi descritti
in modo esplicito solo parzialmente e informalmente da insiemi di dati
Problemi di Data Mining
 Classificazione
(pattern recognition)
Supervisionata
Non Supervisionata
 Approssimazione (regressione)
Pattern:
oggetto descritto da un insieme finito di attributi numerici
(caratteristiche/features)
Classificazione supervisionata:
sono noti a priori dei pattern rappresentativi di diverse classi,
si vuole determinare un modello matematico che, dato un generico
pattern appartenente allo spazio delle caratteristiche, definisca la
corrispondente classe di appartenenza
ESEMPIO DI CLASSIFICAZIONE SUPERVISIONATA
Pattern: cifra manoscritta rappresentata da una matrice di pixel
10 Classi: 0,1,2,3,4,5,6,7,8,9
classificazione
0
1
2
3
4
5
6
7
8
9
Pattern:
oggetto descritto da un insieme finito di attributi numerici
(caratteristiche/features)
Classificazione non supervisionata:
non sono noti a priori pattern rappresentativi delle classi;
si vuole determinare il numero di classi di “similitudine” e
un modello matematico che, dato un generico pattern appartenente
allo spazio delle caratteristiche, definisca la corrispondente classe
di appartenenza
ESEMPIO DI CLASSIFICAZIONE NON SUPERVISIONATA
Pattern: paziente afflitto da una determinata patologia e
descritto da M fattori clinici (caratteristiche)
Dati disponibili: insieme di N pazienti
Obiettivo: raggruppare i pazienti in K gruppi i cui elementi
presentino caratteristiche “simili”
Pattern:
oggetto descritto da un insieme finito di attributi numerici
(caratteristiche/features)
Approssimazione:
sono note a priori delle coppie pattern/target rappresentative
di un funzione incognita a valori reali; si vuole determinare
una funzione analitica che approssimi la funzione incognita
ESEMPIO DI APPROSSIMAZIONE
Pattern: vettore di N correnti che circolano in un dispositivo
Target: valore del campo magnetico in un determinato punto
interno al dispositivo
Obiettivo: determinare una funzione analitica che approssimi
il legame funzionale tra il campo magnetico e il
valore delle correnti
Problemi di Data Mining
 Classificazione (pattern recognition)
 Supervisionata
 Non Supervisionata
 Approssimazione (regressione)
Metodi
• Clustering
• Reti Neurali
• Support Vector Machines
• Programmazione Logica
• Alberi di Decisione
problemi “difficili” e/o
di grandi dimensioni
Necessità di metodi di Ottimizzazione efficienti
 Cos’è l’Ottimizzazione
 Cos’è una rete neurale
 Cos’è il processo di addestramento di una rete neurale
 Quale è la connessione tra l’Ottimizzazione e le reti neurali
Algoritmi di Ottimizzazione per l’addestramento di reti neurali
Formulazione di un problema di Ottimizzazione
X
(spazio delle variabili)
SX
(insieme ammissibile)
f :S  R
minimizza f
(funzione obiettivo)
sull’insieme ammissibile S
Spazio delle variabili
Spazio X
Infinito dimensionale
Finito dimensionale
Calcolo variazionale
Controllo Ottimo
Ottimizzazione discreta
Programmazione a variabili
intere
Ottimizzazione combinatoria
a variabili 0/1
Ottimizzazione continua
a variabili reali
Programmazione mista
Cos’è una rete neurale da un punto di vista “fisico”
Una rete neurale è un processore distribuito costituito dalla
interconnessione di unità computazionali elementari (i neuroni)
con due caratteristiche fondamentali:
 la “conoscenza” è acquisita dall’ambiente attraverso un processo
di “apprendimento” o di “addestramento”
 la “conoscenza” è immagazzinata nei parametri della rete e,
in particolare, nei “pesi” associati alle connessioni
Cos’è una rete neurale da un punto di vista “matematico”
Data una funzione G:X
x
p
Y, nota attraverso un insieme di coppie


, G( x p ) : x p  X , p  1,..., P
Una rete neurale è un particolare modello di approssimazione di G:
F (., w) : X  Y
dipendente (in generale in modo non lineare) da un vettore di
parametri w
Da un punto di vista “statistico”, una rete neurale è un particolare
modello di classificazione o di regressione (non lineare)
IL NEURONE FORMALE
funzione di attivazione
x1
w1
x2
xn 1
w2
wn1
h(t )  
pesi
+
wT x
wn
xn
CLASSIFICATORE LINEARE
1 t 0
1 t 0
y  h( wT x   )

soglia
Una rete costituita da un singolo strato di neuroni formali è stata
denominata PERCEPTRON (Rosenblatt, 1962) ed è stato proposto
un algoritmo per il calcolo dei parametri (pesi e soglie) che fornisce
una soluzione in un numero finito di iterazioni nell’ipotesi in cui
i pattern di ingresso siano LINEARMENTE SEPARABILI
Problema XOR
0,1
1,1
Non esiste un iperpiano di separazione
0,0
1,0
Limitazioni del Perceptron
Le limitazioni del Perceptron sono state messe in luce da
Minsky e Papert (1969)
L’effetto del libro di Minsky e Papert è stato quello di far
decadere l’interesse inziale verso le reti neurali
Era noto che le limitazioni del Perceptron potevano essere
superate, in linea di principio, collegando fra loro in modo
opportuno dei neuroni formali o effettuando delle trasformazioni
non lineari degli ingressi
Non erano tuttavia disponibili algoritmi di addestramento per il
calcolo dei parametri
Una rinascita dell’interesse verso le reti neurali è stata in gran parte
determinata dal lavoro di Rumelhart, Hinton e Williams (1986),
che hanno proposto un algoritmo di addestramento per reti di
neuroni formali, noto come metodo della backpropagation,
essenzialmente basato sul metodo di ottimizzazione del gradiente
Gli sviluppi futuri hanno portato allo sviluppo di un’area di ricerca
interdisciplinare, in cui sono stati integrati contributi di vari settori
Classificazione delle architetture
Reti feedforward:
reti acicliche strutturate in diversi strati
 Perceptron
 Multilayer Perceptron (MLP)
 Reti di funzioni di base radiali (RBF)
Reti ricorsive:
sono presenti cicli di controreazione; possono essere viste
come sistemi dinamici
Rete feedforward a 1 strato
Rete feedforward a 2 strati
ADDESTRAMENTO E GENERALIZZAZIONE
L’addestramento (apprendimento) è il processo mediante il quale
vengono determinati i parametri liberi di una rete neurale.
Due paradigmi fondamentali:
 addestramento supervisionato:
i parametri della rete vengono determinati, sulla base di un
insieme di addestramento (training set) di esempi, consistenti
in coppie pattern/target, minimizzando una funzione d’errore
 addestramento non supervisionato:
la rete è dotata di capacità di auto-organizzazione
ADDESTRAMENTO E GENERALIZZAZIONE
La capacità di generalizzazione di una rete addestrata è la capacità
di fornire una risposta corretta a nuovi ingressi (non presentati nella
fase di addestramento)
LO SCOPO ULTIMO DELL’ADDESTRAMENTO È QUELLO
DI COSTRUIRE UN MODELLO DEL PROCESSO CHE
GENERA I DATI E NON DI INTERPOLARE I DATI DI
TRAINING
Addestramento supervisionato di reti feedforward
vettore di
ingresso
uscita
strato nascosto
Reti neurali feedforward
MLP
RBF
Differiscono essenzialmente nella funzione di attivazione dei
neuroni dello strato nascosto
Rete neurale feedforward 1 strato nascosto con M neuroni
y ( x ; w)
x
M
Rete MLP
y ( x;  , w,  )   i tanh( wiT x  i )
i 1
M
Rete RBF
y ( x;  , C )   i (|| x  c i ||)
i 1
Reti neurali feedforward
MLP
RBF
Proprietà di approssimazione:
sono approssimatori universali per le funzioni continue
su insiemi compatti
x
sistema statico I/O
y ( x ; w)
funzione “smooth”
FORMULAZIONE DEL PROBLEMA DI ADDESTRAMENTO
Architettura rete neurale fissata: numero di strati e numero di neuroni
w  R n vettore dei parametri incogniti


Training set TS  ( x p , d p ), x p  R m , d p  R, p  1,..., P
Problema di Ottimizzazione
1 P
min E ( w) 
E p ( w)

w
2 P p 1
in cui E p è una misura dell’errore relativo al p-mo pattern.
Usualmente
E p  ( y( x p ; w)  d p ) 2
uscita desiderata
uscita rete
Le difficoltà computazionali dei problemi di addestramento sono
tipicamente dovute a
 Forti “nonlinearità” della funzione di errore E(w)
 Presenza di zone “piatte” nella superficie della funzione di
errore
 Possibile mal condizionamento della matrice Hessiana
 Elevata dimensionalità del vettore dei parametri w
 Elevato numero P di campioni di addestramento
 Presenza di minimi locali
Nella soluzione del problema di Ottimizzazione relativo
all’addestramento di una rete neurale non è richiesta una
grande precisione nella soluzione. Può invece essere
preferibile interrompere il processo di minimizzazione
prematuramente in base alla valutazione dell’errore ottenuto
su un VALIDATION SET (EARLY STOPPING) perché:
LO SCOPO ULTIMO DELL’ADDESTRAMENTO È QUELLO
DI COSTRUIRE UN MODELLO DEL PROCESSO CHE
GENERA I DATI E NON DI INTERPOLARE I DATI DI
TRAINING
METODI DI OTTIMIZZAZIONE PER L’ADDESTRAMENTO
 METODI BATCH
i parametri vengono aggiornati dopo una presentazione di tutto
il training set
 METODI INCREMENTALI (ONLINE)
i parametri vengono aggiornati in corrispondenza a ogni singolo
pattern del training set
1 P
min E ( w) 
E p ( w)

w
2 P p 1
Uno dei primi algoritmi di addestramento è il metodo noto
come metodo di backpropagation e si può identificare con
il metodo del gradiente
La versione batch è definita dall’iterazione
wk 1  wk   k E (wk )
k
k
k
dove E ( w ) è il gradiente di E in w , e   R è il learning rate
Il termine backpropagation è legato alla tecnica utilizzata per il
calcolo del gradiente che si può ricondurre attualmente a una tecnica
di differenziazione automatica
Il metodo di backpropagation presenta proprietà di convergenza
globale sotto opportune ipotesi connesse alla scelta del
learning rate (passo). Tale scelta può essere effettuata, ad esempio,
mediante l’impiego di tecniche di ricerca unidimensionale
Il metodo è di facile implementazione ma risulta poco efficiente in
termini di rapidità di convergenza
Per l’addestramento sono utilizzabili i metodi di Ottimizzazione
non vincolata per problemi a grande dimensione
1 P
min E ( w) 
E p ( w)

w
2 P p 1
wk 1  wk   k d k
d R
k
N
DIREZIONE DI RICERCA
d  E ( w )
k
k
 R
k
metodo del gradiente
d  ...
k
 2 E (wk )d k  E (wk )
PASSO
metodo di Newton
Metodi di Ottimizzazione per l’addestramento
(alcuni dei quali sono presenti in vari pacchetti software per reti neurali)
 Metodo del gradiente di Barzilai-Borwein
 Metodi delle direzioni coniugate
 Metodi Quasi-Newton a memoria limitata
 Metodi tipo Gauss-Newton (troncati)
 Metodi di Newton (troncati)
OTTIMIZZAZIONE
RETI NEURALI
“riscoperta” di vari metodi di Ottimizzazione
nell’ambito delle reti neurali
motivazioni per la definizione di nuovi metodi
di Ottimizzazione (algoritmi incrementali,
algoritmi di decomposizione)
APPLICAZIONI DI RETI NEURALI SVILUPPATE PRESSO
L’ISTITUTO DI ANALISI DEI SISTEMI ED INFORMATICA
 Approssimazione del campo magnetico per la progettazione di
apparati di risonanza magnetica
 Classificazione di segnali di elettrocardiogramma per
l’individuazione di eventi ischemici
 Classificazione di immagini per il riconoscimento di lettere postali
 Approssimazione del flusso stradale per la previsione del traffico
 Classificazione di connessioni telematiche per l’individuazione
di attacchi al sistema informatico del nostro istituto