Sei sulla pagina 1di 17

All’origine: il neurone biologico

Neurone:
• corpo neurale (la cellula/soma) −→ elemento operazionale
• assone (prolungamento del corpo) −→ segnale di uscita
• dendriti (prolungamenti minori) −→ segnali d’ingresso
• sinapsi (103 ÷ 104 contatti assone-dendriti) −→ pesi ingresso

Funzionamento:

• Informazione analogica d’ingresso: quantità di neurotrasmettitore o inibitore


• Funzione operazionale non-lineare: comparazione somma ingressi con una soglia
• Informazione binaria all’uscita: potenziale d’azione trasmesso lungo l’assone

!
X
y=θ x i wi − b
i

Cervello:
• 1010 ÷ 1012 neuroni, 1014 ÷ 1015 connessioni
• ingressi: esterni (informazione sensitiva) / interni (feed-back)
• abilità eccezionali di apprendimento e rappresentazione
• robustezza, tolleranza, flessibilità, analisi dati anche incompleti

Proprietà del cervello ←− dovute alla interconnettività dei neuroni

Osservazione sperimentale: la stimolazione regolare di un paio


di neuroni connessi −→ crescita efficacità della sinapsi (w ր)
=⇒ idea correlazione apprendimento-variazione recettività sinaptica
Modello artificiale: il neurone formale

Unità funzionale che riceve segnali d’ingresso da


altre unità e produce un segnale in uscita

Funzioni del neurone formale:


• integrazione segnali in ingresso con il loro peso specifico
• trasformazione segnale ”integrato” in segnale d’uscita tramite
una funzione di trasferimento

Maggior libertà di scelta per le funzioni rispetto al neurone biologico

Funzioni d’integrazione (GW : RN → R)


N
X
1. combinazione lineare: GW (Y) = wj yj (+ w0)
j=1

N N
(1) (2)
X X
2. forma quadratica: GW(1) ,W(2) (Y) = wj yj + wjk yj yk
j=1 j,k=1
v
u N
uX
3. distanza euclidea: GW (Y) = t (wj − yj )2
j=1

Funzioni di trasferimento (f : R → A)
1. A = {0, 1} ({−1, 1}) : binaria deterministica f (x) = θ(x) (sgn(x))
1
2. A = {−1, 1} ({0, 1}) : binaria stocastica P (f (x)) =
1+e−(sgn(x)β)(x−θ)

3. A = R : continua lineare (non limitata) f (x) = x


4. A = [−c, c] : continua lineare (limitata, non derivabile) (c, θ > 0)

 −c ← x < −θ
f (x) = (c/θ) x ← x ∈ [−θ, θ]
c ←x>θ

5. A = [0, 1] : continua sigmoidale logistica (limitata, derivabile)


f (x) = 1/(1 + exp(−β(x − θ)))
6. A = [−1, 1] : continua sigmoidale tangente iperbolica (limitata, derivabile)
f (x) = tanh(β(x − θ)))
Una sola unità funzionale: ”perceptron”
Funzione d’integrazione ⇒ combinazione lineare degli ingressi
Funzione di trasferimento ⇒ binaria deterministica/continua sigmoidale

Segnale d’ingresso: X = (x1, . . . , xN )T


Matrice (riga) dei pesi: W = (w1, . . . , wN!
)
X N
Segnale d’uscita: y = sgn wixi + w0 = sgn(WX + w0)
i=0

Funzione del perceptron: classificazione binaria in classi linearmente


separabili (determina un iperpiano in RN compatibile con dati prescelti)

