Apprendimento Automatico: Reti Neurali

Slides:



Advertisements
Presentazioni simili
Artificial intelligence
Advertisements

Metodi e Applicazioni numeriche nell’Ingegneria Chimica
Apprendimento Automatico Apprendimento supervisionato
Sistemi di Classificazione usando NCD
Algoritmi e Strutture Dati
Attività cerebrale I neuroni si attivano in gruppi sotto lazione di uno stimolo Attività in gruppi ben delimitati con alta o bassa attività Il gruppo.
Pattern Recognition con Reti Neurali MLP
ALGORITMI DI OTTIMIZZAZIONE PER L'ADDESTRAMENTO DI RETI NEURALI
Reti Neurali: studi sull'intelligenza artificiale
Le reti neurali dagli esordi alle applicazioni
Gestione dei dati e della conoscenza (agenti intelligenti) M.T. PAZIENZA a.a
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza (agenti intelligenti) Prof. M.T. PAZIENZA a.a
Apprendimento Automatico: Apprendimento Bayesiano
Apprendimento Automatico: Apprendimento Probabilistico Roberto Navigli 1 Apprendimento Automatico: Apprendimento Bayesiano.
Apprendimento Non Supervisionato
Apprendimento di funzioni algebriche
Apprendimento Automatico: Apprendimento Pigro (Lazy Learning)
Valutazione delle ipotesi
Apprendimento di funzioni algebriche
Computational Learning Theory and PAC learning
Apprendimento Automatico: Apprendimento per Rinforzo
Metodi di Ensemble Metaclassificatori.
Support Vector Machines
Apprendimento Bayesiano
Algoritmi Paralleli e Distribuiti a.a. 2008/09
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Problemi e algoritmi Anno Accademico 2009/2010.
Reti neurali naturali ed artificiali
Realizzazione e caratterizzazione di una semplice rete neurale per la separazione di due campioni di eventi Vincenzo Izzo.
Soluzione di equazioni non lineari
Ricerca della Legge di Controllo
BIOINGEGNERIA S. Salinari Lezione 4.
TECNOLOGIE DEI SISTEMI DI CONTROLLO
BIOINGEGNERIA S. Salinari Lezione 7. RETI CON APPRENDIMENTO SUPERVISIONATO A DISTANZA Nello sviluppo delle reti neurali si è proceduto indebolendo via.
Alternative al Paradigma Rappresentazionale
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Modelli simulativi per le Scienze Cognitive Paolo Bouquet (Università di Trento) Marco Casarotti (Università di Padova)
Modelli simulativi per le Scienze Cognitive
Filtri adattativi.
PATTERN RECOGNITION.
Reti Neurali Ricorrenti
Artificial intelligence
Reti Neurali Mercoledì, 10 Novembre 2004 Giuseppe Manco References: Chapter 4, Mitchell Chapter 1-2,4, Haykin Chapter 1-4, Bishop Reti Neurali Lezione.
Intelligenza Artificiale Algoritmi Genetici
Intelligenza Artificiale
Apprendimento Automatico Apprendimento non supervisionato:
CALCOLO EVOLUZIONISTICO. In ogni popolazione si verificano delle mutazioni. Le mutazioni possono generare individui che meglio si adattano allambiente.
In contrapposizione con i metodi convenzionali (hard computing), le tecniche di soft computing non si basano su procedimenti esprimibili in forma chiusa.
Intelligenza Artificiale
Il calcolo di radiosity
APPLICAZIONI DI INTELLIGENZA ARTIFICIALE ALLA MEDICINA
RETI NEURALI ARTIFICIALI
Il neurone e i suoi componenti Il nucleo I dendriti Lassone Le connessioni sinaptiche.
Perceptron. è la somma effettuata sul nodo i-esimo dello strato j n è il numero di nodi dello strato j-1 è l'output proveniente dal nodo k-esimo dello.
LE RETI NEURALI: MODELLI, ALGORITMI E APPLICAZIONI
Rete di Hopfield applicata al problema del TSP Federica Bazzano
GLI ALGORITMI VISIBILE SUL BLOG INFORMATICA ANNO SCOLASTICO 2013 / 2014 GABRIELE SCARICA 2°T.
Didattica e Fondamenti degli Algoritmi e della Calcolabilità Terza giornata: principali classi di complessità computazionale dei problemi Guido Proietti.
Università degli studi di Parma Dipartimento di Ingegneria dell’Informazione Politecnico di Milano © 2001/02 - William Fornaciari Reti Logiche A Lezione.
RETI NEURALI - 2.
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Sistemi basati su conoscenza Metodi di ricerca informata Prof. M.T. PAZIENZA a.a
Intelligenza Artificiale
Intelligenza Artificiale Reti Neurali
APPROSSIMAZIONE DI FUNZIONI
FILTRI ANALOGICI E DIGITALI Modulo del Corso Integrato di: Progetto di Circuiti per il Trattamento dei Segnali.
REALIZZAZIONE DI UN SISTEMA DI CLASSIFICAZIONE Prof. Roberto Tagliaferri Studente: Ragognetti Gianmarco Corso di Reti Neurali e Knowledge Discovery A.A.
Le reti neurali Simona Balbi. Cosa sono le reti neurali Una rete neurale artificiale (A)NN è un paradigma di elaborazione dell’informazione ispirato al.
Self-Organizing Map (SOM Kohonen, 1981) è una tecnica di visualizzazione dei dati multidimensionali SOM è una mappa mono- (bi-)dimensionale che rappresenta.
Lezioni di Ricerca Operativa Corso di Laurea in Informatica
Transcript della presentazione:

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

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!

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

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

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

