La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]

Presentazioni simili


Presentazione sul tema: "Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]"— Transcript della presentazione:

1 Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap [Russell & Norvig]

2 Apprendimento Automatico: Reti Neurali Roberto Navigli Storia Le reti neurali artificiali (Artificial Neural Networks o ANN) sono una simulazione astratta del nostro sistema nervoso, che contiene una collezione di neuroni i quali comunicano fra loro mediante connessioni dette assoni Il primo modello di neurone artificiale fu proposto nel 1943 da McCulloch e Pitts nei termini di un modello computazionale dellattività nervosa (Threshold Logic Unit) –A questo modello sono seguiti altri proposti da John Von Neumann, Marvin Minsky, Frank Rosenblatt (Percettrone) e molti altri

3 Apprendimento Automatico: Reti Neurali Roberto Navigli Modello biologico Modello artificiale Biologico: ha lobiettivo di imitare sistemi neurali biologici, come le funzionalità auditive e visive Obiettivo: verifica di ipotesi riguardo ai sistemi biologici Guidato dalle applicazioni: meno interessato a mimare funzioni biologiche Le architetture sono ampiamente condizionate dalle necessità applicative Questi modelli sono anche denominati architetture connessioniste Modello trattato nel corso!

4 Apprendimento Automatico: Reti Neurali Roberto Navigli Neuroni I neuroni inviano segnali ad altri neuroni mediante un prolungamento detto assone I neuroni tipicamente possiedono strutture arboree chiamate dendriti che ricevono segnali inviati dagli assoni di altri neuroni mediante giunzioni dette sinapsi

5 Apprendimento Automatico: Reti Neurali Roberto Navigli Funzionamento di un Neurone Si stima che il cervello umano contenga oltre 10 miliardi di neuroni e che un neurone è collegato in media a altri neuroni Tempo di commutazione di alcuni millisecondi (assai più lento di una porta logica), ma connettività centinaia di volte superiore Un neurone trasmette informazioni agli altri neuroni tramite il proprio assone Lassone trasmette impulsi elettrici, che dipendono dal suo potenziale Linformazione trasmessa può essere eccitatoria oppure inibitoria Un neurone riceve in ingresso segnali di varia natura, che vengono sommati Se linfluenza eccitatoria è predominante, il neurone si attiva e genera messaggi informativi verso le sinapsi di uscita

6 Apprendimento Automatico: Reti Neurali Roberto Navigli

7 Apprendimento Automatico: Reti Neurali Roberto Navigli Struttura di una Rete Neurale Una rete neurale è costituta da: –un insieme di nodi (i neuroni) o unità connesse da collegamenti –Un insieme di pesi associati ai collegamenti –Un insieme di soglie o livelli di attivazione La progettazione di una rete neurale richiede: –La scelta del numero e del tipo di unità –La determinazione della struttura morfologica –Codifica degli esempi di addestramento, in termini di ingressi e uscite dalla rete –Linizializzazione e laddestramento dei pesi sulle interconnessioni, attraverso il training set

8 Apprendimento Automatico: Reti Neurali Roberto Navigli Il Percettrone Il percettrone è il mattone base delle reti neurali Nasce da un'idea di Rosenblatt (1962) Cerca di simulare il funzionamento del singolo neurone x1x1 x2x2 xmxm... w1w1 w2w2 wmwm soglia x 0 =1 w0w0

9 Apprendimento Automatico: Reti Neurali Roberto Navigli I valori di uscita sono booleani: 0 oppure 1 Gli ingressi x j e i pesi w j sono valori reali positivi o negativi Tre elementi: ingressi, somma, soglia L'apprendimento consiste nel selezionare pesi e soglia Il Percettrone x1x1 x2x2 xmxm... w1w1 w2w2 wmwm soglia x 0 =1 w0w0

