Vai alla Home Page About me Courseware Federica Living Library Federica Federica Podstudio Virtual Campus 3D Le Miniguide all'orientamento Gli eBook di Federica La Corte in Rete
 
I corsi di Scienze Matematiche Fisiche e Naturali
 
Il Corso Le lezioni del Corso La Cattedra
 
Materiali di approfondimento Risorse Web Il Podcast di questa lezione

Roberto Prevete » 9.Apprendimento e generalizzazione


Introduzione

Abbiamo visto che una rete neurale feed-forward a due strati di pesi può approssimare una funzione continua f: x=(x1, x2, …, xd) → f(x)=(y1, y2, …, yc) con il grado di accuratezza voluto, supposto che abbia un numero sufficiente di nodi interni.

Il problema ora si sposta su come una tale rete possa essere “trovata”.

Apprendimento supervisionato

Elementi del problema (1)

Della funzione da modellare f: x=(x1, x2, …, xd) f(x)=(y1, y2, …, yc), in genere, si ha a disposizione solo un insieme finito di coppie (xn, tn), dove tn è il valore della funzione f(x) in xn più un eventuale errore ∈(xn) ( Ad esempio tn è ottenuto da misurazioni sperimentali).

Tramite la rete neurale si ha un “modello” della funzione in termini di funzioni matematiche che contengono un certo numero di parametri regolabili

yk= yk(x;w) con k=1, 2, …, c

dove, come visto, w sono i pesi e i bias della rete neurale.

Apprendimento supervisionato (segue)

Elementi del problema (2)

E’ necessario individuare un processo di calcolo che permetta di in individuare i parametri opportuni della rete a partire da un insieme finito di coppie (xk, tk), detto training set.

Il processo in grado di determinare il valore di tale parametri a partire dal training set è chiamato training della rete.

Una proprietà fondamentale dei training set è che i dati dovrebbero esibire una regolarità di base, rappresentata dalla funzione f(x), che è disturbata da un rumore random, cioè i valori tn= f(xn)+∈n del training set sono valori che presentono una regolarità determinata dalla funzione f che vogliamo approssimare, più un errore (rumore).

Apprendimento supervisionato: generalizzazione

Capacità di generalizzazione

Il gol del training è di ottenere una rete neurale che catturi le regolarità presenti nel training set e che, quindi, sappia fare delle buone previsioni per nuovi dati, cioè che abbia capacità di generalizzare.

Durante la fase di training, per misurare la capacità di generalizzare della rete, viene generato un secondo insieme di coppie, detto validation set, tramite il quale si misura la capacità di generalizzazione della rete.

Vogliamo subito sottolineare che il processo di apprendimento deve essere capace di catturare dal training set le regolarità sottostanti e non i dettagli specifici (cioè il contributo del rumore).

Una volta terminato il processo di apprendimento tramite il training e il validation set, si verifica la bontà del modello ottenuto su un ulteriore insiemi di coppie (x,t) detto test set.

Processo di apprendimento

Il processo di apprendimento, allora, consiste nel:

  • Modificare i pesi e i bias della rete in modo da minimizzare una fissata funzione di errore E(w) sul training set con il vincolo che anche sul validation set ci sia un errore “piccolo” (in genere utilizzando un diversa funzione di errore E’(w))
  • Una volta ottenuto, attraverso il passo precedente, un valore w=w* per i pesi e i bias, verificare la “bontà” della rete sul test set.
  • La misura della “bontà” della rete si ottiene tramite una funzione di errore E’(w*) sul test set, oppure, in un problema di classificazione, tramite parametri come recall e precision (che abbiamo visto in precedenza).

Funzione di errore

Alcune osservazioni preliminari sulla funzione di errore (1):

Una classica funzione di errore sul training set è data da

E=(1/2)∑nk(yk(xn;w) – tkn)2

