Apprendimento automatico e Reti Neurali Francesco Sambo www.dei.unipd.it/~sambofra francesco.sambo@dei.unipd.it tel. 049 827 7834
Apprendimento automatico Capacità di un agente di sintetizzare nuova conoscenza a partire da:!osservazione dell'ambiente!esperienza Agente dotato di stato dinamico
Applicazioni Computer Vision Riconoscimento di oggetti, biometria Bioinformatica Classificazione automatica di geni, proteine e sequenze di DNA, automated drug discovery Information Retrieval Text mining Natural Language Processing Riconoscimento vocale, riconoscimento di caratteri scritti a mano e di pattern sintattici Medicina Diagnosi automatica, analisi di cartelle cliniche Robotica Path Finding, gestione del movimento, individuazione di ostacoli...
Apprendimento automatico 3 tipologie:!apprendimento supervisionato!apprendimento non supervisionato!apprendimento per rinforzo
Apprendimento Supervisionato L agente apprende una funzione dell'input partendo da esempi di coppie input-output. Features X Y x 1 y 1 x 2 y 2 y = f(x) x n y n
Esempio: previsioni del tempo Input: coppie temperatura pressione Output: bello / brutto tempo T ( C) P (hpa) Output 12.2 1022.8 Bello 20.4 1015.9 Bello 25.2 1028.9 Brutto 17.7 1020.0 Brutto 18.4 1021.5 Brutto 22.0 1021.7 Bello 28.1 1016.3 Brutto -4.6 1018.7 Brutto 0.1 1020.8 Bello y = sign(" # T + $ # P) if T!22 and P!1021 then Bello else if T<0 then Brutto else if
Apprendimento Non Supervisionato L agente impara a riconoscere pattern o schemi nell input senza alcuna indicazione dei valori di output. Esempi: Clustering, Market Basket Analysis...
Apprendimento Per Rinforzo L agente apprende esplorando l ambiente e ricevendo ricompense nel caso di azioni positive
Apprendimento Supervisionato 2 tipologie:!classificazione Output discreto e limitato!regressione Output continuo
Classificazione Esempio: riconoscimento di cifre scritte a mano 3 7 0, 3? Codominio discreto e limitato y = { 0 9}
Regressione Esempio: fit dei parametri di un modello partendo dai dati Codominio continuo
Procedura di Apprendimento Dataset Training Set Test Set 2 Fasi!Training:!Al sistema viene fornito un insieme di coppie input-output!il sistema adatta il proprio stato interno per classificare correttamente le coppie fornite!testing:!al sistema viene fornito un diverso insieme di input (di cui si conosce l'output)!si valuta l'accuratezza del sistema, in termini di percentuale di risposte corrette
K-fold cross validation Come faccio ad essere sicuro di non aver introdotto bias con una particolare suddivisione del dataset?!! Random sampling!! K-fold cross validation: Suddivido il dataset in K sottoinsiemi, alleno il sistema su K-1 sottoinsiemi e lo testo sul sottoinsieme restante. Itero K volte e prendo la media dei risultati. Dataset Subset 1 Subset 2 Subset 3 Subset 4
Overfitting Cosa succede se adatto troppo il modello ai dati, o se scelgo un modello troppo complesso? Non generalizza! Suddivido ulteriormente il training set, tenendo da parte un validation set. Durante l allenamento, testo periodicamente l accuratezza sul validation set: se l errore aumenta, arresto l allenamento. validation error training error
Procedura di apprendimento Training Set Validation Set Test Set!! 3 sottoinsiemi: Training, Validation e Test Set!! Se devo scegliere fra più modelli o algoritmi di apprendimento, uso il training set, suddiviso in K insiemi di cross-validation, per confrontare le varie alternative.!! Alleno il modello scelto sul training set, controllando periodicamente l accuratezza sul validation set; arresto l allenamento quando inizia l overfitting.!! Valuto l accuratezza finale sul test set.
Apprendimento Supervisionato Tecniche: Neural Networks Decision Trees Support Vector Machines Bayesian Networks
Reti Neurali Francesco Sambo www.dei.unipd.it/~sambofra francesco.sambo@dei.unipd.it tel. 049 827 7824
Reti Neurali Artificiali Modello Computazionale basato sulle reti neurali biologiche. Rete di neuroni artificiali interconnessi. Classificazione / Regressione. Modello adattivo: Adatta il suo stato interno alle coppie input-output di training
Origini Modello matematico di neurone: McCulloch, W. S. and Pitts, W. (1943). A logical calculus of the ideas immanent in nervous activity. Bulletin of Mathematical Biophysics, 5, 115 137.
Neurone Per il j-mo neurone:!! Input:!! Pesi:!! Output: o j x j = {-1,x 1j,,x nj } w j = {w 0j,w 1j,,w nj } z j = n # i= 0 w ij x ij = w j " x j
Separatore Lineare T P w" x = 0 ( ) = & 1 w# x $ 0 " w# x % ' 0 w# x < 0
Percettrone!! Rete neurale a singolo strato!! Un neurone in uscita per ogni classe!! Consente di classificare datasets linearmente separabili E se ho dati non linearmente separabili? Rosenblatt, F. (1957). The perceptron: A perceiving and recognizing automaton. Report 85-460-1, Project PARA, Cornell Aeronautical Laboratory, Ithaca, NewYork.
Dati non linearmente separabili
Reti Neurali Multistrato
Dati non linearmente separabili 1 hidden layer: combinazioni lineari di semispazi ciao 2 hidden layers: combinazioni lineari di combinazioni di semispazi
Backpropagation Algoritmo di allenamento di una rete a partire dalle coppie (x,y) (training set). Sottopone più volte il training set alla rete, aggiustando i pesi per minimizzare l errore quadratico. Algoritmo gradient descent, efficiente ma può arenarsi in un ottimo locale. L allenamento è, in generale, un problema NP-Completo. Initialize weights at random repeat for each example in the training set end compute example s output compute quadratic error for i = levels_# down to 1 end compute update for weights at level i update all weights until (all examples correctly classified or max iterations reached) Werbos (1974). Beyond Regression: New Tools for Prediction and Analysis in the Behavioral Sciences. Ph.D. Thesis, Harvard University. Rumelhart, Hintont, Williams (1986). Learning representations by back-propagating errors. Nature
Backpropagation Definizioni: Funzione di attivazione: Errore:
Backpropagation Aggiornamento del peso:
Backpropagation Aggiornamento del peso:
Backpropagation Aggiornamento dei pesi: con
Altre tipologie di Reti Neurali Recurrent Neural Networks Associative Neural Networks Stochastic Neural Networks Spiking Neural Networks
Procedura di apprendimento Reti Neurali Training Set Validation Set Test Set!! 3 sottoinsiemi: Training, Validation e Test Set!! # nodi in ingresso = # features!! # nodi in uscita = # di classi!! # hidden layer e # nodi per livello: k-fold cross validation sul training set.!! Alleno la struttura scelta con tutto il training set, limitando l overfitting col validation set.!! Valuto l accuratezza finale sul test set.
Buone abitudini e regolette euristiche Training Set Validation Set Test Set!! 1 hidden layer è sufficiente per la stragrande maggioranza dei problemi (e l allenamento è più rapido)!! Se devo scegliere il numero di nodi interni, parto con pochi e cresco (esponenzialmente) finchè vedo un miglioramento per es. 5 10 20 50 100
Laboratorio 02/11 8:30-10:00 Aule Te e Ue Reti Neurali 1 09/11 8:30-10:00 Aule Te e Ue Reti Neurali 2 NB. Si comincia in aula Ce e poi ci si sposta!! www.dei.unipd.it/~sambofra/ai.htm! Slide delle lezioni! Capitolo 20 Russel & Norvig