10 Apprendimento Automatico: Reti Neurali Roberto Navigli Funzioni somma e soglia (1) La funzione dingresso (lineare, somma delle componenti di input di x = (x 1, …, x n )) x1x1 x2x2 xmxm... w1w1 w2w2 wmwm soglia x 0 =1 w0w0

11 Apprendimento Automatico: Reti Neurali Roberto Navigli Funzioni somma e soglia (2) La funzione di attivazione (non lineare, soglia) –Vogliamo lunità percettrone attiva (vicino a +1) quando gli input corretti sono forniti e inattiva altrimenti –E preferibile che g sia non lineare, altrimenti la rete neurale collassa a una funzione lineare dellinput x1x1 x2x2 xmxm... w1w1 w2w2 wmwm soglia x 0 =1 w0w0

12 Apprendimento Automatico: Reti Neurali Roberto Navigli Funzioni di attivazione Funzione gradino Funzione segno (utilizzata nel percettrone) Funzione sigmoide 1/

13 Apprendimento Automatico: Reti Neurali Roberto Navigli Funzione obiettivo Ad esempio, se la funzione soglia è la funzione segno e x 1,..., x m sono i valori degli attributi delle istanze x di X, la funzione obiettivo da apprendere è: Esprimibile anche in forma vettoriale mediante la:

14 Apprendimento Automatico: Reti Neurali Roberto Navigli Il Percettrone Problema di apprendimento: –dati insiemi di punti su uno spazio n-dimensionale, classificarli in due gruppi (positivi e negativi) –inoltre dato un nuovo punto x decidere a quale gruppo appartiene Il primo problema è di classificazione, mentre per risolvere il secondo è richiesta capacità di generalizzazione, come negli alberi di decisione

15 Apprendimento Automatico: Reti Neurali Roberto Navigli Problema di classificazione Il problema è quindi ridotto alla determinazione dell'insieme dei pesi (w 0, w 1, …, w m ) migliore per minimizzare gli errori di classificazione Quindi lo spazio delle ipotesi H è infinito ed è dato da tutte le possibili assegnazioni di valori agli n+1 pesi (w 0, w 1, …, w m ): Si tratta di ottimizzare la funzione: in modo da minimizzarne lerrore

16 Apprendimento Automatico: Reti Neurali Roberto Navigli Esempio per due attributi Con (x 1, x 2 ) in ingresso, si ha: La retta di separazione è data da: Nel caso con n attributi, quel che si apprende è un iperpiano di separazione dato da: x2x2 x1x1

17 Apprendimento Automatico: Reti Neurali Roberto Navigli Funzioni rappresentabili con il percettrone I percettroni possono rappresentare tutte le funzioni booleane primitive AND, OR, NAND e NOR – –ecc. (provate a scrivere le altre per esercizio)

18 Apprendimento Automatico: Reti Neurali Roberto Navigli Funzioni rappresentabili con il percettrone I percettroni possono rappresentare tutte le funzioni booleane primitive AND, OR, NAND e NOR Alcune funzioni booleane non possono essere rappresentate –es. la funzione XOR (vale 1 se e solo se x 1 x 2 ): x1x1 x2x2

19 Apprendimento Automatico: Reti Neurali Roberto Navigli Implementare funzioni booleane più complesse con il percettrone x1x1 x2x x 0 =1 x 1 or x 2 x3x (x 1 or x 2 ) and x 3 x 0 =1

20 Apprendimento Automatico: Reti Neurali Roberto Navigli Algoritmo di Addestramento del Percettrone Inizializza i pesi casualmente Finché non si è raggiunta la condizione di terminazione: –Per ogni esempio (x, y) D, dove y è il loutput effettivo: –Calcola la funzione o(x) –Se o(x) y allora per ogni attributo j aggiornane il peso: si chiama learning rate (tasso di apprendimento) x j è il valore dellattributo j-esimo di x la quantità y-o rappresenta lerrore E del percettrone

