• Non ci sono risultati.

Alternativa 1: hard-threshold iperpiano!!

N/A
N/A
Protected

Academic year: 2022

Condividi "Alternativa 1: hard-threshold iperpiano!!"

Copied!
48
0
0

Testo completo

(1)

Neurone Artifi ciale

Alternativa 1: hard-threshold iperpiano!!

w1 w2

wn

w0 x1

x2

xn

x0 = 1

. .

.

Σ

net = Σ wi xi

i=0 n

1 1 + e-net o = σ(net) = sign(net)

Alternativa 2: neurone sigmoidale funzione derivabile

w1 w2

wn

w0 x1

x2

x0 = 1

. .

.

Σ

net = Σ wi xi

i=0 n

1 o = σ(net) = -net

(2)

Reti Neurali Artifi ciali

Una Rete Neurale Artificiale `e un sistema costituito da unit `a interconnesse che calcolano funzioni (numeriche) non-lineari:

le unit `a di input rappresentano le variabili di ingresso;

le unit `a di output rappresentano le variabili di uscita;

le unit `a di nascoste (se ve ne sono) rappresentano variabili interne che

codificano (dopo l’apprendimento) le correlazioni tra le variabili di input

relativamente al valore di output che si vuole generare.

(3)

Reti Neurali Feed-forward (un solo livello nascosto)

wkj z1

wji

z2 zk zc

... ...

... ...

... ...

... ...

... ...

output z

x1 x2 xi xd

y1 y2 yj yn

H

t1 t2 tk tc

target t

output

nascoste

input w1

w2 w0

x1 x2

x0 = 1

. Σ

(4)

Reti Neurali Feed-forward e Superfi ci di Decisione

(5)

Apprendimento di Reti di Perceptron

Abbiamo visto che un singolo Perceptron non riesce ad apprendere tutte le funzioni booleane (es. XOR)

Per `o una rete di Perceptron pu `o implementare una qualunque funzione booleana (tramite AND, OR, NOT).

Problema: come effettuare l’apprendimento di una rete di Perceptron ? Non si sa come assegnare “credito” o “colpe” alle unit `a nascoste:

PROBLEMA DELL’ASSEGNAMENTO DEL CREDITO

Una possibile soluzione `e quella di rendere il singolo neurone derivabile e sfruttare la tecnica di Discesa del Gradiente per apprendere i pesi “giusti”.

(6)

Discesa di Gradiente

Consideriamo un Perceptron SENZA la hard-threshold:

e defi niamo una misura dell’errore commesso da un particolare vettore dei pesi:

Funzione Errore:

dove `e la cardinalit `a dell’insieme di apprendimento .

La funzione errore di sopra misura lo scarto quadratico medio (diviso 2) del valore target da quello predetto dal neurone ( ).

(7)

Discesa di Gradiente

-1 0

1 2

-2 0 -1

2 1 3

0 5 10 15 20 25

w0 w1

E[w]

Idea base: partire da un random e modifi carlo nella direzione contraria al gradiente (che indica la direzione di crescita di )

, ,

(8)

Calcolo del gradiente

(9)

Calcolo del gradiente

(10)

Calcolo del gradiente

(11)

Calcolo del gradiente

(12)

Calcolo del gradiente

(13)

Discesa di Gradiente

Gradient-Descent( )

ogni esempio di apprendimento `e una coppia , dove `e il vettore di valori in input, e `e il valore desiderato in output (target). `e il coefficiente di apprendimento (che ingloba ).

Assegna a valori piccoli random

Finch ´e la condizione di terminazione non `e verifi cata, fai

Per ogni in , fai

Presenta al neurone e calcola l’output Per ogni , fai

Per ogni , fai

(14)

Discesa di Gradiente con Sigmoide

Consideriamo un Perceptron con funzione sigmoidale:

dove si ricorda che

Si noti che per vale la seguente relazione

e ricordiamo che (derivata di funzioni composte)

(15)

Calcolo del gradiente con sigmoide

(16)

Calcolo del gradiente con sigmoide

(17)

Calcolo del gradiente con sigmoide

(18)

Calcolo del gradiente con sigmoide

(19)

Reti Neurali Feed-forward: notazione

wkj z1

wji

z2 zk zc

... ...

... ...

... ...

... ...

output z

x1 x2 xi xd

y1 y2 yj yn

H

t1 t2 tk tc

target t

output

nascoste

input

(20)

Reti Neurali Feed-forward: notazione

unit `a di ingresso, dimensione dei dati in ingresso

( se si include la soglia nel vettore dei pesi )

unit `a nascoste (con output )

unit `a di output, dimensione dei dati in output , dimensione dei dati desiderati

peso dalla unit `a di ingresso alla unit `a nascosta peso dalla unit `a nascosta alla unit `a di output

La funzione errore, considerando che si hanno unit `a di output, diventa

(21)

Calcolo del gradiente per i pesi di una unit `a di output

Fissiamo gli indici e :

j^ k^

(22)

Calcolo del gradiente per i pesi di una unit `a di output

Fissiamo gli indici e :

j^ k^

(23)

Calcolo del gradiente per i pesi di una unit `a di output

Fissiamo gli indici e :

j^ k^

(24)

Calcolo del gradiente per i pesi di una unit `a di output

Fissiamo gli indici e :

j^ k^

(25)

Calcolo del gradiente per i pesi di una unit `a di output

Fissiamo gli indici e :

j^ k^

(26)

Calcolo del gradiente per i pesi di una unit `a nascosta

Fissiamo gli indici e :

^j

(27)

Calcolo del gradiente per i pesi di una unit `a nascosta

Fissiamo gli indici e :

^

i^ j

(28)

Calcolo del gradiente per i pesi di una unit `a nascosta

