Apprendimento Automatico: Reti Neurali Roberto Navigli Apprendimento Automatico: Reti Neurali Roberto Navigli Cap. 4 [Mitchell] Cap. 20.5 [Russell & Norvig] 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 dell’attività nervosa (Threshold Logic Unit) – A questo modello sono seguiti altri proposti da John Von Neumann, Marvin Minsky, Frank Rosenblatt (Percettrone) e molti altri Apprendimento Automatico: Reti Neurali Roberto Navigli Modello biologico ≠ Modello artificiale • Biologico: ha l’obiettivo 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! 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 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 10000 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 • L’assone trasmette impulsi elettrici, che dipendono dal suo potenziale • L’informazione trasmessa può essere eccitatoria oppure inibitoria • Un neurone riceve in ingresso segnali di varia natura, che vengono sommati • Se l’influenza eccitatoria è predominante, il neurone si attiva e genera messaggi informativi verso le sinapsi di uscita Apprendimento Automatico: Reti Neurali Roberto Navigli 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 – L’inizializzazione e l’addestramento dei pesi sulle interconnessioni, attraverso il training set 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 x0=1 x1 x2 w1 w0 w2 ... ∑ wm m w x i 0 xm Apprendimento Automatico: Reti Neurali Roberto Navigli j j soglia m 1 if w j x j 0 o i 0 otherwise 1 Il Percettrone • I valori di uscita sono booleani: 0 oppure 1 • Gli ingressi xj e i pesi wj sono valori reali positivi o negativi • Tre elementi: ingressi, somma, soglia • L'apprendimento consiste nel selezionare pesi e soglia x0=1 x1 x2 w1 w0 w2 ... ∑ wm m w x i 0 xm Apprendimento Automatico: Reti Neurali Roberto Navigli j j soglia m 1 if w j x j 0 o i 0 otherwise 1 Funzioni somma e soglia (1) • La funzione d’ingresso (lineare, somma delle componenti di input di x = (x1, …, xn)) m w0 w1 x1 ... wm xm w j x j w x i 0 x0=1 x1 x2 w1 w0 w2 ... ∑ wm m w x i 0 xm Apprendimento Automatico: Reti Neurali Roberto Navigli j j soglia m 1 if w j x j 0 o i 0 otherwise 1 Funzioni somma e soglia (2) • La funzione di attivazione (non lineare, soglia) m o( x1 ,..., xm ) g w j x j i 0 – Vogliamo l’unità 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 dell’input x0=1 x1 x2 w1 w0 w2 ... ∑ wm m w x i 0 xm Apprendimento Automatico: Reti Neurali Roberto Navigli j j soglia m 1 if w j x j 0 o i 0 otherwise 1 Funzioni di attivazione • Funzione gradino xt 1 gradinot ( x ) 0 altrimenti 1 0 • Funzione segno (utilizzata nel percettrone) 1 x0 1 sign ( x ) 1 altrimenti • Funzione sigmoide 1 sigmoide ( x ) 1 e x Apprendimento Automatico: Reti Neurali Roberto Navigli -1 1/2 Funzione obiettivo • Ad esempio, se la funzione soglia è la funzione segno e x1, ..., xm sono i valori degli attributi delle istanze x di X, la funzione obiettivo da apprendere è: 1 se w 0 x 0 w1x1 ... w m x m 0 o( x ) altrimenti 1 • Esprimibile anche in forma vettoriale mediante la: o(x ) sign(w x) 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 Apprendimento Automatico: Reti Neurali Roberto Navigli Problema di classificazione • Il problema è quindi ridotto alla determinazione dell'insieme dei pesi (w0, w1, …, wm) 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 (w0, w1, …, wm): m1 H {w : w } • Si tratta di ottimizzare la funzione: o( x) sign ( w x) in modo da minimizzarne l’errore Apprendimento Automatico: Reti Neurali Roberto Navigli Esempio per due attributi • Con (x1, x2) in ingresso, si ha: o( x ) sign ( w0 w1 x1 w2 x2 ) x2 • La retta di separazione è data da: w0 w1 x1 w2 x2 0 w1 w0 x2 x1 w2 w2 • Nel caso con n attributi, quel che si apprende è un iperpiano di separazione dato da: w x 0 Apprendimento Automatico: Reti Neurali Roberto Navigli x1 Funzioni rappresentabili con il percettrone • I percettroni possono rappresentare tutte le funzioni booleane primitive AND, OR, NAND e NOR AND( x1 , x2 ) sign(0.8 0.5x1 0.5x2 ) – OR( x1 , x2 ) sign (0.3 0.5x1 0.5x2 ) – – ecc. (provate a scrivere le altre per esercizio) 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 x1 ≠ x2): x2 + + - + - - Apprendimento Automatico: Reti Neurali Roberto Navigli - - + + + x1 Implementare funzioni booleane più complesse con il percettrone x0=1 x1 x2 -0.3 0.5 0.5 x1 or x2 x0=1 0.5 x3 Apprendimento Automatico: Reti Neurali Roberto Navigli 0.5 -0.8 (x1 or x2) and x3 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 l’output effettivo: – Calcola la funzione o(x) – Se o(x) y allora per ogni attributo j aggiornane il peso: w j w j w j w j ( y o( x)) x j • si chiama learning rate (tasso di apprendimento) • xj è il valore dell’attributo j-esimo di x • la quantità y-o rappresenta l’errore E del percettrone 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 w x • Se per esempio: x j 0,8, 0,1, y 1, o 1 w j ( y o) x j 0,1(1 (1))0,8 0,16 • Quindi il valore del wj tenderà a crescere, riducendo l’errore • Se invece y=-1 e o(x)=1 w j ( y o) x j 0,1(1 (1))0,8 0,16 • Nota: vogliamo aggiornamenti dei pesi graduali, altrimenti rischiamo di “disfare” il lavoro fatto sugli altri esempi di addestramento 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 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 dell’errore di addestramento per un vettore di pesi w: 2 1 E ( w) ( y o( x )) 2 ( x , y )D 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 l’errore su D • Calcoliamo le derivate parziali della funzione d’errore 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 w 0 j – Per ogni attributo j E ( w) w j w j – Per ogni attributo j: w j w j w j – Nota: calcoliamo il delta su tutti gli esempi e POI aggiorniamo i pesi – Nota 2: l’output non è sogliato Apprendimento Automatico: Reti Neurali Roberto Navigli Come calcolare la derivata 2 1 2 E ( w) 1 ( y o( x )) ( y o( x )) w j w j 2 ( x , y )D 2 ( x , y )D w j ( y o( x )) 1 2( y o( x )) 2 ( x , y )D w j ( y w x ) ( y o( x )) w j ( x , y )D ( y o( x ))( x j ) ( x , y )D 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 sull’intero D – Approssimazione ragionevole alla discesa del gradiente Apprendimento Automatico: Reti Neurali Roberto Navigli Discesa del Gradiente Stocastica o Incrementale Delta rule 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 l’ipotesi di minor errore indipendentemente dalla separabilità lineare 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 – L’elaborazione procede uniformemente dalle unità di ingresso a quelle di uscita – Non c’è feedback (grafo aciclico diretto o DAG) – Non hanno stato interno Apprendimento Automatico: Reti Neurali Roberto Navigli Vogliamo apprendere superfici di decisione non lineari! Apprendimento Automatico: Reti Neurali Roberto Navigli Soluzione 3: Reti Ricorrenti • Sono più simili al funzionamento del cervello umano, in quanto simulano le connessioni all’indietro – • • • • • • • • • Nel cervello esistono evidenti connessioni all’indietro I collegamenti possono formare configurazioni arbitrarie L’attivazione viene “ripassata” indietro alle unità che l’hanno provocata Hanno uno stato interno: i livelli di attivazione Computazione meno ordinata Instabili Più tempo per calcolare lo stato stabile Difficoltà nell’apprendimento Implementano classificatori più complessi Esempi: – – Reti di Boltzmann Reti di Hopfield output input Apprendimento Automatico: Reti Neurali Roberto Navigli hidden Reti Alimentate in Avanti: Algoritmo di Backpropagation • Apprendimento con algoritmo di backpropagation (propagazione all’indietro) • 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 Apprendimento Automatico: Reti Neurali Roberto Navigli Backpropagation (2) • La funzione soglia di ciascuna unità è la sigmoide: o( x ) ( w x ) 1 1 ewx • L’errore è calcolato come segue: • Obiettivo dell’algoritmo: minimizzare l’errore fra ciascuna uscita desiderata yk e l’uscita calcolata dalla rete neurale ok 1 2 E ( w) ( yk ok ) 2 ( x, y )D koutputs unità d’ingresso ii unità nascosta hj unità di uscita ok Apprendimento Automatico: Reti Neurali Roberto Navigli L’algoritmo Backpropagation function BackProp(D, , nin, nhidden, nout) – D è l’insieme di addestramento costituito da coppie ( x, y ) – è il tasso di apprendimento (learning rate), es. 0.1 – nin, nhidden e nout sono il numero di unità d’ingresso, nascoste e d’uscita • • • – Crea una rete feed-forward con nin, nhidden e nout unità Inizializza tutti i pesi con numeri casuali piccoli (es. tra -0.05 e 0.05) Finché non si incontra la condizione di terminazione: Per ogni esempio ( x, y ) in D: • Propaga l’input in avanti sulla rete calcolando l’output ou di ogni unità u della rete • Propaga gli errori all’indietro nella rete: – Per ogni unità di output k, calcola il suo termine d’errore k: k ok (1 ok )( yk ok ) – Per ogni unità nascosta h, calcola il suo termine d’errore h: h oh (1 oh ) – Aggiorna i pesi wij: koutputs wij wij wij , • xij è l’input dell’unità j proveniente dall’unità i Apprendimento Automatico: Reti Neurali Roberto Navigli w hk k dove wij j xij Esempio • Crea una rete feed-forward con nin, nhidden e nout unità • Inizializza tutti i pesi con numeri casuali piccoli (es. tra -0.05 e 0.05) • wx0,h1 = 0.34, wx1,h1 = 0.12, wx2,h1 = -0.92 • wx0,h2 = -0.11, wx1,h2 = 0.57, wx2,h2 = -0.32 • wh0,o1 = -0.99 , wh1,o1 = 0.16, wh2,o1 = 0.75 x1 h1 x2 h2 Apprendimento Automatico: Reti Neurali Roberto Navigli o1 Esempio • Finché non si incontra la condizione di terminazione: ((0, 0), (0)) – Per ogni esempio ( x, y ) in D: • Propaga l’input in avanti sulla rete calcolando l’output ou di ogni unità u della rete • oh1 = (0.34*1+ 0.12*0 + -0.92*0) = (0.34)=1/(1+e-0.34)= 0.58 • oh2 = (-0.11*1+0.57*0+-0.32*0)=(-0.11)=1/(1+e-(-0.11))=0.47 • oo1 = (-0.99*1+0.16*0.58+0.75*0.47)=(-0.54)=1/(1+e-0.54)=0.36 x1 h1 x2 h2 Apprendimento Automatico: Reti Neurali Roberto Navigli o1 Esempio • Propaga gli errori all’indietro nella rete: – Per ogni unità di output k, calcola il suo termine d’errore k: k ok (1 ok )( yk ok ) – Per ogni unità nascosta h, calcola il suo termine d’errore h: h oh (1 oh ) – Aggiorna i pesi wji: wij wij wij , w koutputs hk k dove wij j xij • o1 = oo1(1-oo1)(yo1-oo1)= 0.36*(1-0.36)(0-0.36)=-0.08 • h1 = oh1*(1-oh1)*wh1o1o1 = 0.58*(1-0.58)*(0.16)*(-0.08) = -0.003 • h2 = oh2*(1-oh2)*wh2o1o1=0.47(1-0.47)*(0.75)*(-0.08)=-0.014 Apprendimento Automatico: Reti Neurali Roberto Navigli Esempio • Propaga gli errori all’indietro nella rete: – Per ogni unità di output k, calcola il suo termine d’errore k: k ok (1 ok )( yk ok ) – Per ogni unità nascosta h, calcola il suo termine d’errore h: h oh (1 oh ) – Aggiorna i pesi wji: wij wij wij , – – – – – – – w koutputs hk k dove wij j xij wx0h1 = 0.34+h1xx0h1=0.34+0.5*(-0.003)*1=0.34-0.0015, wx1h1 = 0.12+0, wx2h1 = -0.92+0 wx0h2 = -0.11+h2xx0h2=0.34+0.5*(-0.014)*1=0.34-0.007, wx1h2 = 0.57+0, wx2h2 = -0.32+0 wh0o1 = -0.99+o1xh0o1=-0.99+0.5*(-0.08)*1=-0.99-0.04 wh1o1 = 0.16+o1xh1o1=0.16+0.5*(-0.08)*0.58=0.16-0.02 wh2o1 = 0.75+o1xh2o1=0.75+0.5*(-0.08)*0.47=0.75-0.02 Apprendimento Automatico: Reti Neurali Roberto Navigli Esempio • • • • • • • 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 l’errore non si stabilizza Apprendimento Automatico: Reti Neurali Roberto Navigli Esempio • 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), oo1 = 0.017622 x = (0, 1), oo1 = 0.981504 x = (1, 0), oo1 = 0.981491 x = (1, 1), oo1 = 0.022782 Quale funzione calcola la rete dell’esempio? http://delfin.unideb.hu/~bl0021/xordemo/xordemo.html http://www.generation5.org/content/2001/xornet.asp Apprendimento Automatico: Reti Neurali Roberto Navigli a c’è alla base della regola di propagazione dell’errore dietro? Consideriamo la funzione di errore per d=(x,y)D: Ed 1 ( yk ok ) 2 2 k Supponiamo di dover imparare solo due pesi. Il piano w1 w2 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. Apprendimento Automatico: Reti Neurali Roberto Navigli Calcolo della regola di aggiornamento dell’unità di output Ed Ed net j Ed wij x ij dove net j wij xij wij net j wij net j i Ed Ed o j net j o j net j 1 2 ( y o ) k k 2 koutputs Ed ( yk ok ) 1 2 ( yk ok ) ( y j o j ) o j o j 2 koutputs o j o j net net e j 1 e j (1 ) o j (1 o j ) net j 2 net j net j net j (1 e ) 1 e 1 e Ed net j wij (( y j o j ))o j (1 o j ) xij j xij net j wij 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 Apprendimento Automatico: Reti Neurali Roberto Navigli Disegno dell’errore su un test set T Apprendimento Automatico: Reti Neurali Roberto Navigli Ma l’algoritmo converge? • Problemi dell’algoritmo 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 Apprendimento Automatico: Reti Neurali Roberto Navigli Modifica della regola di aggiornamento • Quando si esegue l’n-esima iterazione la regola di aggiornamento diventa: wij ( n) j xij wij ( n 1) e [0,1) • 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! 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 • L’algoritmo 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!! Apprendimento Automatico: Reti Neurali Roberto Navigli Architettura della rete • Con più unità nascoste è possibile ottenere uno spazio delle ipotesi più ampio ed espressivo – D’altra 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 Apprendimento Automatico: Reti Neurali Roberto Navigli Applicazione: Modello di Memoria Semantica [McClelland and Rogers, 2003] • Obiettivo - apprendere un’ontologia: Apprendimento Automatico: Reti Neurali Roberto Navigli Applicazione: Modello di Memoria Semantica [McClelland and Rogers, 2003] • Strategia - Rete Neurale: Apprendimento Automatico: Reti Neurali Roberto Navigli Applicazione: Modello di Memoria Semantica [McClelland and Rogers, 2003] • Risultati in termini di distanza euclidea: Apprendimento Automatico: Reti Neurali Roberto Navigli Applicazione: ALVINN guida a 70 mph! 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. 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 l’immagine 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” l’immagine codificandola come un insieme di valori di intensità di 30x32 pixel 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 Apprendimento Automatico: Reti Neurali Roberto Navigli