Università di Milano-Bicocca
Laurea Magistrale in Informatica
Corso di
APPRENDIMENTO E APPROSSIMAZIONE
Lezione 6 - Reti Neurali Artificiali
Prof. Giancarlo Mauri
Outline
Introduction
Perceptrons
Gradient descent learning rule
Multi-layer networks
Backpropagation learning algorithm
Perché le reti neurali
LA POTENZA DEL CALCOLO ELETTRONICO…
calcoli numerici complessi (anni per un uomo) in frazioni di
secondo
memorizzazione grandi quantità di dati
… E I SUOI LIMITI
riconoscimento di persone, oggetti, suoni (anche in presenza di
rumore)
riconoscimento del parlato e comprensione del linguaggio
naturale
apprendimento, classificazione, generalizzazione
visione e controllo del movimento
adattamento a nuove situazioni
soluzione di problemi complessi in modo esaustivo
(ottimizzazione combinatoria)
Perché le reti neurali
•
Perché il cervello risulta superiore al
computer per certe categorie di problemi?
•
I meccanismi operanti nel cervello possono
essere imitati per produrre macchine più
efficienti ?
Perché le reti neurali
La differenza non sta nelle componenti:
Cellule nervose:
tempo risposta ordine msec
Circuiti logici elettronici:
tempo risposta ordine nsec
ma nella "architettura"
Perché le reti neurali
IL CERVELLO COME CALCOLATORE
L'elaborazione è frutto di un processo altamente parallelo
La potenza di calcolo deriva dalla cooperazione di molti
processori semplici e fortemente interconnessi:
1010 - 1011 neuroni
105 connessioni/ neurone
Le connessioni si modificano con l'apprendimento
L'informazione non é localizzata, ma distribuita globalmente
nella rete di processori
L'intelligenza deriva dalla interazione tra i neuroni, non é
prerogativa di un singolo neurone
Ha una notevole tolleranza ai guasti
Es. Riconoscimento volti in 0,1 sec
Un po' di storia
INTERESSE PER IL NEURAL COMPUTING
1943
McCulloch
Pitts
Wiener
Craik
1950
Wiener
Shannon
Von Neuman
As hby
Hebb
Turing
1960
Rosenblatt
Minsky
Papert
1970
Arbib
Kohonen
1984
PdP Group
Hopfield
…………
Un po' di storia
I PIONIERI (Anni '40)
1943 : McCulloch e Pitts
"A Logical calculus of Ideas Immanent in Nervous Activity"
Primo modello formale di funzionamento di una rete nervosa, descritta
come un circuito i cui componenti sono porte logiche costruite a partire
dalle funzioni booleane elementari: OR, AND, NOT.
1949 : Wiener
introduce la visione del sistema
l'elaborazione delle informazioni
nervoso
come
un
sistema
per
1949 : D.O. Hebb
"The organization of behavior"
ipotizza che alla base del meccanismo di apprendimento vi sia una
modifica dell'efficacia sinaptica tra coppie di neuroni, attraverso il
rafforzamento di connessioni spesso attive.
La regola di apprendimento di Hebb è ancora alla base di molti
modelli
Un po' di storia
LA PRIMA ETA’ DELL’ORO ('50–'60)
Fine anni '40: von Neumann sviluppa la teoria degli automi
"ramo seriale" che darà origine alle architetture "alla von Neumann"
"ramo parallelo" che produrrà gli automi cellulari e le reti neuronali
1960: B. Widrow, M. Hoff
"Adaptive switching circuits"
Uno dei primi neurocomputer, con regola di apprendimento di
Widrow–Hoff, capace di riconoscere semplici pattern
La differenza tra l'uscita del circuito e l'uscita desiderata
modifica per controreazione le resistenze nel circuito per ottenere
uscite più corrette
1962: F. Rosenblatt
"The principles of neurodynamics"
Primo modello di neurone formale in grado di apprendere da esempi
(percettrone)
Esperimenti su computer
Un po' di storia
GLI ANNI DELLA CRISI ('70)
1969: M. Minsky, S. Papert
"Perceptrons: an introduction to computational geometry"
Analisi approfondita dei percettroni.
Dimostrazione della inadeguatezza a risolvere molti problemi.
Il campo delle reti neurali fu abbandonato
(anche per l'indisponibilità di tecnologie adeguate)
salvo poche eccezioni
(Stephen Grossberg, Teuvo Kohonen, James Anderson, Gail Carpenter)
Sviluppo di
calcolatori basati sulla architettura sequenziale di von Neuman
Intelligenza artificiale
Un po' di storia
GLI ANNI DELLA RIPRESA ('80–'90)
Riesame della critica di Minsky e Papert, che risulta valida solo per reti
molto semplici
Introduzione dell'algoritmo di back propagation
John Hopfield
Analogie stimolanti con altri sistemi fisici
D. Rumelhart, J. McClelland, G. Hinton, T. Sejnowski
Descrizione dell'apprendimento delle reti in termini di meccanica
statistica: Macchina di Boltzmann
Sviluppo di algoritmi ed architetture ad alto parallelismo
Sviluppo di nuove tecnologie: VLSI, Circuiti ottici
Quando usare le reti neurali
Input multidimensionale a valori reali o discreti (e.g.,
dati grezzi da sensori
Output vettore di valori
Dati rumorosi
Forma della funzione obiettivo sconosciuta
Non è importante la leggibilità del risultato da parte
dell’uomo
Campi applicativi
Elaborazione di segnali
Controllo
Riconoscimento di schemi grafici
Classificazione di immagini
Medicina
Riconoscimento e produzione del parlato
Predizioni Finanziarie
Connessionismo e intelligenza artificiale
Intelligenza
artificiale
Connessionismo
Mente ≠ cervello
Mente cervello
Deduzione
Induzione
Simbolico
Analogico / subsimbolico
Sequenziale
Parallelo
Programmazione
Apprendimento
Istruzioni imperative
Adattività
Indirizzi espliciti
Memoria associativa
No generalizzazione
Generalizzazione
Il neurone biologico
Stati possibili:
eccitazione
invia segnali ai neuroni
connessi attraverso le sinapsi
inibizione
non invia segnali
Transizione di stato:
dipende dall'entità
complessiva dei segnali
eccitatori e inibitori ricevuti
Neuroni formali
Gli elementi essenziali:
Stato
Funzione di transizione
Funzione di uscita
Modalità di transizione
Un esempio:
neurone binario a soglia (McCulloch, Pitts 1943)
<n, C, W, >
nome
canali
input
vettore soglia
pesi
Neuroni formali
Stati:
Funzione di transizione:
Funzione di uscita:
Modalità di transizione:
c1
c2
cn
{0,1} o {-1,1}
s(t+1) = 1 sse wisi(t) ≥
coincide con lo stato
deterministica
w1
w2
…
wn
Neuroni formali
Funzioni di transizione
A gradino
Output
f(x) = 1 se x >
0 altrimenti
Input
Lineare
f(x) = ax + b
Output
Input
Neuroni formali
Mista
Output
Input
Sigmoide
f(x) =
1
1+e-x
Output
Input
Reti neurali artificiali
w21
1
2
3
5
4
f(x)
1
1 e x
1
Reti neurali artificiali
CARATTERISTICHE STRUTTURALI:
Grande numero di unità
Operazioni elementari
Alto livello di interconnessione
CARATTERISTICHE DINAMICHE :
Cambiamento di stato in funzione dello stato dei neuroni
collegati (input)
Funzione di uscita per ogni unità
Modifica dello schema di connessione per apprendimento
FORMALMENTE:
n
| w ij |
matrice dei pesi
| i |
vettore delle soglie
n i (t) w ij x j (t) i
j1
x i (t 1) g(n i (t))
input netto a i al tempo t
funzione di transizione
Reti neurali artificiali
ELEMENTI CARATTERIZZANTI:
tipo di unità
topologia (direzione delle connessioni, numero di strati …)
modalità di attivazione:
seriale ciclica
seriale probabilistica
parallela
mista
modalità di addestramento
Reti neurali artificiali
CLASSI PRINCIPALI:
Percettrone (Rosenblatt)
Adaline(Widrow e Hoff)
Mappe di caratteristiche autoorganizzanti (Kohonen)
Reti di Hopfield
Reti basate sulla teoria della risonanza adattiva (Carpenter)
Percettrone a più strati (Rumelhart e Williams)
Macchina di Boltzmann (Hinton)
Memoria associativa bidirezionale (Kosko)
Rete a contropropagazione (Hecht–Nielsen)
Il percettrone
Compito: riconoscimento di forme
I percettroni sono reti semplificate, progettate per permettere lo
studio di relazioni tra l'organizzazione di una rete nervosa,
l'organizzazione del suo ambiente e le prestazioni "psicologiche" di cui è
capace.
I percettroni potrebbero realmente corrispondere a parti di reti e sistemi
biologici più estesi; in questo caso, i risultati ottenuti sarebbero
direttamente
applicabili.
Più verosimilmente, essi rappresentano una
semplificazione estrema del sistema nervoso centrale, in cui alcune
proprietà sono esagerate ed altre soppresse. In questo caso, perturbazioni e
raffinamenti successivi del sistema possono dare una approssimazione
migliore.
Rosenblatt, 1962
Perceptron
Linear treshold unit (LTU)
Nodi di input
x1
x2
.
.
.
xn
w1
w2
wn
Pesi
x0=1
Soglia
Nodo di output
w0
ni=0wixi
y
y(xi)=
{
1 if i=0wixi >0
-1 otherwise
n
Funzione di transizione
Apprendimento nel percettrone
I pesi vengono fissati a caso e poi modificati
L'apprendimento è guidato da un insegnante
La procedura
Obiettivo è classificare vettori di input in due classi, A e B
Si sottomette una sequenza infinita {xk} di vettori tale che
ve ne siano un numero infinito sia di A che di B
Per ogni xk la rete calcola la risposta yk
Se la risposta è errata, si modificano i pesi, incrementando i
pesi delle unità di input attive se si è risposto 0 anzichè 1,
decrementandole nel caso duale:
w' = w ± x
Apprendimento nel percettrone
Teorema di convergenza:
Comunque si scelgano i pesi iniziali, se le classi A e B sono
discriminabili, la procedura di apprendimento termina dopo
un numero finito di passi
Teorema di Minsky e Papert:
La classe delle forme discriminabili da un percettrone
semplice è limitata alle forme linearmente separabili
Il teorema di convergenza del percettrone
Input
x = (x1, …, xd)
Input esteso
x = (x1, …, xd, 1)
Pesi
w = (w1, …, wd, -)
Teorema
Se l'insieme degli input estesi è partito in due classi
linearmente separabili A, B allora é possibile trovare un
vettore di pesi w tale che:
wx ≥ 0
se
xA
wx < 0
se
xB
Il teorema di convergenza del percettrone
Costruzione
1. Si parte con w arbitrario
2. Si classifica un input x:
risposta corretta: w' := w
risposta errata:
w' := w+x se xA
w' := w–x se xB
3. Si prova un nuovo input
Il teorema di convergenza del percettrone
Correttezza
Sia xA e wx < 0
Poiché xx ≥ 0 vale w'x = (w+x)x = wx + xx > wx
Quindi w' classifica x in modo "più corretto"
rispetto a w
Ma altri input possono essere classificati "meno
correttamente"
Il teorema di convergenza del percettrone
Convergenza
Si consideri
Cerchiamo
{xi}iN
A' = AB'
v
tale che
B' = {-x | xB}
vx ≥ 0
xA'
sequenza di addestramento
xiA'
occorrono infinite volte elementi sia di A che di B'
{wi}iN
sequenza dei pesi
scelta arbitraria
w0 = 0
wk+1 =
wk
se wkxk ≥ 0
wk + xk altrimenti
Il teorema di convergenza del percettrone
sequenza dei vettori dei pesi modificati
{vi}iN
sottosequenza di training corrispondente
{ti}iN
w0 ≠ w1 = w2 = w3 ≠ w4 = w5 = w6 ≠ w7 ≠ w8 ……..
v0
v1
v2
v3
t0
vj tj < 0
t1
t2
j
vj+1 = vj + tj = vj-1 + tj-1 + tj = …… =
TESI:
la sequenza {vi} è finita
t3
Il teorema di convergenza del percettrone
DIMOSTRAZIONE
Sia w una qualsiasi soluzione(esiste per ipotesi)!
x A'
x•w ≥ 0
Si ponga = min(x•w | xA')
j
vj+1• w = t k
• w ≥ j•
k 1
(vj+1• w )2 ≤ |vj+1|2•|w|2
|2
|vj+1 ≥
j2 2
|w|
2
(* *)
(*) + (* *)
(Cauchy-Schwarz)
(* * *)
Il teorema di convergenza del percettrone
Si ponga
M = max{|x|2 | xA'}
|vj+1|2 = |vj+tj|2 = |vj|2+2vj•tj+|tj|2 ≤ |vj|2+|tj|2
(vj•tj< 0)
j
|vj+1|2 ≤
k 1
f(j) =
|tj|2≤ j•M
j2 2 ≤ |v +1|2 ≤ j M = g(j)
j
2
|w|
quadratico in j
lineare in j
(*)
(* * *) + (*)
Il teorema di convergenza del percettrone
f
g
j
j
M | W | 2
2
Dopo al massimo modificazioni di peso, il percettrone
classifica correttamente ogni input.
Il teorema di convergenza del percettrone
Ma:
•
dipende dalla soluzione w
•
non è il reale numero di stadi
Un esempio
OR ESCLUSIVO (addizione binaria)
I punti a valore 1 non sono linearmente separabili da quelli a
valore 0
01 = 1
00 = 0
11 = 0
10 = 1
Ipotesi: Esiste un neurone binario a soglia tale che xy = 1
se e solo se x + y ≥l
x
y
l
xy
Un esempio
Essendo simmetrica, vale anche xy = 1 sse y + x ≥ l
Sommando e dividendo per 2 si ottiene:
xy = 1 sse tx + ty = t(x+y) ≥ l
ove t = (+ )/2
Posto ora x+y = s, abbiamo:
xy = 1 sse t s – l≥ 0
Dallo studio del polinomio di primo grado in s y = t s –
si ottiene:
Per s = 0, ts – l < 0
(00 = 0)
Per s = 1, ts – l ≥ 0
(01 = 1 = 10)
Per s = 2, ts – l < 0
(11 =0)
Questa é una contraddizione, poiché una retta non può salire e poi
scendere
Reti neurali e apprendimento
Il "programma" di una rete neurale è rappresentato
dai pesi sinaptici
E' impossibile "programmare" direttamente reti
complesse per svolgere un certo compito
D.O. Hebb, 1949:
Apprendimento = modifica pesi sinaptici
Se due neuroni connessi sono per più volte di seguito
contemporaneamente attivi, il peso della sinapsi
aumenta
La regola di Hebb è una regola non formalizzata.
Inoltre i pesi vengono solo aumentati
Una possibile formalizzazione (Sutton, 1981)
wi(t+1) = wi(t) + xi(t)y(t)
Perceptron Learning Rule
wi := wi + wi
wi = (t-y)xi
t=c(x) is the target value
y is the perceptron output
is a small constant (e.g. 0.1) called learning rate
• If the output is correct (t=y) the weights wi are not changed
• If the output is incorrect (t≠y) the weights wi are changed
so that the output of the perceptron for the new weights
is closer to t.
• The algorithm converges to the correct classification
• if the training data is linearly separable
• and is sufficiently small
Perceptron Learning Rule
t=-1
t=1
y=1
w=[0.25 –0.1 0.5]
x2 = 0.2 x1 – 0.5
(x,t)=([2,1],-1)
(x,t)=([-1,-1],1)
(x,t)=([1,1],1)
y=sgn(0.45-0.6+0.3)
y=sgn(0.25+0.1-0.5)
y=sgn(0.25-0.7+0.1)
=1
=-1
w=[0.2 –0.2
w=[-0.2
–0.4 –0.2]
–0.2]
w=[0.2 0.2 0.2]
y=-1
Gradient Descent Learning Rule
Consider a linear unit without threshold and continuous
output y (not just –1,1)
y = w0 + w1x1 + … + wnxn
Learning strategy: minimize a suitable function of the
weights wi’s, for example the squared error
E[w1,…,wn] = ½dD (td-yd)2
where D is the set of training examples
Minimization technique: gradient descent (versus connection
weights
E
w
Gradient Descent
D={<(1,1),1>,<(-1,-1),1>,
<(1,-1),-1>,<(-1,1),-1>}
Gradient:
E[w]=[E/w0,… E/wn]
w=- E[w]
wi=- E/wi
=/wi 1/2d(td-yd)2
= /wi 1/2d(td-i wi xi)2
=
d(td- yd)(-xi)
(w1,w2)
(w1+w1,w2 +w2)
Gradient Descent
Gradient-Descent(training_examples, )
Each training example is a pair of the form <(x1,…xn),t> where (x1,…,xn) is the
vector of input values, and t is the target output value, is the learning rate
(e.g. 0.1)
Initialize each wi to some small random value
Until the termination condition is met, Do
Initialize each wi to zero
For each <(x1,…xn),t> in training_examples Do
Input the instance (x1,…,xn) to the linear unit and compute the
output y
For each linear unit weight wi Do
wi = wi + (t-y) xi
For each linear unit weight wi Do
wi := wi+wi
Incremental Gradient Descent
Batch mode : gradient descent
w = w - ED[w] over the entire data D
ED[w]=1/2d(td-yd)2
Incremental mode: gradient descent
w = w - Ed[w] over individual training examples d
Ed[w]=1/2 (td-yd)2
Incremental Gradient Descent can approximate Batch Gradient
Descent arbitrarily closely if is small enough
Perceptron vs Gradient Descent Rule
Perceptron learning rule guaranteed to succeed if
Training examples are linearly separable
Sufficiently small learning rate
Linear unit training rules using gradient descent
Guaranteed to converge to hypothesis with minimum
squared error
Given sufficiently small learning rate
Even when training data contains noise
Even when training data not separable by H
Multi-Layer (feedforward) Networks
Strati intermedi tra input e output
Connessioni da strati di livello basso a strati di livello
alto; nessuna connessione all'interno di uno stesso
strato
Stato di un neurone: x
Funzione di transizione:
con P(x)
xk P( w jk x j )
j
funzione sigmoidale
Per ogni configurazione x del primo strato (ingresso),
la rete calcola una configurazione y dell'ultimo strato
(uscita)
Multi-Layer Networks
output layer
…
…
…
hidden layers
input layer
Multi-Layer Networks
Obiettivo è che, fissata una mappa f tra configurazioni di
ingresso e di uscita, sulla base di una sequenza di stimoli xk, la
rete cambi i pesi delle connessioni in modo che, dopo un numero
finito s di passi di apprendimento, l'uscita yk coincida con f(xk)
per ogni k>s, almeno approssimativamente.
Criterio di modifica: minimizzare un "criterio di discrepanza" tra
risposta della rete e risposta desiderata
Teorema (Irie-Miyake, 1988): Un solo strato nascosto è
sufficiente per permettere di calcolare qualsiasi funzione da un
insieme finito a {0,1}
Example
Exclusive or with one hidden layer
.5
+1
+1
–2
1.5
+1
+1
Sigmoid Unit
x1
w1
w2
x2
.
.
. w
n
xn
x0=1
w0 net=i=0n wi xi
y=(net)=1/(1+e-net)
y
(x) is the sigmoid function: 1/(1+e-x)
d(x)/dx= (x) (1- (x))
Training a two layers network
Input
x
Weights
w
Output
yj = iwijxi
Žy
Ž w x
ŽE ŽE Žyj
=
= –(tj–yj) j = –j i ij j = –jxi
Žw ij Žyj Žw ij
Žw ij
Žw ij
I pesi sono modificati proporzionalmente a questa
derivata (regola delta):
w ij = jxi
La convergenza a un minimo globale é garantita per
funzioni di attivazione lineari senza unità nascoste e per
dati consistenti
Multilayer networks of sigmoid units
Neurons u1, u2, …, un:
input units
hidden units
output units
Real weights wij
Activation states sj
Net input to uj :
nj
w s
ij i
i
Sigmoid transition function:
1
sj(t+1) = -ni (t)
1 e
Multilayer networks of sigmoid units
Let x input, t expected output, y actual output
Consider square norm
1
(t j y j ) 2
2 j
Modify weights using:
w ij = –
Since:
ŽE
Žw ij
ŽE ŽE Žnj ŽE
=
=
s = (def) –j s j
Žwij Žnj Žwij Žnj j
we need to determine:
j = –
ŽE
Žnj
Backpropagation Algorithm
Step 1 – Input
Input neuron uj is set to state
xj
Step 2 – Propagation
The state of hidden or output neurons uj is computed
sj = fj(nj)
Step 3 – Comparison
For each output neuron uj, given the expected output, compute:
j = f 'j(nj)(tj – y j)
Step 4 – Error backpropagation
For each hidden neuron uj, compute:
j = f 'j(nj)(• wjh h)
Step 5 – Weights update
h
wij := w ij + isj
Backpropagation Algorithm
Initialize each wi to some small random value
Until the termination condition is met, Do
For each training example <(x1,…xn), t> Do
Input the instance (x1,…,xn) to the network and compute
the network outputs yk
For each output unit k
k=yk(1-yk)(tk-yk)
For each hidden unit h
h=yh(1-yh) k wh,k k
For each network weight w,j Do
wi,j=wi,j+wi,j where
wi,j= j xi,j
Backpropagation
Gradient descent over entire network weight vector
Easily generalized to arbitrary directed graphs
Will find a local, not necessarily global error minimum
-in practice often works well (can be invoked multiple times
with different initial weights)
Often include weight momentum term
wi,j(n)= j xi,j + wi,j (n-1)
Minimizes error training examples
Will it generalize well to unseen instances (over-fitting)?
Training can be slow typical 1000-10000 iterations
(use Levenberg-Marquardt instead of gradient descent)
Using network after training is fast
Backpropagation Algorithm
Limiti
mancanza di teoremi generali di convergenza
può portare in minimi locali di E
difficoltà per la scelta dei parametri
scarsa capacità di generalizzazione
Possibili modifiche migliorative
Tasso di apprendimento adattivo:
= g(gradiente di E)
Termine di momento wij (t+1) = isj + wij (t)
Range degli stati da –1 a 1
Deviazioni dalla discesa più ripida
Variazioni nell'architettura (numero di strati nascosti)
Inserimento di connessioni all'indietro
Backpropagation Algorithm
Il tasso di apprendimento
grande, rischio di comportamento oscillatorio
piccolo, apprendimento lento
Strategie di identificazione della architettura ottimale
Rete grande apprende facilmente, ma generalizza male
Rete piccola apprende con difficoltà, ma generalizza bene
A partire da una rete grande tolgo neuroni nascosti, se
valuto che può continuare ad apprendere anche con meno
neuroni
A partire da una rete piccola aggiungo neuroni nascosti,
se la discesa della funzione E é troppo lenta o bloccata
A partire da una ipotesi iniziale di rete, aumento o diminuisco i nodi
nascosti, secondo criteri misti
Backpropagation Algorithm
Inserimento di connessioni all'indietro
in presenza di connessioni con ritardo q l'input netto é:
n j t
Q
w ijq s j t q
q 1
j
la funzione E é calcolata pesando l'errore nel tempo:
T
E = 1 • • jt (sj – tj 2
2 j t=1
nel calcolo delle derivate occorre aggiungere variabili ausiliarie
Il ruolo dell'integrazione
la rete può integrarsi con moduli tradizionali, sfruttando tutte le
informazioni simboliche e le sinergie che vi possono essere
ALVINN
Drives 70 mph on a public highway
Camera
image
30 outputs
for steering
4 hidden
units
30x32 pixels
as inputs
30x32 weights
into one out of
four hidden
units
8-3-8 Binary Encoder -Decoder
8 inputs
3 hidden
Input
Output
10000000 10000000
01000000 01000000
00100000 00100000
00010000 00010000
00001000 00001000
00000100 00000100
00000010 00000010
00000001 00000001
Can this be learned ?
8 outputs
Hidden values
.89 .04 .08
.01 .11 .88
.01 .97 .27
.99 .97 .71
.03 .05 .02
.22 .99 .99
.80 .01 .98
.60 .94 .01
Convergence of Backprop
Gradient descent to some local minimum
Perhaps not global minimum
Add momentum
Stochastic gradient descent
Train multiple nets with different initial weights
Nature of convergence
Initialize weights near zero
Therefore, initial networks near-linear
Increasingly non-linear functions possible as training
progresses
Expressive Capabilities of ANN
Boolean functions
Every boolean function can be represented by network
with single hidden layer
But might require exponential (in number of inputs)
hidden units
Continuous functions
Every bounded continuous function can be approximated
with arbitrarily small error, by network with one hidden
layer [Cybenko 1989, Hornik 1989]
Any function can be approximated to arbitrary accuracy
by a network with two hidden layers [Cybenko 1988]
Working with backpropagation
Come evitare i minimi locali?
Quanto è lungo il tempo di apprendimento?
Come scegliere ?
Nessuna risposta teorica, solo risultati di simulazione
Working with backpropagation
Esempio: Funzione Logistica
oj
o j
n j
1
1 e
e
nj
n j
ij i
j
i
n j
(1 e
w o
n j 2
)
1
1 e
n j
1
1
n
1 e j
j (t j o j ) o j (1 o j )
j o j (1 o j )
w
k
jk
o j (1 o j )
unità output
unità nascosta
k
Il ruolo della costante
Troppo grande: oscillazione
Troppo piccolo: apprendimento lento
Il problema XOR
Soluzione 1
y
6.3
-4.2
-4.2
-9.4
x3
2.2
x1
-6.4
-6.4
x2
Il problema XOR
Logistic function
= 0.5
558 cicli
Output
≤ 0.1 per 0
≥ 0.9 per 1
x1 x 2 1
x3
x1 x 2 0
x3
x1 1
x3
x2 0
1
1 e
10.6
1
1 e 2.2
1
1 e
4.2
~0
y
~1
y
~0
y
1
1 e
2.1
1
1 e 3.1
~0
~0
1
1 e
2.1
~1
Il problema XOR
Soluzione 2
-.8
5.3
4.5
2.0
-.1
-2.0
8.8
4.3
Minimo locale!!!!
Output 0.5 per input 11 e 01
6.587 presentazioni, =0.25
9.2
Il problema XOR
APPRENDIMENTO NEL PRECETTRONE GEN.
1 0 0 0 0
0 1 0 0 0
0 0 1 0 0 1
0 0 0 1 0
0 0 0 0 1
0 1 1 1 1
1 0 1 1 1
1 1 0 1 1 0
1 1 1 0 1
1 1 1 1 0
INPUT
0
1
1
1
1
1
0
0
0
0
1
0
1
1
1
0
1
0
0
0
1
1
0
1
1
0
0
1
0
0
1
1
1
0
1
0
0
0
1
0
1
1
1
1
0
0
0
0
0
1
OUTPUT INIZ.
OUTPUT DOPO 250 CICLI
(1 CICLO)
( = .1)
.50
.48
.46
.48
.46
.51
.39
.48
.47
.46
.96
.97
.97
.97
.97
.02
.03
.03
.02
.02
Il problema XOR
-.4
-.9
-1.4
-.8
-2.9
-6.9
-1.4
-.7
0
1
1
0
1
1
1
0
0
1
-.4
0
0
1
1
0
-2.4
0
1
0
0
1
-1.7
-1.8
0
-3.3
-2.0
-1.4
-1.6
-.8
-2.2
-1.1
1
1
0
0
0
1
0
0
1
0
Difficoltà di classificazione
1
1
0
0
0
1
1
1
0
1
-2.3
-1.5
-.1
0
0
0
1
1
-1.2
0
1
1
0
0
Le reti di Hopfield
n neuroni binari a soglia ui
connessione completa con pesi simmetrici
Tij
evoluzione della rete verso uno stato stabile, a partire
da uno stato iniziale assegnato
aggiornamento sequenziale casuale con distribuzione
di probabilità uniforme
Teorema:
La rete converge a uno stato stabile, che é minimo globale o locale della
funzione energia:
E = –1 • • Tijui uj
2 j i °j
Le reti di Hopfield
Dimostrazione:
E decresce o resta invariata ad ogni aggiornamento. Se
si aggiorna ui a u'i si ha la variazione di energia:
E = E' – E = –1 ui • Tijuj
2
i °j
Se ui =0 e u'i =1 allora ui =1 e
• Ti juj•0, e quindi Ei Š0
j
Se ui =1 e u'i =0 allora ui =–1 e
• Ti juj<0, e quindi Ei <0
j
Le reti di Hopfield
In altre parole, si cambia stato solo se ciò comporta una diminuzione di energia.
Stati stabili sono gli stati di minima energia, in cui E non é abbassata da
modifiche di nessuna delle variabili ui
B
A
C
Stati di minimo
COMPUTAZIONE:
Si bloccano i valori di alcune unità (input)
Si lascia evolvere la rete fino all'equilibrio
Si leggono e interpretano i valori di alcune unità (output)
Il meccanismo probabilistico e l'esistenza di più minimi locali possono portare a
risultati diversi in diverse esecuzioni
Macchina di Boltzmann
Rete di neuroni binari che usa la tecnica dell'annealing simulato per modificare le
connessioni interne
Funzione obiettivo (bilineare):
n
V=
n
• si wij sj + •i si
i,j=1
i=1
n
=
•si ni
(si {0,1})
i=1
Matrice di connessione simmetrica
No auto connessioni
Aggiornamento neuroni casuale
Funzione di attivazione sigmoidale casuale governata dalla seguente probabilità di
transizione da s a s'
ps,s' =
1
1
(V(s)
-V(s'))
N 1+e
se s contiguo a s'
•
se s = s'
1-
ps,s"
s" contiguo a s
0
altrimenti
ove s é contiguo a s' sse la loro distanza di Hamming é 1
Macchina di Boltzmann
processo stocastico che, all'equilibrio, concentra la probabilità
nella regione critica M per V, in base alla legge di distribuzione
p(s) = e-V(s)
Z
ove
Z
é una costante di normalizzazione
Procedure: MACCHINA DI BOLTZMANN
External function: stopping_rule
BEGIN
prendi una configurazione iniziale s {0,1}
REPEAT
calcola V = V(s)
prendi uniformemente un i in {1,2,...,n}
(scelta di un vettore prossimo)
calcola V' = V(s)
IF exp(–b(V–V')) > random [0,1) THEN flip si
UNTIL stopping_rule é verificata
END
Apprendimento nelle B.M.
Si impara una buona approssimazione della distribuzione di
probabilità condizionale sull'insieme di coppie (input, output)
1. Fase positiva
Blocco unità di input e di output
Evoluzione verso l'equilibrio termico
Incremento del peso tra unità contemporaneamente attive
(Hebb)
2. Fase negativa
Blocco unità di input
Evoluzione verso l'equilibrio termico
Decremento del peso tra unità contemporaneamente attive
Elimina il rischio di saturazione dei pesi sinaptici
Literature & Resources
Textbook:
”Neural Networks for Pattern Recognition”, Bishop, C.M.,
1996
Software:
Neural Networks for Face Recognition
http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mitchell/ftp/faces.ht
ml
SNNS Stuttgart Neural Networks Simulator
http://www-ra.informatik.uni-tuebingen.de/SNNS
Neural Networks at your fingertips
http://www.geocities.com/CapeCanaveral/1624/
http://www.stats.gla.ac.uk/~ernest/files/NeuralAppl.html