Apprendimento Automatico: Introduzione Roberto Navigli Apprendimento Automatico: Introduzione Roberto Navigli
Apprendimento Automatico (Machine Learning) Una delle aree fondamentali dell’Intelligenza Artificiale Mira a sviluppare algoritmi e metodi al fine di permettere alla macchina di apprendere Apprendimento: il processo di “comprendere” costruendo un modello dei dati osservati al fine di utilizzarlo in predizioni future Regole d’associazione Classificazione Regressione Clustering Tipicamente si vuole ottimizzare un criterio di prestazione utilizzando dati d’esempio o precedente esperienza Apprendimento Automatico: Introduzione Roberto Navigli
Dove si colloca l’Apprendimento Automatico sapere Apprendimento Automatico: Introduzione Roberto Navigli
Dove si colloca l’Apprendimento Automatico scienze Apprendimento Automatico: Introduzione Roberto Navigli
Dove si colloca l’Apprendimento Automatico informatica Apprendimento Automatico: Introduzione Roberto Navigli
Dove si colloca l’Apprendimento Automatico Intelligenza Artificiale Apprendimento Automatico: Introduzione Roberto Navigli
Cos’è l’Intelligenza Artificiale? A voi la risposta… Apprendimento Automatico: Introduzione Roberto Navigli
Un’area dell’Intelligenza Artificiale Risoluzione di problemi Ragionamento automatico Pianificazione Apprendimento automatico Rappresentazione della conoscenza Elaborazione del linguaggio naturale Visione artificiale Robotica … Apprendimento Automatico: Introduzione Roberto Navigli
Macchine “Intelligenti” in Breve (1) L’idea di dispositivi meccanici e macchine intelligenti data almeno ai tempi della Grecia antica Aristotele inventa il sillogismo, il primo sistema formale di deduzione logica (V secolo a.C.) Apprendimento Automatico: Introduzione Roberto Navigli
Macchine “Intelligenti” in Breve (1) L’idea di dispositivi meccanici e macchine intelligenti data almeno ai tempi della Grecia antica Aristotele inventa il sillogismo, il primo sistema formale di deduzione logica (V secolo a.C.) Roger Bacon (frate, filosofo e scienziato) si dice abbia creato teste parlanti (“talking heads”) che potevano rispondere a qualsiasi domanda (XIII secolo d.C.) Apprendimento Automatico: Introduzione Roberto Navigli
Macchine “Intelligenti” in Breve (1) L’idea di dispositivi meccanici e macchine intelligenti data almeno ai tempi della Grecia antica Aristotele inventa il sillogismo, il primo sistema formale di deduzione logica (V secolo a.C.) Roger Bacon (frate, filosofo e scienziato) si dice abbia creato teste parlanti (“talking heads”) che potevano rispondere a qualsiasi domanda (XIII secolo d.C.) La Bibbia di Gutenberg va in stampa (1456) Blaise Pascal (1642) creò la prima calcolatrice, migliorata poi da Leibniz Apprendimento Automatico: Introduzione Roberto Navigli
Macchine “Intelligenti” in Breve (1) L’idea di dispositivi meccanici e macchine intelligenti data almeno ai tempi della Grecia antica Aristotele inventa il sillogismo, il primo sistema formale di deduzione logica (V secolo a.C.) Roger Bacon (frate, filosofo e scienziato) si dice abbia creato teste parlanti (“talking heads”) che potevano rispondere a qualsiasi domanda (XIII secolo d.C.) La Bibbia di Gutenberg va in stampa (1456) Blaise Pascal (1642) creò la prima calcolatrice, migliorata poi da Leibniz Mary Shelley pubblica Frankestein (1818) Apprendimento Automatico: Introduzione Roberto Navigli
Macchine “Intelligenti” in Breve (1) L’idea di dispositivi meccanici e macchine intelligenti data almeno ai tempi della Grecia antica Aristotele inventa il sillogismo, il primo sistema formale di deduzione logica (V secolo a.C.) Roger Bacon (frate, filosofo e scienziato) si dice abbia creato teste parlanti (“talking heads”) che potevano rispondere a qualsiasi domanda (XIII secolo d.C.) La Bibbia di Gutenberg va in stampa (1456) Blaise Pascal (1642) creò la prima calcolatrice, migliorata poi da Leibniz Mary Shelley pubblica Frankestein (1818) Charles Babbage e Lady Ada Byron (Lovelace) inventarono la prima macchina programmabile (macchina analitica, 1837-71) Apprendimento Automatico: Introduzione Roberto Navigli
Macchine “Intelligenti” in Breve (2) Warren McCulloch e Walter Pitts pubblicano "A Logical Calculus of the Ideas Immanent in Nervous Activity" (1943), gettando le fondamenta per le reti neurali Alan Turing pubblica "Computing Machinery and Intelligence" (1950), in cui viene proposto il Test di Turing: La macchina riesce a comportarsi in modo sufficientemente simile a un essere umano? Se una macchina supera il test di Turing, allora è intelligente (Strong AI) Isaac Asimov pubblica le tre leggi della robotica (1950) John McCarthy conia il termine “intelligenza artificiale" come argomento della Dartmouth Conference, la prima conferenza sul tema (1956) Arthur Samuel (IBM) scrive il primo programma che gioca (a dama, 1952-62) Margaret Masterman e colleghi (Cambridge) inventano le reti semantiche per la traduzione automatica Marvin Minsky e Seymour Papert pubblicano “Perceptrons” (1968) e dimostrano i limiti delle reti neurali semplici Apprendimento Automatico: Introduzione Roberto Navigli
Macchine “Intelligenti” in Breve (3) Terry Winograd dimostra come sia possibile scrivere programmi che comprendano semplici comandi in lingua inglese (SHRLDU) Natural Language Understanding Nel 1975, Minsky pubblica “A framework for representing knowledge” (introducendo i frame) Metà degli anni ’70: emergono i limiti degli approcci GOFAI all’IA GOFAI (Good Old-Fashioned Artificial Intelligence): l’approccio storico all’IA basato su logica e risoluzione dei problemi in domini ristretti (es. giocare a scacchi) 1978: Tom Mitchell (Stanford) inventa il concetto di Spazio delle Versioni per descrivere lo spazio di ricerca di un programma per la formazione di concetti Anni ‘80: le reti neurali vengono ampiamente utilizzate grazie all’algoritmo di Backpropagation (descritto per la prima volta da Werbos nel 1974). Inizio anni ’90: TD-Gammon, sviluppato da Gerry Tesauro, dimostra l’importanza dell’apprendimento per rinforzo (campione del mondo) Deep Blue (programma per scacchi) batte l’attuale campione del mondo, Garry Kasparov Apprendimento Automatico: Introduzione Roberto Navigli
Macchine “Intelligenti” in Breve (3) Camera cinese Esperimento (Searle, 1980) che tenta di dimostrare come una macchine che elabora simboli non possa “comprendere” o avere una “mente” Supponiamo che l’IA abbia finalmente realizzato un programma per computer che si comporti come se fosse in grado di comprendere il cinese. Data una stringa cinese in ingresso, esso fornisce una risposta in cinese. Supponiamo che la macchina passi il Test di Turing. Supponiamo che un essere umano abbia un manuale in inglese contenente il suddetto programma… egli passerebbe il test non capendo tuttavia nulla di cinese! Apprendimento Automatico: Introduzione Roberto Navigli
Perché non scrivere direttamente un programma? Esercizio: provate a scrivere un programma che giochi bene a scacchi Claude Shannon: "Programming a computer to play chess" (1950). Situazioni in cui non è possibile codificare semplicemente la conoscenza in un programma: Esperienza umana non è disponibile (es. una sonda spaziale) L’uomo non è in grado di spiegare l’esperienza (es. riconoscimento del parlato) Le scelte cambiano nel tempo (sistemi dinamici, reti di computer) Le scelte devono essere adattate a casi particolari (es. riconoscimento dei volti) Apprendimento Automatico: Introduzione Roberto Navigli
Apprendimento Automatico Schematizzato classificazione dati classificatore supervisione ambiente Apprendimento Automatico: Introduzione Roberto Navigli
Esempio di Problema di Apprendimento Automatico (1) Riconoscimento della scrittura: Apprendimento Automatico: Introduzione Roberto Navigli
Esempio di Problema di Apprendimento Automatico (2) Risoluzione dell’ambiguità del linguaggio: Es. ricerca con google: beagle Eppure beagle significa: Apprendimento Automatico: Introduzione Roberto Navigli
Esempio di Problema di Apprendimento Automatico (3) Agenti intelligenti: Apprendimento Automatico: Introduzione Roberto Navigli
Apprendimento Automatico: Altri Esempi Strategie di marketing: impiego di informazioni d’acquisto per determinare suggerimenti pubblicitari (es. amazon) Classificazione di una forma d’onda in una parola del lessico (speech recognition) Question typing: classificazione del tipo di domanda in un sistema di Question Answering Rischio del credito: quanto è affidabile un cliente? Determinare il comportamento di un personaggio in un ambiente di storytelling (es. storytron) Traduzione automatica (machine translation) Conduzione di autovetture Apprendimento Automatico: Introduzione Roberto Navigli
cake, cake, cake, I do love cake! Come apprendiamo noi? cake, cake, cake, I do love cake! Apprendimento Automatico: Introduzione Roberto Navigli
Importanza dell’Apprendimento Automatico Collo di bottiglia della conoscenza (knowledge acquisition bottleneck) E’ più facile acquisire automaticamente la conoscenza che codificarla a mano Progressi nell’area degli algoritmi e dei modelli teorici e sperimentali Macchine più potenti Applicazioni industriali rilevanti Crescente disponibilità di dati in linea Wikipedia, Wiktionary, Flickr, Twitter, ecc. Collezioni di blog Google Web1T Search log Reti sociali Fortissima relazione con il data mining Apprendimento Automatico: Introduzione Roberto Navigli
4 crediti (dal prossimo anno: 6 crediti!) 11 settimane (45 ore circa) Notizie sul corso 4 crediti (dal prossimo anno: 6 crediti!) 11 settimane (45 ore circa) Testi: T. Mitchell. Machine Learning, McGrawHill, 1997 E. Alpaydin. Introduction to Machine Learning, MIT Press, 2004 P. Tan, M. Steinbach, V. Kumar, Introduction to Data Mining, Pearson Addison Wesley, 2005 Pagina del corso: http://twiki.di.uniroma1.it/twiki/view/ApprAuto Per discussioni, progetto, ecc. iscrivetevi al gruppo google apprauto2010: http://groups.google.com/group/apprauto2010 Apprendimento Automatico: Introduzione Roberto Navigli
Apprendimento supervisionato Argomenti del Corso Apprendimento supervisionato Alberi di decisione Apprendimento basato su istanze Apprendimento probabilistico Reti neurali Apprendimento non supervisionato Clustering Apprendimento per rinforzo Applicazioni: Traduzione automatica Apprendimento Automatico: Introduzione Roberto Navigli
Modalità d’Esame E’ necessario: Sostenere due prove scritte d’esonero oppure una prova orale a fine corso Realizzare un progetto in java (→ thesis track available) Il progetto sarà modulare, in modo da poter essere svolto in gruppo ma anche da consentire che ognuno sia in grado di svolgere la sua parte di lavoro autonomamente: Sarà prevista una revisione periodica del progetto dal momento della sua assegnazione fino alla prima data di consegna Chi non segue, può richiedere un progetto ad hoc, assegnato dal docente, e può svolgere solo la prova orale Apprendimento Automatico: Introduzione Roberto Navigli
Ricevimento a fine lezione una volta a settimana Sogni realizzabili Ricevimento a fine lezione una volta a settimana Alla fine di ogni lezione saranno proposti uno o più esercizi da svolgere a casa Non è obbligatorio svolgerli, ma serve a rendere più solida la vostra preparazione Dispense Laddove possibile, proporre spunti di ricerca Un universo da esplorare… Proporvi seminari di ricerca attinenti la materia Es. caffè scienza, visitatori del dipartimento, ecc. Birra & ricerca Apprendimento Automatico: Introduzione Roberto Navigli
Sogni meno realizzabili Apprendimento Automatico: Introduzione Roberto Navigli