Dove y(xn;w)=( yn1, yn2, …, ync)
sono i valori di uscita dei nodi di output della rete con input pari a all’input della n-sima coppia del training set xn=( xn1, xn2, …,, xnd) e tn=( tn1, tn2, …,, tnc)

Una classica funzione di errore sul validation set, invece, è data da una funzione di errore che in genere coincide con l’errore quadratico medio:

E= ∑nk(yk(xn;w) – tkn)2/N

In questo caso si preferisce tale funzione d’errore poiché è rimossa la forte dipendenza dal numero di punti..

Funzione di errore (segue)

Alcune osservazioni preliminari sulla funzione di errore (2):

Osserviamo che la funzione di errore, in maniera del tutto generale, può essere riscritta come

E=∑nEn,

dove En è l’errore per il singolo punto del training set, (ad esempio nel caso particolare della funzione di errore E=(1/2)∑nk(yk(xn;w) – tkn)2 si ha

En =∑k(yk(xn;w) – tkn)2)/2

Alcune precisazioni

Differenti tipi di apprendimento:

  • Un processo di apprendimento, come quello che stiamo considerando, che consiste nella minimizzazione di una funzione di errore, e quindi la presenza di valori target tk, è chiamato supervised learning (apprendimento supervisionato).
  • Un secondo tipo di apprendimento è detto unsupervised learning che non comporta la presenza di dati target. In questo caso invece di apprendere un mapping input-output il gol può essere quello di modellare la distribuzione di probabilità dei dati di input o scoprire cluster o altre strutture nei dati.
  • C’è anche una terza forma di apprendimento, reinforcment learning, il quale è simile al supervised learning ma in questo caso gli output della rete sono solo classificati come buoni o cattivi, ma non c’è nessun valore desiderato.

Esempi

Nel prosieguo della lezione vedremo:

  • Alcuni esempi di training, validation and test set per problemi di classificazione e regressione.
  • Abbiamo sottolineato che il processo di apprendimento deve essere capace di catturare dal training set le regolarità sottostanti e non i dettagli specifici. Vedremo, allora, alcuni esempi in cui preciseremo tale concetto.

Esempio Problema di classificazione

Esempio training, validation e test set (1):

Descriviamo ora un esempio di problema di classificazione “giocattolo”.

Supponiamo di voler decidere se una persona è in sovrappeso oppure no, sulla base solamente del suo peso e della sua altezza.

Allora ciascuna persona è rappresentata tramite due caratteristiche:

  • Peso
    Altezza

Il problema di classificazione è in questo caso un problema a due classi:

  • Classe C1 = “Persona in sovrappeso”. Tale classe sarà codificata con il valore 1.
  • Classe C2 = “Persona non in sovrappeso”. Tale classe sarà codificata con il valore 0.

Esempio Problema di classificazione (segue)

Esempio training, validation e test set (2):

Dobbiamo, allora, in una fissata popolazione di persone sceglier un campione rappresentativo costituito da N persone (vedremo in seguito come scegliere N).

Per ciascuna delle N persone è necessario misurare Peso e Altezza. Ad esempio il peso calcolato in kg e l’altezza in cm.

Ciascuna delle N persone deve essere classificata da un “esperto”, un medico d esempio, come in sovrappeso oppure no, quindi appartenete alla classe C1 o alla classe C2.

Otteniamo, così, un insieme da n-uple codificato le caratteristiche altezza e peso, insieme al valore target che codifica la classe di appartenenza (sottolineo che qui il valore target è di tipo discreto). Ad esempio:

  • 172 73 0
  • 177 91 1

Esempio Problema di classificazione (segue)

Esempio training, validation e test set (3)

In figura è mostrato un esempio (fittizio) di come si potrebbero distribuire i dati.

I cerchi rossi rappresentano le persone in sovrappeso (classe C1).

Gli asterischi in blue rappresentano le persone non in sovrappeso (classe C2)

