Introduzione all'Intelligenza Artificiale - Corso di Intelligenza Artificiale, a.a. 2018-2019
←
→
Trascrizione del contenuto della pagina
Se il tuo browser non visualizza correttamente la pagina, ti preghiamo di leggere il contenuto della pagina quaggiù
Introduzione all’Intelligenza Artificiale Corso di Intelligenza Artificiale, a.a. 2018-2019 Prof. Francesco Trovò 25/02/2019
Introduzione all’Intelligenza Artificiale • Definizione di intelligenza • Evoluzione dell’intelligenza artificiale • Applicazioni dell’intelligenza artificiale
Definizioni di Intelligenza Artificiale Domande: Cos’è l’intelligenza? Cos’è il pensiero? (Filosofia, biologia) Come possiamo geneare costruire entità intelligenti? Definire intelligenza: • Agire umanamente • Pensare umanamente • Pensare razionalmente • Agire razionalmente
1. Agire Umanamente: Il test di Turing Alan Turing (1912 - 1954) Formalizzazione algoritmo, macchina di turing Primo crittoanalista (macchina Enigma) Padre dell’informatica e dell’IA Test di Turing: • Alice (donna), Bob (uomo), Charlie (giocatore) in stanze separate • Charlie deve capire da domande dattiloscritte chi dei due è Bob • Uno dei due gioca con Charlie, altro contro • Se, sostituendo Alice con un’IA, Charlie ha le stesse prestazioni di riuscita, allora l’IA ha passato il test (Vedi anche l’esperimento stanza cinese)
Requisiti di un’IA Capace di Passare il Test Test di Turing: • Interpretazione del linguaggio naturale • Rappresentazione della conoscenza • Ragionamento automatico • Apprendimento Test di Turing totale: • Visione artificiale • Manipolazione robotica
2. Pensare Umanamente Definire come opera il pensiero umano: Introspezione o psicologia (top-down) Imaging cerebrale (bottom-up) Argomento trattato da Scienze cognitive: • Analisi del pensiero umano ed animale • Modelli sul funzionamento della mente umana NB: I due campi (AI e Scienze cognitive) sono interconnessi e si alimentano a vicenda, ma sono distinti (ad esempio Reti Neurali)
3. Pensare Razionalmente Modellizzare i processi cognitivi in maniera formale: Logica (Aristotele) Partendo da programmi basati sulla logica vogliamo creare dei sistemi intelligenti Problemi: • Molto difficile formalizzare i problemi in termini logici (in particolare quando sono in presenza di incertezza) • Risolvere tramite la logica problemi di dimensione elevata non è feasible computazionalmente
4. Agire Razionalmente Non significa pensare razionalmente: possiamo raggiungere l’obbiettivo anche se non pensiamo in maniera corretta Contest: far camminare un agente bipede (https://www.youtube.com/watch?v=gn4nRCC9TwQ) Vantaggi: • possiamo definire in maniera formale la razionalità • possiamo richiedere che l’agente abbia razionalità perfetta oppure razionaltà limitata
Un po’ di Storia • Filosofia • Aristotele: sillogismi • Pascal: calcolatori • Cartesio: discussione mente/materia • Carnap, Hempel: teoria della conferma • Matematica • Boole: logica booleana • Al-khuwarzemi: algoritmi • Godel: teorema di incompletezza • Cock, Karp: NP-completezza • Bernoulli, Bayes: probabilità
Un altro po’ di Storia • Economia • Neumann: teoria delle decisioni • Bellman: Markov Processes • Neuroscienze • Psicologia • Ingegneria informatica • Controllo e cibernetica • Linguistica
La Gestazione dell’IA (1943) W. McCulloch e W. Pitts Prima definizione di un neurone artificiale (1949) D. Hebb Regola di aggiornamento dei pesi di una rete (1950) M. Minsky e D. Edmonds Primo calcolatore basato su rete neurale – 40 neuroni A. Turing «Computing Machinery and Intelligence»
La Nascita dell’IA (1956) J. McCarthy Workshop sullo studio dell’intelligenza Coniato il termine Intelligenza Artificiale A. Newell e H. Simon Programma in grado di ragionare Logic Theorist (LT) General Problem Solver (pensare umanamente) A. Samuel programmi per gioco della dama (1959) N. Rochester Geometry Theorem Prover
I Primi Passi (1958) J. McCarthy Sviluppo linguaggio LISP (1962) B. Widrow (1962) Reti adaline F. Rosemblatt (1962) Sviluppo del perceptrone (1965) J.A. Robinson Algoritmo per la dimostrazione di teoremi per la logica del primo ordine (1968) Minsky Studio di programmi per i micromondi
Le Prime Difficoltà (1966-1973) I primi programmi non avevano idea del contesto in cui stavano lavorando e assumevano che non ci fossero problemi di complessità • Traduzione del linguaggio naturale es: lo spirito è forte ma la carne è debole → la vodka è buona ma la bistecca è marcia • Modifica di programmi per ottenerne di più efficienti • Esplosione combinatoria di alcune metodologie • Limitazione dei perceptroni Stop ai finanziamenti alle ricerche di IA (inverno dell’IA)
Metodi Basati sulla Conoscenza di Settore DENDRAL (1969) Ricostruire la struttura molecolare partendo dai dati di uno spettrometro di massa Soluzione banale: generare ogni possibile combinazione e poi confrontarla con un risultato (unfeasible) Integrazione dell’esperienza dei chimici nel programma (sistemi esperti) La possibilità di applicare industrialmente i risultati dell’IA porta a finanziamenti ingenti negli anni tra il 1980 e il 1988
Metodi Connessionisti (1986-oggi) Rumelhart e McLelland (1986) Rivitalizzazione dei metodi basati su reti neurali Applicazione a problemi di apprendimento Due differenti linee di ricerca: • Definizione di topologie di reti per risolvere efficientemente i problemi e per definirne le proprietà matematiche • Modellizzazione delle proprietà dei neuroni reali G. Hinton e Y. LeCun (2006) Nuova interpretazione delle reti neurali Nascita del Deep Learning
Metodi Basati sui Dati (2001-oggi) Negli anni il volume dei dati generati è cresciuto a ritmi impressionanti Idea: utilizzare i dati per prendere decisioni • Nascita del Machine Learning, Mitchell (1959) • Tecniche di apprendimento da sostituire al processo di categorizzazione della conoscenza • Richiesta di uno sforzo computazionale importante
Esempi Importanti di Algoritmi di IA Yarowsi (1995) plant living/factory Disambiguazione di una parola tank vehicle/container palm hand/tree base fish/music crane bird/machine Hays ed Efros (2007) Completamento di una foto corrotta
Esempi di problemi risolti da metodi di IA Veicoli autonomi – DARPA urban challenge, TESLA (https://www.youtube.com/watch?v=lULl63ERek0)
Esempi di problemi risolti da metodi di IA Chatbot – call center automatizzati, SpacoBot
Esempi di problemi risolti da metodi di IA Scheduling • REMOTE AGENT pianificazione delle operazioni di controllo e manutenzione di un veicolo spaziale • MAPGEN pianificazione delle attività per i Mars Rover
Esempi di problemi risolti da metodi di IA Giochi – scacchi DEEPBLUE, go ALPHA GO, poker LIBRATUS (https://www.youtube.com/watch?v=8tq1C8spV_g)
Esempi di problemi risolti da metodi di IA Robotica – esplorazione Roomba, BOSTON DYNAMICS (https://www.youtube.com/watch?v=RYzn_gmFs5w)
Esempi di problemi risolti da metodi di IA NLP – WolframAlpha, Google Translate
Esempi di problemi risolti da metodi di IA Kidney exchange
Conclusioni • Non aspettiamoci troppo dall’IA (winter is coming!) • Molto spesso ha come scopo l’automatizzazione di compiti già svolti da umani • Risulta utile per molti problemi pratici • Non tutto si può risolvere basandosi sui dati • Machine Learning è solo una delle possibili branche dell‘IA
Puoi anche leggere