Fissiamo gli indici e :

^j

(29)

Calcolo del gradiente per i pesi di una unit `a nascosta

Fissiamo gli indici e :

^

i^ j

(30)

Calcolo del gradiente per i pesi di una unit `a nascosta

Fissiamo gli indici e :

^j

(31)

Calcolo del gradiente per i pesi di una unit `a nascosta

Fissiamo gli indici e :

^

i^ j

(32)

Calcolo del gradiente per i pesi di una unit `a nascosta

Fissiamo gli indici e :

^j

(33)

Calcolo del gradiente per i pesi di una unit `a nascosta

Fissiamo gli indici e :

^

^ j

(34)

Reti Neurali Feed-forward: Fase Forward

(35)

Reti Neurali Feed-forward: Fase Backward

(36)

Algoritmo Back-Propagation (uno strato nascosto, stocastico)

Back-Propagation-1hl-stocastico( , topologia rete)

Inizializza tutti i pesi a valori random piccoli

Finch ´e la condizione di terminazione non `e verifi cata,fai

Per ogni in ,fai

1. presenta alla rete e calcola il corrispondente output 2. Per ogniunit `a di output

3. Per ogniunit `a nascosta

(37)

Esempio di Funzione Errore

-100

0

100 -40

-20 0

20 40 0

0.25 0.5 0.75 1

-100

0

100

-4 -3 -2 -1 0 1 2 3 4

x1

R x*

R

x1 x0,y0

w1 y1 w2 z1

w0

w0

w1 J(w)

(38)

Discesa di Gradiente Batch e Stocastica

Batch:

Fai fi nch´e condizione di terminazione non soddisfatta

1. calcola 2.

Stocastica (Incrementale):

Fai fi nch´e condizione di terminazione non soddisfatta

Per ogni esempio di apprendimento in

1. calcola 2.

dove

(39)

Alcuni Problemi ...

Scelta della topologia della rete determina lo Spazio delle Ipotesi;

Scelta del passo di discesa (valore di ):

w

E

w*

E E E

w* w w

w* w

w*

apprendimento lento..., ma calcolo di output veloce

MINIMI LOCALI !!

(40)

Esempio di Apprendimento per Rete Feed-forward

Compressione di Dati

Inputs Outputs

Input Output

00000001 00000001

00000010 00000010

00000100 00000100

00001000 00001000

00010000 00010000

00100000 00100000

(41)

Esempio di Apprendimento per Rete Feed-forward

Compressione di Dati

Inputs Outputs

Input Valori Output

Nascosti

10000000 0.89 0.04 0.08 10000000

01000000 0.01 0.11 0.88 01000000

00100000 0.01 0.97 0.27 00100000

00010000 0.99 0.97 0.71 00010000

00001000 0.03 0.05 0.02 00001000

00000100 0.22 0.99 0.99 00000100

00000010 0.80 0.01 0.98 00000010

(42)

Curve di Apprendimento

0.2 0.3 0.4 0.5 0.6 0.7 0.8

0.9 Errore per ogni unita' di output

(43)

Curve di Apprendimento

0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9

1 Codifica dell'input 01000000 a livello delle unita' nascoste

(44)

Curve di Apprendimento

-3 -2 -1 0 1 2 3

4 Pesi dall’input ad una unita’ nascosta

(45)

Simmetrie

h

1

h

2

h

3

h

1

= h

2

= h

3

out

w w w

w w

w w w w

w w

w

(46)

Simmetrie

=(t−out)

h

1

h

2

h

3

’ net σ ( )out

w = hδout Δ

=

= out

h h h =h

δout

w w w

w w

w ww w

w w w

(47)

Simmetrie

=(t−out)

x

1

x

2

x

3

h

1

h

2

h

3

δout

’ net σ ( )out

w = hδout Δ

w =δh

Δ 1 x1

=

= out

h h h =h

δout

δ1 δ2 δ3 δ1= δ2= δ3= δ

δ =h w ’ netσ ( )h h

w w w

w w

w ww w

w w w

(48)

Simmetrie

=(t−out)

h

1

h

2

h

3

δout

’ net σ ( )out

w = hδout Δ

w =δh

Δ 1 x1

w =δh

Δ 2 x2

=

= out

h h h =h

δout

δ1 δ2 δ3 δ1= δ2= δ3= δ

δ =h w ’ netσ ( )h h

w w w

w w

w ww w

w w w

Riferimenti

Documenti correlati

A major issue that we have to tackle when we use the IRIC-IOT table to compute Italian re- gions’ DVA in outflows and exports is dealing with the ‘Rest of the world’ (Row), which is

Regole fondamentali della convivenza nei gruppi di appartenenza.. Comunicare, esprimere emozioni, raccontare, utilizzando le varie possibilità che il linguaggio del

La valutazione ha una funzione formativa: è parte integrante della professionalità del docente, è strumento insostituibile di costruzione delle strategie didattiche e del processo

whose name is distinct from all other existing files, and opens the file for binary writing and reading (as if the mode string "wb+" were used in an fopen() call). If

destinata a essere sottoscritta da tutti” fa sembrare che l’esistenza medesima della verità e della realtà dipenda da fatti casuali come la continuazione della razza e della

• Regola 3: Anche se le stringhe di formato della scanf() assomigliano molto a quelle della printf(), hanno una semantica leggermente differente (leggete il manuale!). • Regola

¨  Se la stringa di formato contiene un white space, la scanf legge zero o più white space, che verranno scartati, fino al primo carattere non white space.

 An efficient means of transferring data directly between I/O and memory for large data transfers since programmed I/O is suitable only for slow devices and individual