Algoritmo di addestramento
Insieme di addestramento (learning set): {(X1, z1 ), . . . , (XM , zM )}
zj ∈ {−1, 1}, j = 1, M
(0)
1. scegliere matrice pesi iniziale W(0) , w0
(corr) (corr)
2. per j = 1, M calcolare yj = sgn(W(corr) Xj + w0 )
3. per ogni j, assegnare ”nuovo” valore corrente:
(corr) (corr) (corr)
W(corr) ← W(corr) + 1/2η(zj − yj )(Xj )T , w0 ← w0 +η
(corr)
4. se ∃j ∈ 1, M tale che zj 6= yj ritorna al passo 2, altrimenti
(corr)
assegnare al perceptron i valori correnti dei pesi W(corr) , w0
Osservazioni
• si può scegliere un tasso di apprendimento η costante (egg. η = 1)
o dipendente dall’iterazione η(W(corr) , Xj )
• si può scegliere un W(0) in maniera ”intelligente” anziché casuale
per migliorare la convergenza
• il perceptron può rappresentare qualsiasi funzione booleana
F : {−1, 1}N → {−1, 1} corrispondente ad un insieme di addestra-
mento linearmente separabile; in questo caso l’algoritmo converge
dopo un numero finito di passi
• con funzioni di trasferimento continue, si possono rappresentare
anche funzioni separabili F : RN → R; la limitazione inaccettabile
della separabilità è superata solo nelle reti multistrato
Separabilità

6x2 6x2
w1 x1 +w2 x2 +w0 =0
HH
∗ ∗ ∗ d
HH
d
d
HH ∗ C1
HdH w1 (x1 −a)2 +w2 x22 +w0 =0
d d
HH
∗∗ ∗
d HH x1 ∗ x1
HH - -
∗ ∗
d
H
H ∗∗
d d
C1
d
C2 C2 d

Separabilità lineare: ∃ una retta Non separabilità lineare: /∃ una


(iperpiano) che separa le due retta (iperpiano) per separare le
classi di punti C1 , C2 due classi di punti C1, C2

D1 = 0
6x2 D3 = 0 6x2

@
@ 
@ C1
C3 @ ∗ ∗ ∗ ∗

@  C1 D1 = XD3 D1 = D3
d
@  XXX
+ ∗ +XXX∗XX∗ ∗
+ @
d
 ∗
+ @@ ∗ x1
-
+ x1
-
 +
d
+
d@
@
d
+  +
+
d d
@ C3
D2 = 0  d @d
 d @
 C2 @@ C2
 D2 = D3

Separabilità lineare forte: ∃ una retta Separabilità lineare semplice: ∃ una
(iperpiano) Di (X) = 0 per ciascuna retta (iperpiano) Di (X) = 0 per
classe di punti, tale che X0 ∈ Cj ⇔ ciascuna classe di punti, tale che
Dj (X0) > 0 & Dk (X0) < 0 (∀k 6= j) X0 ∈ Cj ⇔ Dj (X0) > Dk (X0) (∀k 6= j)
Reti neurali artificiali (ANN)

Insieme di unità funzionali intercollegate che può


ricevere segnali d’ingresso e produrre segnali d’uscita

Elementi ANN:
1. Architettura −→ topologia/connettività
2. Funzionamento −→ trasformazione ingresso in uscita
3. Adattamento/Addestramento −→ vari algoritmi

1. Architettura

ANN = grafo orientato


(unità funzionali ↔ vertici, flusso informazionale ↔ freccie grafo)

Unità funzionali...
• d’ingresso: ricevono e ritrasmettono alla rete i segnali d’ingresso
• d’uscita: il loro segnale d’uscita definisce l’uscita dalla rete
• nascoste: connesse soltanto ad altre unità della rete

Topologia ANN:
• arbitraria – senza relazione d’ordine (”tutto connesso a tutto”) – Hopfield
• geometrica – con funzione distanza tra le unità (tipo griglia) – Kohonen
• stratificate – successione di livelli gerarchici, ordine intralivello arbitraria –
feedforward, ecc.

Connettività ANN:
• totale (per topologia arbitraria)
• tra i livelli gerarchici distinti (per topologia a strati)
• tra elementi di uno stesso strato (laterali - per topologia geometrica)
• tra uno strato (unità) e sé stesso: feedback (per ogni topologia)
Rete neurale a tre strati

Strato ingresso Strato nascosto Strato uscita


(input layer ) (hidden layer ) (output layer )
' $ ' $ ' $
x1    y1
- 1 - 1 - 1 -
 @
