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”.
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.
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).
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.
Il processo di apprendimento, allora, consiste nel:
Alcune osservazioni preliminari sulla funzione di errore (1):
Una classica funzione di errore sul training set è data da
E=(1/2)∑n∑k(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= ∑n∑k(yk(xn;w) – tkn)2/N
In questo caso si preferisce tale funzione d’errore poiché è rimossa la forte dipendenza dal numero di punti..
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)∑n∑k(yk(xn;w) – tkn)2 si ha
En =∑k(yk(xn;w) – tkn)2)/2
Differenti tipi di apprendimento:
Nel prosieguo della lezione vedremo:
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:
Il problema di classificazione è in questo caso un problema a due classi:
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:
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 training, validation e test set (4):
L’intero insieme di valori, allora, è suddiviso in tre insiemi disgiunti.
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 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:
Allora possiamo fare una serie di N misure sperimentale in cui calcoliamo, fissata la temperatura:
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:
Il processo di apprendimento avviene a partire dal training e dal validation set.
La bontà della rete neurale ottenuta è misurata tramite il test set.
E’ importante sottolineare che:
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).
Nella prossima lezione vedremo:
1. Informazioni generali sul corso
3. Un modello computazionale del neurone biologico
4. Possibili problemi risolvibili con Reti Neurali
5. Problemi di Classificazione ed approccio probabilistico
7. Capacità rappresentativa delle reti neurali - parte prima
8. Capacità rappresentativa delle reti neurali - Parte seconda
9. Apprendimento e generalizzazione
10. Discesa del gradiente e backpropagation
11. Back-Propagation
13. Interpretazione output di una rete neural feed-forward
14. Complessità della rete, generalizzazione e termini di regolari...
15. Cross-entropy e variazioni sulla discesa del gradiente
16. Verso le reti neurali RBF: interpolazione esatta.
17. Reti neurali RBF
18. Addestramento di una rete RBF
19. Parametri delle funzioni a base radiale
20. Un primo modello di reti neurali ricorrenti: formalismo di Caia...