21 Apprendimento Automatico: Reti Neurali Roberto Navigli Esempio Supponiamo o(x)=-1 (se la funzione soglia è sign(x)) e y=1 Bisogna modificare i pesi per accrescere il valore di Se per esempio: Quindi il valore del w j tenderà a crescere, riducendo lerrore Se invece y=-1 e o(x)=1 Nota: vogliamo aggiornamenti dei pesi graduali, altrimenti rischiamo di disfare il lavoro fatto sugli altri esempi di addestramento

22 Apprendimento Automatico: Reti Neurali Roberto Navigli Convergenza del Percettrone Il teorema di convergenza del percettrone (Rosenblatt, 1962) assicura che il percettrone riuscirà a delimitare le 2 classi se il sistema è linearmente separabile In altre parole, nell'ottimizzazione non esistono minimi locali Problema: come ci si comporta in caso di situazioni non linearmente separabili? Soluzioni: –Utilizzare la discesa del gradiente (delta rule) invece della regola di addestramento del percettrone –reti multistrato alimentate in avanti

23 Apprendimento Automatico: Reti Neurali Roberto Navigli Soluzione 1: Discesa del Gradiente Una regola di addestramento differente del percettrone Assumiamo per semplicità che il percettrone non sia sogliato (ossia: o(x) = w·x) Utilizziamo una misura dellerrore di addestramento per un vettore di pesi w:

24 Apprendimento Automatico: Reti Neurali Roberto Navigli Discesa del gradiente Idea: utilizzare la discesa del gradiente per cercare nello spazio dei vettori peso quello che minimizza lerrore su D Calcoliamo le derivate parziali della funzione derrore

25 Apprendimento Automatico: Reti Neurali Roberto Navigli Regola di addrestramento: discesa del gradiente Modifichiamo la regola di addestramento: Finché non si raggiunge la condizione di terminazione, –Inizializza –Per ogni attributo j –Per ogni attributo j: –Nota: calcoliamo il delta su tutti gli esempi e POI aggiorniamo i pesi –Nota 2: loutput non è sogliato

26 Apprendimento Automatico: Reti Neurali Roberto Navigli Come calcolare la derivata

27 Apprendimento Automatico: Reti Neurali Roberto Navigli Alternativa: Discesa del Gradiente Stocastica o Incrementale La Discesa del Gradiente Standard può essere molto lenta nel convergere a un minimo locale Se ci sono multipli minimi locali, non cè garanzia di convergere al minimo globale Alternativa: aggiornare i pesi esempio per esempio e non sullintero D –Approssimazione ragionevole alla discesa del gradiente

28 Apprendimento Automatico: Reti Neurali Roberto Navigli Discesa del Gradiente Stocastica o Incrementale Delta rule

29 Apprendimento Automatico: Reti Neurali Roberto Navigli Ricapitoliamo La regola di aggiornamento del percettrone è la stessa della Delta Rule! Però: la delta rule utilizza o(x)=w·x mentre la regola del percettrone o(x)=sign(w·x) Tuttavia, la Delta Rule può essere utilizzata anche per percettroni sogliati: –Se la Delta Rule modella perfettamente, allora avremo o(x)=1 o -1 per cui anche o(x)=sign(1)=1 oppure o(x)=sign(-1)=-1 Diverse proprietà di convergenza: –Regola del percettrone converge dopo un numero finito di iterazioni (se dati linearmente separabili) –Delta rule converge asintoticamente verso lipotesi di minor errore indipendentemente dalla separabilità lineare

30 Apprendimento Automatico: Reti Neurali Roberto Navigli Soluzione 2: Reti Stratificate Alimentate in Avanti Feedforward Neural Networks –Ogni unità è collegata solo a quella dello strato successivo –Lelaborazione procede uniformemente dalle unità di ingresso a quelle di uscita –Non cè feedback (grafo aciclico diretto o DAG) –Non hanno stato interno