A  
  @
A  
 
A@  A@ 
A @  A @ 
.. A @  .. A @  ..
.. A @ .
.. A @ ..
..   ..
A @  . A @ 
A @ A @
A  @ A  @
xi  A  @  A  @  yk
- i A @-
R j
@ A @-
R k
@ -
 @ A   @ A  
@  A @  A
@  A @  A
.. @ A .. @ A ..
..  @ A .  @ A ..
.. A .
.. A ..
 @  @
 @ A  @ A
@ A @ A
  @A 
 
 @ A 
xN0 @ AAU @ AAU yN2
- N0  -
R
@  -
R
@ -
  
N1 N2
& % & % & %
Wij Wjk

2. Funzionamento

ANN = ”scatola nera” (trasforma un segnale d’ingresso X in un segnale d’uscita Y)


• non iterativo (per reti feedforward FFNN – flusso unidirezionale),
Y = FW (X)
xi → f1(xi) = yi (di regola, f1 (x) = x)
X
yi wij = xj → f2(xj ) = yj
i
X
yj wjk = xk → f3 (xk ) = yk
j
Formula ristretta:
!!
X X
yk = f3 wjk f2 wij f1(xi)
j i

• iterativo (reti a connessioni inverse/ricorrenti RNN – feedback ),


Y = limn→∞ X(n) con
X(0) = X, X(n + 1) = FW (X(n)) [n = 1, 2, . . . ]
3. Addestramento (Apprendimento)
Modificazione dei parametri (W) adeguando il
comportamento della rete al problema da risolvere

Elementi apprendimento:
1. insieme di informazioni
2. algoritmo di addestramento

1. Insieme di informazioni

• segnali d’ingresso semplici → apprendimento non-supervisionato


(rappresentazione codificata del medio)
• segnali d’ingresso + uscita → apprendimento supervisionato

2. Algoritmi di addestramento

• calcolo evoluzionistico → ispirati dall’evoluzione naturale:


”popolazione” = insieme di ”individui” (reti soluzioni potenziali del problema)
”genoma” = codifica le variabili del problema (connessioni, pesi)
”ricombinazione” (crossover ) = combina i due genomi dei ”genitori”
”mutazioni” = cambiamenti stocastici dei ”genomi”
”selezione” = aprossimazioni migliori del problema / ”individui” più adatti
(fit) → maggior probabilità di esser scelti ”genitori” della nuova generazione

• algoritmi deterministici → minimizzazione dell’errore (lungo il gradiente)


algoritmo di base per apprendimento supervisionato: (error) backpropagation
richiede funzione derivabile di trasferimento (sigmoida)
versioni:
– inizializzazione dei parametri → aleatoria / algoritmica (”intelligente”)
– aggiornamento dei parametri → vari algoritmi 6= dal gradiente semplice
– tasso apprendimento → costante / variabile
– funzione d’errore → quadratica, entropica, ecc.
– percorso valutazione dell’insieme di addestramento → sequenziale/aleatorio
– criterio di fine addestramento → numero iterazioni, errore sull’insieme di
addestramento, valori dell’aggiornamento, ecc.
Algoritmi di addestramento

Metodo del gradiente negativo (gradient descent )

Insieme di addestramento: {(X1, z1), . . . , (XM , zM )}

Pesi delle connessioni: W = {wp | p ∈ I}

Segnale in uscita: Yl = FW (Xl ) l = 1, M

Funzione d’errore (media quadratica):


M M Nk
1 X 1 XX
E(W) = El (W) = (zkl − ykl )2
M 2M
l=1 l=1 k=0

Lo scopo dell’addestramento è di trovare i pesi (Wm )


che minimizzano E(W) sull’insieme di addestramento

Per ricercare il minimo della funzione E(W), lo spostamento graduale


si deve fare sulla direzione del gradiente massimale, verso il ”giù”:
 
∂E
−∇W E(W) = − |p ∈ I
∂wp

Relazioni di aggiornamento dei pesi:

W ← W − η∇W E(W)