∑ 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 w0 x1 w1 w2 x2 ∑ . . . wm soglia xm

∑ 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 w0 x1 w1 w2 x2 ∑ . . . wm soglia xm

Funzioni somma e soglia (1) La funzione d’ingresso (lineare, somma delle componenti di input di x = (x1, …, xn)) x0=1 w0 x1 w1 w2 x2 ∑ . . . wm soglia xm

Funzioni somma e soglia (2) La funzione di attivazione (non lineare, soglia) 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 w0 x1 w1 w2 x2 ∑ . . . wm soglia xm

Funzioni di attivazione Funzione gradino Funzione segno (utilizzata nel percettrone) Funzione sigmoide 1 1 -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 è: Esprimibile anche in forma vettoriale mediante la:

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

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): Si tratta di ottimizzare la funzione: in modo da minimizzarne l’errore

Esempio per due attributi Con (x1, x2) 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: x2 x1

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)

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 + - - + - + x1 - - + + - - +

Implementare funzioni booleane più complesse con il percettrone x0=1 0.5 -0.3 x1 x1 or x2 0.5 x0=1 x2 -0.8 0.5 (x1 or x2) and x3 0.5 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:  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

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 wj tenderà a crescere, riducendo l’errore 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

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

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:

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

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: l’output non è sogliato

Come calcolare la derivata

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

Discesa del Gradiente Stocastica o Incrementale Delta rule

Diverse proprietà di convergenza: 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

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

Vogliamo apprendere superfici di decisione non lineari!

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 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

Backpropagation (2) unità d’ingresso ii unità nascosta hj La funzione soglia di ciascuna unità è la sigmoide: L’errore è calcolato come segue: Obiettivo dell’algoritmo: minimizzare l’errore fra ciascuna uscita desiderata yk e l’uscita calcolata dalla rete neurale ok unità d’ingresso ii unità nascosta hj unità di uscita ok

L’algoritmo Backpropagation function BackProp(D, , nin, nhidden, nout) D è l’insieme di addestramento costituito da coppie  è 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 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: Per ogni unità nascosta h, calcola il suo termine d’errore h: Aggiorna i pesi wij: xij è l’input dell’unità j proveniente dall’unità i

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 o1 x2 h2

Esempio Finché non si incontra la condizione di terminazione: Per ogni esempio 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 ((0, 0), (0)) x1 h1 o1 x2 h2

o1 = oo1(1-oo1)(yo1-oo1)= 0.36*(1-0.36)(0-0.36)=-0.08 Esempio Propaga gli errori all’indietro nella rete: Per ogni unità di output k, calcola il suo termine d’errore k: Per ogni unità nascosta h, calcola il suo termine d’errore h: Aggiorna i pesi wji: o1 = oo1(1-oo1)(yo1-oo1)= 0.36*(1-0.36)(0-0.36)=-0.08 h1 = oh1*(1-oh1)*wh1o1o1 = 0.58*(1-0.58)*(0.16)*(-0.08) = -0.003 h2 = oh2*(1-oh2)*wh2o1o1=0.47(1-0.47)*(0.75)*(-0.08)=-0.014

Esempio wx0h1 = 0.34+h1xx0h1=0.34+0.5*(-0.003)*1=0.34-0.0015, Propaga gli errori all’indietro nella rete: Per ogni unità di output k, calcola il suo termine d’errore k: Per ogni unità nascosta h, calcola il suo termine d’errore h: Aggiorna i pesi wji: 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

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

Otteniamo i seguenti risultati per gli input: 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

Cosa c’è alla base della regola di propagazione dell’errore all’indietro? Consideriamo la funzione di errore per d=(x,y)D:   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.

Calcolo della regola di aggiornamento dell’unità di output

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

Disegno dell’errore su un test set T

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

Modifica della regola di aggiornamento Quando si esegue l’n-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!

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!!

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

Obiettivo - apprendere un’ontologia: Applicazione: Modello di Memoria Semantica [McClelland and Rogers, 2003] Obiettivo - apprendere un’ontologia:

Strategia - Rete Neurale: Applicazione: Modello di Memoria Semantica [McClelland and Rogers, 2003] Strategia - Rete Neurale:

Applicazione: Modello di Memoria Semantica [McClelland and Rogers, 2003] Risultati in termini di distanza euclidea:

Applicazione: ALVINN guida a 70 mph!

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.

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

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