31 Apprendimento Automatico: Reti Neurali Roberto Navigli Vogliamo apprendere superfici di decisione non lineari!

32 Apprendimento Automatico: Reti Neurali Roberto Navigli Soluzione 3: Reti Ricorrenti Sono più simili al funzionamento del cervello umano, in quanto simulano le connessioni allindietro –Nel cervello esistono evidenti connessioni allindietro I collegamenti possono formare configurazioni arbitrarie Lattivazione viene ripassata indietro alle unità che lhanno provocata Hanno uno stato interno: i livelli di attivazione Computazione meno ordinata Instabili Più tempo per calcolare lo stato stabile Difficoltà nellapprendimento Implementano classificatori più complessi Esempi: –Reti di Boltzmann –Reti di Hopfield output inputhidden

33 Apprendimento Automatico: Reti Neurali Roberto Navigli Reti Alimentate in Avanti: Algoritmo di Backpropagation Apprendimento con algoritmo di backpropagation (propagazione allindietro) Obiettivi: –partire da un insieme di percettroni con pesi casuali –apprendere in modo veloce –avere capacità di generalizzazione –lavorare con insiemi di percettroni su larga scala

34 Apprendimento Automatico: Reti Neurali Roberto Navigli La funzione soglia di ciascuna unità è la sigmoide: Lerrore è calcolato come segue: Obiettivo dellalgoritmo: minimizzare lerrore fra ciascuna uscita desiderata y k e luscita calcolata dalla rete neurale o k Backpropagation (2) unità dingresso i i unità nascosta h j unità di uscita o k

35 Apprendimento Automatico: Reti Neurali Roberto Navigli function BackProp(D,, n in, n hidden, n out ) –D è linsieme di addestramento costituito da coppie – è il tasso di apprendimento (learning rate), es. 0.1 –n in, n hidden e n out sono il numero di unità dingresso, nascoste e duscita Crea una rete feed-forward con n in, n hidden e n out unità Inizializza tutti i pesi con numeri casuali piccoli (es. tra e 0.05) Finché non si incontra la condizione di terminazione: –Per ogni esempio in D: Propaga linput in avanti sulla rete calcolando loutput o u di ogni unità u della rete Propaga gli errori allindietro nella rete: –Per ogni unità di output k, calcola il suo termine derrore k : –Per ogni unità nascosta h, calcola il suo termine derrore h : –Aggiorna i pesi w ij : x ij è linput dellunità j proveniente dallunità i Lalgoritmo Backpropagation

36 Apprendimento Automatico: Reti Neurali Roberto Navigli Crea una rete feed-forward con n in, n hidden e n out unità Inizializza tutti i pesi con numeri casuali piccoli (es. tra e 0.05) w x0,h1 = 0.34, w x1,h1 = 0.12, w x2,h1 = w x0,h2 = -0.11, w x1,h2 = 0.57, w x2,h2 = w h0,o1 = -0.99, w h1,o1 = 0.16, w h2,o1 = 0.75 Esempio h1h1 h2h2 o1o1 x2x2 x1x1

37 Apprendimento Automatico: Reti Neurali Roberto Navigli Finché non si incontra la condizione di terminazione: –Per ogni esempio in D: Propaga linput in avanti sulla rete calcolando loutput o u di ogni unità u della rete o h1 = (0.34* * *0) = (0.34)=1/(1+e )= 0.58 o h2 = (-0.11*1+0.57* *0)= (-0.11)=1/(1+e -(-0.11) )=0.47 o o1 = (-0.99*1+0.16* *0.47)= (-0.54)=1/(1+e )=0.36 Esempio ((0, 0), (0)) h1h1 h2h2 o1o1 x2x2 x1x1