∂E
wp ← wp − η p∈I
∂wp

η > 0 – tasso di apprendimento → rapidità di discesa sulla varietà


differenziabile E(W)
Retropropagazione (Backpropagation)

Impostazione del problema

Rete neurale multistrato → conosciute le uscite Yl corrispondenti al


training set → con il metodo del gradiente negativo per EW si possono
aggiustare i pesi dello strato d’uscita.

Problema non-triviale: aggiustare i pesi dei neuroni degli strati nascosti.

Per un elemento dell’insieme di addestramento ricordiamo l’espressione:


X X X X
yk = f3(xk ) = f3( yj wjk ) = f3 ( wjk f2 (xj )) = f3 ( wjk f2 ( wij yi ))
j j j i

Le derivate parziali del gradiente:


• strato di uscita
∂E ∂E ∂yk
= = −(zk − yk ) f3′ (xk ) yj = −δk yj
∂wjk ∂yk ∂wjk
• strato nascosto
∂E X ∂E ∂yk ∂yj X
= = − (zk − yk ) f3′ (xk ) wjk f2′ (xj )yi =
∂wij ∂yk ∂yj ∂wij
k k
X
− δk wjk f2′ (xj )yi = −δj yi
k

Il ”segnale di errore” δk (= (zk − yk ) f3′ (xk )) si ritrova ”propagato


indietro” in δj (= k δk wjk f2′ (xj ))
P

Analisi dell’errore della rete neurale → due fasi


1. FORWARD: Il segnale dato viaggia per le connessioni dall’ingresso
verso l’uscita per generare la risposta corrispondente della rete
2. BACKWARD: Il segnale di errore si propaga dall’uscita verso
l’ingresso per aggiustamento dei pesi delle stesse connessioni
Algoritmo di retropropagazione

• seriale (incremental ) aggiornamento pesi dopo ciascun elemento


dell’insieme di addestramento durante il percorso di un ciclo (epoca)
→ più facile, meno fedele
• globale (batch) aggiornamento pesi cumulati alla fine del ciclo
→ più complicato, più robusto

1. Tappa inizializzazione
assegnazione pesi iniziali diversi da 0 (abitualmente wp ∈ (−1, 1))
assegnazione tasso di apprendimento η(0)
assegnazione errore ammissibile Eε
assegnazione numero massimo di epoche qmax
assegnazione contatore epoche q = 0
2. Tappa iterazione
REPEAT
FOR l = 1, M DO
fase forward: calcolare Yl = FW (Xl )
fase backward:
• calcolare l’errore per lo strato di uscita δkl
• calcolare l’errore
P per gli strati nascosti (dall’ultimo al
primo) δj (= k δk wjk f2′ (xj ))
l l

aggiornare i pesi della rete (delta rule):


l
wmn ← wmn + η(q) δm ynl
END DO
q ←q+1
FOR l = 1, M DO
calcolare uscite aggiornate: Yl = FW (Xl )
END DO
calcolare con uscite aggiornate l’errore EW
UNTIL EW ≤ Eε OR q > qmax
Retropropagazione: caratteristiche

Vantaggi dell’algoritmo:
• metodo effettivo adatto a ingressi / uscite continue
• riproduce con precisione arbitraria funzioni continue (rete a due
strati) o qualsiasi funzione (rete a tre strati)
• buona capacità di generalizzazione (se la rete non è sovrallenata)
• buona tolleranza per il rumore nell’insieme di addestramento

Problemi organici dell’algoritmo:


