1
C. Baroglio 13
Reti Neurali
C. Baroglio 14
Reti Neurali
Sono approssimatori di funzioni L’idea è ricostruire una funzione tramite la composizione di unità composizione di unità composizione di unità composizione di unità elementari
elementari elementari
elementari, ciascuna delle quali è in grado di eseguire poche e semplici computazioni
Le unità sono dette neuronineuronineuronineuroni(per motivi storici)
C. Baroglio 15
difficoltà
Le reti neurali non eseguono istruzioni programmate ma rispondono a degli input tramite un procedimento parallelo Non sono sequenziali né deterministiche Danno risposte anche in corrispondenza di input mai visti (capacità di
generalizzazione)
Incapacità di spiegare i risultati
2
C. Baroglio 16
Punto di vista geometrico 1
+ + + + + ++ +
-- - - -
- - -
- - - --
- -
Dominio: spazio bidimensionale Esempi descritti da coppie di attributi (x1e x2)
Output: A oppure B
x1
x2
C. Baroglio 17
Punto di vista geometrico 2
Retta RettaRetta Retta ax1+ bx2= c
P(x10, x20) ax10 + bx20 > c
Una retta separa i punti che stanno al di sopra da quelli che stanno al di sotto della retta medesima
Q(x11, x21) ax21 + bx11 < c
C. Baroglio 18
… continua
U U U U X1 aaaa
(cccc)
Output x2 bbbb
aXaXaX
aX1111+ bx+ bx+ bx+ bx2222> c> c> c> c
Σ Σ Σ
Σ
i i i i ∈∈∈∈ [1,n]aiXi> c Più in generaleFondamentale la scelta dei parametri: a ba ba b (pesi) a b
c c c c (bias)
N E U R O N E
3
C. Baroglio 19
Passo ulteriore
aX aX aX
aX1111 + bx+ bx+ bx+ bx2222> c> c> c> c
Net Net Net
Net = ax1+ bx2
Attivazione Attivazione Attivazione
Attivazione = fff(Net, c)f
1 1
f ff f
step sigmoide
C. Baroglio 20
E se uso tante rette?
+ + + + + ++ +
-- - - -
- - -
- - - --
- -
Ovviamente ogni retta un neurone Posso identificare
Posso identificare Posso identificare Posso identificare delle aree chiuse delle aree chiuse delle aree chiuse delle aree chiuse
C. Baroglio 21
Come posizionare le rette?
1. Cominciamo col posizionarne un certo numero a casaccio
2. Utilizziamo un insieme di esempi esempi esempi esempi noti
noti noti
noti (per i quali conosco il valore della funzione da approssimare) calcolando per ciascuno la differenza fra output output output output ottenuto
ottenuto ottenuto
ottenuto e output attesooutput attesooutput attesooutput atteso ed utilizzando tale erroreerroreerrore per errore modificare posizione e orientamento dei neuroni 3. È possibile compiere questa
operazione in modo automaticomodo automaticomodo automaticomodo automatico
4
C. Baroglio 22
Topologia
X1
X2
X3
X4
Y1
Y2
Y3 w
Modo in cui sono collegati i nodi
Feed-forward a tre layer
C. Baroglio 23
Esempi
C. Baroglio 24
Gradi di libertà
1. Per approssimare bene una funzione occorre un numero sufficientenumero sufficientenumero sufficientenumero sufficiente di neuroni hidden. QuantiQuantiQuantiQuanti? Non esiste modo di prevederlo
2. I pesi vengono modificati durante la fase di apprendimento ma le funzioni calcolate da ogni singolo neurone possono avere parametriparametriparametriparametri che l’utente deve regolare