38 Apprendimento Automatico: Reti Neurali Roberto Navigli Propaga gli errori allindietro nella rete: –Per ogni unità di output k, calcola il suo termine derrore k : –Per ogni unità nascosta h, calcola il suo termine derrore h : –Aggiorna i pesi w ji : o1 = o o1 (1-o o1 )(y o1 -o o1 )= 0.36*(1-0.36)(0-0.36)=-0.08 h1 = o h1 *(1-o h1 )*w h1o1 o1 = 0.58*(1-0.58)*(0.16)*(-0.08) = h2 = o h2 *(1-o h2 )*w h2o1 o1 =0.47(1-0.47)*(0.75)*(-0.08)= Esempio

39 Apprendimento Automatico: Reti Neurali Roberto Navigli Propaga gli errori allindietro nella rete: –Per ogni unità di output k, calcola il suo termine derrore k : –Per ogni unità nascosta h, calcola il suo termine derrore h : –Aggiorna i pesi w ji : –w x0h1 = h1 x x0h1 = *(-0.003)*1= , –w x1h1 = , w x2h1 = –w x0h2 = h2 x x0h2 = *(-0.014)*1= , –w x1h2 = , w x2h2 = –w h0o1 = o1 x h0o1 = *(-0.08)*1= –w h1o1 = o1 x h1o1 = *(-0.08)*0.58= –w h2o1 = o1 x h2o1 = *(-0.08)*0.47= Esempio

40 Apprendimento Automatico: Reti Neurali Roberto Navigli Si aggiornano tutti pesi Si considera il secondo esempio di D Si ricalcolano input e output di tutti i nodi Si ricalcolano gli errori sui nodi Si riaggiornano i pesi Finché non si esaurisce D (epoca) Si ripete per n epoche, fino a che lerrore non si stabilizza Esempio

41 Apprendimento Automatico: Reti Neurali Roberto Navigli Dopo qualche migliaio di iterazioni su tutti e quattro gli esempio di D = { ((0,0), (0)), ((0,1), (1)), ((1,0), (1)), ((1,1),(0))} Otteniamo i seguenti risultati per gli input: –x = (0, 0), o o1 = –x = (0, 1), o o1 = –x = (1, 0), o o1 = –x = (1, 1), o o1 = Esempio Quale funzione calcola la rete dellesempio?

42 Apprendimento Automatico: Reti Neurali Roberto Navigli Cosa cè alla base della regola di propagazione dellerrore allindietro? Supponiamo di dover imparare solo due pesi. Il piano w 1 w 2 rappresenta lo spazio delle ipotesi (pesi delle connessioni), il cono è la superficie d'errore. Per minimizzare l'errore si deve calcolare la direzione della discesa più ripida lungo la superficie. Quindi, la derivata. Consideriamo la funzione di errore per d=(x,y) D:

43 Apprendimento Automatico: Reti Neurali Roberto Navigli Calcolo della regola di aggiornamento dellunità di output

44 Apprendimento Automatico: Reti Neurali Roberto Navigli Condizioni di terminazione Il processo continua finché non sono esauriti tutti gli esempi (epoca), poi si riparte Quando arrestare il processo? Minimizzare gli errori sul set D non è un buon criterio (overfitting) Si preferisce minimizzare gli errori su un test set T, ovvero suddividere D in D T, addestrare su D e usare T per determinare la condizione di terminazione

45 Apprendimento Automatico: Reti Neurali Roberto Navigli Disegno dellerrore su un test set T

46 Apprendimento Automatico: Reti Neurali Roberto Navigli Ma lalgoritmo converge? Problemi dellalgoritmo del gradiente: –Può arrestarsi su minimi locali –Un minimo locale può dare soluzioni molto peggiori del minimo globale –Possono esserci molti minimi locali Soluzioni possibili: addestra la rete con pesi iniziali diversi, addestra diverse architetture di rete

47 Apprendimento Automatico: Reti Neurali Roberto Navigli Modifica della regola di aggiornamento Quando si esegue ln-esima iterazione la regola di aggiornamento diventa: Il secondo termine prende il nome di momento Vantaggi: –È possibile superare minimi locali –Mantiene in movimento dove il gradiente non cambia (zona piatta) –Incrementa la velocità di convergenza Svantaggi: –E un parametro in più da regolare!