• lentezza della convergenza −→ l’errore accettabile può essere
raggiunto soltanto dopo un grande numero di epoche (iterazioni)
• blocco in minimo locale −→ se EW ha minimi locali, il metodo
del gradiente negativo può rivelarsi insufficiente per fare uscire la
rete da una tale regione
• ristagno −→ l’algoritmo diventa poco effettivo se le modifiche
dei pesi sono troppo piccole, anche lontano dal minimo (nel caso
in cui la ipersuperficie EW ha porzioni ”piatte”)
• sovrallenamento (overfitting ) −→ la rete riesce a minimiz-
zare in maniera ottimale l’errore sull’insieme di addestramento,
invece su un qualsiasi ingresso non appartenente all’insieme di
addestramento, l’errore è molto grande (imparando ”troppi det-
tagli” dell’insieme di addestramento, la rete finisce per memoriz-
zare questi esempi e non può più generalizzare)
• progettazione −→ non esiste una regola generale di scelta
dell’architettura della rete in funzione del problema da affrontare
Retropropagazione: modifiche funzionali

Lentezza della convergenza


Soluzioni euristiche o variazioni nel metodo del gradiente negativo

• Tasso di apprendimento variabile


η piccolo −→ convergenza lenta
η grande −→ oscillazioni intorno al minimo
si sceglie una funzione η(q) dipendente dall’epoca q
IF E(q) > (1 + γ) E(q −1) THEN W(q) ← W(q −1), η(q) ← αη(q −1)
IF E(q) < (1 − γ) E(q − 1) THEN W(q) ← W(q), η(q) ← βη(q − 1)
IF (1 − γ) E(q − 1) < E(q) < (1 + γ) E(q − 1) THEN
W(q) ← W(q), η(q) ← η(q − 1)

con parametri α ∈ (0, 1), β ∈ (1, 2), γ ≪ 1

• Introduzione del ”momento”


aggiornamento dei pesi → combinazione lineare di variazioni all’epoca
corrente con variazioni dell’epoca precedente (”inerzia” dell’aggiornamento)
wmn ← wmn + η(q) δm yn
dell’algoritmo originale viene sostituita da
wmn ← wmn + η(q)(1 − ǫ) δm yn + ǫMmn
Mmn ← η(q)(1 − ǫ) δm yn + ǫMmn
con parametro ǫ ∈ (0, 1)

• Metodo del gradiente coniugato / altro metodo


sono da valutare espressioni più complesse e di convergenza migliore
del gradiento semplice
Blocco in minimo locale
Soluzioni euristiche o minimizzazione locale → minimizzazione globale

• Cambiamento pesi iniziali


- non implica modificazioni dell’algoritmo
- consente di evitare un eventuale minimo locale vicino alla prima
scelta dei pesi iniziali
- non è economico e sicuro (altri minimi locali)

• Inserimento aggiornamenti aleatori


- consente l’evasione effettiva di un minimo locale
- può essere poco economica

• Metodi di ottimizzazione globale

– algoritmi di prova aleatoria

1. Tappa inizializzazione
assegnazione pesi iniziali W aleatori
assegnazione errore ammissibile Eε
assegnazione numero massimo di epoche qmax
assegnazione contatore epoche q = 0
2. Tappa iterazione
calcolare l’errore EW
REPEAT
assegnazione aleatoria aggiornamenti ∆
assegnazione pesi provisori W′ = W + ∆
calcolare l’errore aggiornato EW′
IF EW′ < EW THEN W ← W′
q ←q+1
UNTIL EW ≤ Eε OR q > qmax
– algoritmi tipo simulated annealing (reti Hopfield)
– algoritmi genetici
Ristagno
Causa: ingressi grandi in valore assoluto → piccole derivate delle fun-
zioni di trasferimento (sigmoidale) → valori δm ≪ 1 → aggiornamenti
non significativi

Soluzioni euristiche:
• ”Penalizzazione” dei pesi grandi
X
- si opera la modifica dell’errore: E W = EW + λ wp2
p∈I
- parametro di penalizzazione λ > 0

• Sostituzione delle derivate con funzioni finite

- il valore dell’aggiornamento è calcolato ricorsivamente


RPROP (Resilient BackPropagation):
- il segno della derivata stabilisce il segno dell’aggiornamento

 −∆p (q) ← ∂EW (q)/∂wp > 0
∆wp(q) = 0 ← ∂EW (q)/∂wp = 0
∆p (q) ← ∂EW (q)/∂wp < 0

- il valore dell’aggiornamento RPROP