Esempio di distribuzione di altezza-peso in una campione di persone.

Esempio di distribuzione di altezza-peso in una campione di persone.


Esempio Problema di classificazione (segue)

Esempio training, validation e test set (4):

L’intero insieme di valori, allora, è suddiviso in tre insiemi disgiunti.

  • Training set. Costituito, ad esempio, da N/2 elementi.
  • Validation set. Costituito, ad esempio, da N/4 elementi.
  • Test set. Costituito, ad esempio, da N/4 elementi.

Il processo di apprendimento avviene a partire dal training e dal validation set.

La bontà della rete neurale ottenuta è misurata tramite il test set.

Esempio Problema di regressione

Esempio training, validation e test set (1):

In questo caso il valore target è di tipo continuo.

Facciamo, anche in questo caso, un esempio “giocattolo”. Supponiamo di voler “modellare” tramite una rete neurale la prima legge di Ohm. Dato, cioè, un conduttore a temperatura fissa, vogliamo cercare quale è la relazione tra:

  • V, tensione ai capi del conduttore.
  • I, Intensità di corrente che attraversa il conduttore.
  • R, Resistenza del conduttore.

Allora possiamo fare una serie di N misure sperimentale in cui calcoliamo, fissata la temperatura:

  • La tensione V (in volt) per un insieme di valori di I (in Amper) ed R (in Ohm).

Esempio Problema di classificazione (segue)

Esempio training, validation e test set (2)

In figura è mostrato un esempio (fittizio) di come si potrebbero distribuire i dati

Anche in questo caso, allora, l’intero insieme di valori è suddiviso in tre insiemi disgiunti:

  • Training set (ad esempio, N/2 elementi).
  • Validation set. (ad esempio, N/4 elementi).
  • Test set. (ad esempio, N/4 elementi).

Il processo di apprendimento avviene a partire dal training e dal validation set.

La bontà della rete neurale ottenuta è misurata tramite il test set.

Esempio di distribuzione della tensione, V, ai capi di un conduttore al variare della resistenza, R, e dell’intensità della corrente, I.

Esempio di distribuzione della tensione, V, ai capi di un conduttore al variare della resistenza, R, e dell'intensità della corrente, I.


Rumore sul target

E’ importante sottolineare che:

  • data una relazione funzionale tra d variabili (le caratteristiche) e c variabili (il target), che vogliamo modellare tramite una rete neurale
  • Esiste un rumore nei dati, che possiamo considerare come un errore sperimentale sui valori dal target
  • Si ha cioè: tn= f(xn)+∈n
  • Il processo di apprendimento deve cercare di apprendere la relazione funzionale cercando di non “catturare” il rumore!

Rumore sul target (segue)

Ad esempio:

Se abbiamo un relazione funzionale tra una variabile indipendente x e una variabile dipendente y, cioè y=f(x), data da:

y=sin(2*pi*x)

La raccolta dei dati per il training, validation e test set, darà luogo a dati come quelli in figura

Si osserva che i valori di t, non seguono esattamente la funzione seno, ma è presente un rumore sperimentale.
Esempio di relazione tra Tensione (V), Resistenza (R) e intensità di corrente (I).

Esempio di dati target con rumore.

Esempio di dati target con rumore.


Prossima lezione

Nella prossima lezione vedremo:

  • Quale è un classico approccio per il processo di apprendimento.
  • In particolare esamineremo gli algoritmi della “Discesa del Gradiente” e della “Back Propagation”.
  • Contenuti protetti da Creative Commons
  • Feed RSS
  • Condividi su FriendFeed
  • Condividi su Facebook
  • Segnala su Twitter
  • Condividi su LinkedIn
Progetto "Campus Virtuale" dell'Università degli Studi di Napoli Federico II, realizzato con il cofinanziamento dell'Unione europea. Asse V - Società dell'informazione - Obiettivo Operativo 5.1 e-Government ed e-Inclusion