48 Apprendimento Automatico: Reti Neurali Roberto Navigli Alcune considerazioni pratiche La scelta dei pesi iniziali ha un grande impatto sul problema della convergenza! Se la dimensione dei vettori di input è N ed N è grande, una buona euristica è scegliere i pesi iniziali fra -1/N e 1/N Lalgoritmo BP è molto sensibile al fattore di apprendimento. Se è troppo grande, la rete diverge. A volte, è preferibile usare diversi valori di per i diversi strati della rete La scelta della modalità di codifica degli ingressi e della architettura della rete può influenzare in modo drastico le prestazioni!!

49 Apprendimento Automatico: Reti Neurali Roberto Navigli Architettura della rete Con più unità nascoste è possibile ottenere uno spazio delle ipotesi più ampio ed espressivo –Daltra parte: rischio overfitting (si rischia di creare una sorta di lookup table o rote classifier) Con uno strato nascosto sufficientemente ampio è possibile rappresentare qualsiasi funzione continua degli input con accuratezza arbitraria Tuttavia, la scelta ottima a priori del giusto numero di unità nascoste non è ancora chiara

50 Apprendimento Automatico: Reti Neurali Roberto Navigli Applicazione: Modello di Memoria Semantica [McClelland and Rogers, 2003] Obiettivo - apprendere unontologia:

51 Apprendimento Automatico: Reti Neurali Roberto Navigli Strategia - Rete Neurale: Applicazione: Modello di Memoria Semantica [McClelland and Rogers, 2003]

52 Apprendimento Automatico: Reti Neurali Roberto Navigli Risultati in termini di distanza euclidea: Applicazione: Modello di Memoria Semantica [McClelland and Rogers, 2003]

53 Apprendimento Automatico: Reti Neurali Roberto Navigli Applicazione: ALVINN guida a 70 mph!

54 Apprendimento Automatico: Reti Neurali Roberto Navigli Applicazione: riconoscimento di fisionomie Compito: Classificare immagini di visi di persone in varie pose Dataset: immagini di 20 persone in 32 pose variabili per: espressione, direzione dello sguardo, occhiali da sole, sfondo –http://www.cs.cmu.edu/afs/cs.cmu.edu/user/mitchell/ftp/faces.html Funzioni obiettivo: riconoscere se porta gli occhiali, quale persona è, in che direzione guarda, ecc.

55 Apprendimento Automatico: Reti Neurali Roberto Navigli Scelte di Progetto Accuratezza della codifica di ingresso: –Scelta chiave: quali e quante feature in ingresso codificare –Si potrebbe preanalizzare limmagine estraendo informazioni quali contorni, regioni di intensità luminosa uniforme, ecc. Problema: il numero di feature sarebbe variabile (es. numero di contorni), ma una rete neurale ha un numero fisso di ingressi! –Allora si semplifica limmagine codificandola come un insieme di valori di intensità di 30x32 pixel

56 Apprendimento Automatico: Reti Neurali Roberto Navigli Reti Neurali in a nutshell Vantaggi: –Le istanze sono rappresentate mediante molte feature a molti valori, anche reali e la funzione obiettivo può essere a valori reali –Possono rappresentare: tutte le funzioni booleane (esattamente), funzioni continue (approssimate), funzioni arbitrarie (approssimate, con 2 strati nascosti) –Gli esempi possono essere rumorosi –La rete è veloce in fase di classificazione –Non è cruciale capire la semantica della funzione attesa Svantaggi: –Come tutti i modelli statistici, anche le reti neurali sono soggette a sovradattamento –Le reti neurali sono "scatole nere: non hanno semantica! –I tempi di addestramento possono essere lunghi


Scaricare ppt "Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig]"

Presentazioni simili


Annunci Google