∂EW (q − 1) ∂EW (q)
α∆ (q − 1) ← >0

p

∂wp ∂wp




 ∂EW (q − 1) ∂EW (q)
∆p(q) = ∆p(q − 1) ← =0

 ∂w p ∂w p

 ∂EW (q − 1) ∂EW (q)
 β∆p(q + 1) ← <0


∂wp ∂wp
- parametri 0 < β < 1 < α
- ∃∆max imposto (valore massimo dell’aggiornamento)
Sovrallenamento (overfitting)
Cause:
1. numero eccessivo di epoche di addestramento (causa principale)
2. troppe unità nascoste
3. insieme di addestramento troppo ristretto
4. tolleranza ridotta al rumore

Soluzioni:
• troppe epoche ⇒ early stopping

insieme di dati = insieme di addestramento + insieme di conferma + insieme


di test
insieme di addestramento → usato per l’algoritmo
insieme di conferma → usato per verificare l’andamento dell’errore
(se comincia a crescere ⇒ interruzione dell’addestramento)
insieme di test → usato per comparare varie reti tra di loro

• troppe unità nascoste ⇒ modifica numero unità nascoste

metodi costruttivi
– poche unità iniziali
– se la rete non rappresenta bene ⇒ raggiungere unità
metodi distruttivi
– molte unità iniziali
– se la rete non generalizza bene ⇒ eliminare unità

• effetti eccessivi del rumore ⇒ cambiamento architettura rete


Predizioni con ANN

Serie temporali (storiche): sequenze di valori misurati a tempi


successivi (X(ti)).

Problema canonico: dati gli ultimi L termini della serie


(X(tj ), j = i − L + 1, i) → predire il prossimo valore (X(ti+1))

Osservazione: la predizione ai tempi successivi si può ottenere in


maniera iterativa, usando come dati di partenza (X(tj ), j = i − L + 2, i + 1)

Strategia canonica: persistenza (prossimo valore invariato,


X(ti+1) = X(ti)) deve essere superata da qualsiasi metodo predittivo

Vari tipi di input:


• regolare → il segnale d’ingresso è preso direttamente dalla seria
temporale senza modifica X0 (ti) = X(ti)
• differenze successive → il segnale d’ingresso è
X0(ti ) = X(ti) − X(ti−1)
• differenze dalla media → il segnale d’ingresso è
L
X
X0(ti ) = X(ti) − X(ti) con X(ti ) = X(ti−j+1)/L
j=1

input differenziali → convergenza migliore, errore ridotto

Scaling: uno scalare x si può convertire in segnale di input


x0 ∈ [−1, 1] tramite
x − xmin
x0 = 2 −1
xmax − xmin
Con input differenziale si può sempre scegliere xmax = −xmin tale che
lo 0 sia corrispondente all’uscita reale invariata
(xmax − xmin)(youtput + 1)
xf = xmin +
2
Implementazione serie temporali su ANN

• Architettura:
– numero di unità d’ingresso = (numero variabili scalari da con-
siderare) × (numero elementi della seria temporale, L)
– numero di unità d’uscita = numero variabili scalari da consid-
erare
– numero di unità nascoste = funzione (crescente) del cardinale
dell’insieme di addestramento
– si possono considerare uno o due strati di unità nascoste
• Funzionamento:
– unità d’ingresso e d’uscita → funzioni di trasferimento lineari
– unità nascoste → funzioni di trasferimento sigmoidali
• Addestramento
– algoritmo canonico: retropropagazione
– modifiche canoniche → accelerazione della convergenza, elim-
inazione del sovrallenamento
– altre modifiche: vari metodi per migliorare le predizioni (cal-
colo parallelo, algoritmi genetici, introduzione di feedback, cam-
biamenti della topologia, ecc.)

Considerazioni

- l’insieme di addestramento deve coprire bene tutte le possi-


bilità (troppe sequenze simili → sovrallenamento)
- insieme di addestramento esteso → tempi lunghi di addestra-
mento della rete → i pesi finali sono potenzialmente soggetti
al copyright