Reti neurali

annuncio pubblicitario
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
j1
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:
wx ≥ 0
se
xA
wx < 0
se
xB
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 xA
w' := w–x se xB
3. Si prova un nuovo input
Il teorema di convergenza del percettrone
Correttezza
Sia xA e wx < 0
Poiché xx ≥ 0 vale w'x = (w+x)x = wx + xx > wx
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}iN
A' = AB'
v
tale che
B' = {-x | xB}
vx ≥ 0
xA'
sequenza di addestramento
 xiA'
 occorrono infinite volte elementi sia di A che di B'

{wi}iN
sequenza dei pesi
scelta arbitraria
 w0 = 0
 wk+1 =
wk
se wkxk ≥ 0
wk + xk altrimenti
Il teorema di convergenza del percettrone
sequenza dei vettori dei pesi modificati
 {vi}iN
sottosequenza di training corrispondente
{ti}iN
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 | xA')
 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 | xA'}
|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
01 = 1
00 = 0
11 = 0
10 = 1
Ipotesi: Esiste un neurone binario a soglia tale che xy = 1
se e solo se x + y ≥l
x
y

l
xy
Un esempio





Essendo  simmetrica, vale anche xy = 1 sse y + x ≥ l
Sommando e dividendo per 2 si ottiene:
xy = 1 sse tx + ty = t(x+y) ≥ l
ove t = (+ )/2
Posto ora x+y = s, abbiamo:
xy = 1 sse t s – l≥ 0
Dallo studio del polinomio di primo grado in s y = t s –
si ottiene:
Per s = 0, ts – l < 0
(00 = 0)
Per s = 1, ts – l ≥ 0
(01 = 1 = 10)
Per s = 2, ts – l < 0
(11 =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] = ½dD (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/2d(td-yd)2
= /wi 1/2d(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/2d(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 = –jxi
Žw ij Žyj Žw ij
Žw ij
Žw ij
I pesi sono modificati proporzionalmente a questa
derivata (regola delta):
w ij = jxi
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
Scarica