Dipartimento di Ingegneria dell’Informazione Università degli Studi di Parma Intelligenza Artificiale Introduzione Agostino Poggi Stefano Cagnoni Programma del corso (Intelligenza Artificiale A) Tecniche di base dell’Intelligenza Artificiale Risoluzione di problemi Rappresentazione della conoscenza Pianificazione Apprendimento Gestione dell’incertezza Introduzione 2 Programma del corso (Intelligenza Artificiale v.o. (2003-2004)/ Calcolo naturale, evoluzionistico, emergente ? (2004-2005)) Tecniche di soft computing e di calcolo emergente Reti Neurali Calcolo Evoluzionistico Cenni di calcolo emergente (Alife, ant algorithms, particle swarm optimization) Introduzione 3 Testi Consigliati Stuart Russell e Peter Norvig. Artificial Intelligence: A Modern Approach, seconda edizione. Prentice Hall, 2003. In versione italiana: Stuart Russell e Peter Norvig. Intelligenza artificiale: un approccio moderno, Traduzione italiana della prima edizione. UTET Libreria, 1998, a cura di Luigia Carlucci Aiello. Introduzione 4 Cosa è l'Intelligenza Artificiale È lo studio di come rendere i calcolatori capaci di pensare nel senso letterale del termine (Haugeland, 1985). Cioè come realizzare sistemi che pensano come gli uomini. È lo studio di come far fare ai calcolatori cose che, ora come ora, gli uomini fanno meglio (Rich and Knight, 1991). Cioè come realizzare sistemi che agiscono come gli uomini. Introduzione 5 Cosa è l'Intelligenza Artificiale È lo studio delle facoltà mentali attraverso l'uso di modelli computazionali (Charniak and McDermott, 1985). Cioè come realizzare sistemi che pensano razionalmente. È lo studio di come spiegare e emulare il comportamento intelligente attraverso processi computazionali (Schalkoff, 1990). Cioè realizzare sistemi che agiscono razionalmente. Introduzione 6 Primo dilemma….. L’Intelligenza Artificiale è la scienza: che permette ad una macchina di imitare l’uomo modellandone anche i processi biologici e mentali ed i comportamenti ? che crea processi computazionali che ottengono risultati comparabili o migliori di quelli ottenuti dall’uomo in attività considerate tipiche dell’intelligenza umana ? Introduzione 7 Secondo dilemma (versione 1)….. Nel primo caso (sillogismo aristotelico) L’IA imita l’uomo ed i suoi processi biologici, mentali e comportamentali L’uomo agisce in modo intelligente => L’IA imita processi intelligenti. Ma è davvero intelligenza ? (discutere… ) Intelligente = umano ? (cioè che fa esattamente la stessa cosa che farebbe un uomo) Introduzione 8 Secondo dilemma (v.1, corollario) Intelligente = umano ? (cioè che fa esattamente la stessa cosa che farebbe un uomo) Imitare un uomo stupido è Intelligenza Artificiale ? A seconda del contesto, non è detto che una stessa decisione/azione sia sempre intelligente o sempre stupida… Es. di contesti : a) cantina di Steve Jobs o b) deserto del Sahara dopo una lunga marcia Introduzione 9 Secondo dilemma (versione 2) Nel secondo caso L’IA definisce processi computazionali che ottengono risultati comparabili o migliori di quelli ottenuti dall’uomo in attività intelligenti Ma è davvero intelligenza ? (discutere… ) Intelligente = razionale ? (cioè che fa la cosa giusta per un certo contesto in ogni istante) Introduzione 10 Altri dilemmi…... È un ramo dell'ingegneria? È un ramo dell'informatica? È un ramo delle scienze cognitive? È un ramo della filosofia? È una scienza? Introduzione 11 Le Basi dell'Intelligenza Artificiale L'Intelligenza Artificiale è una campo di ricerca giovane (1943). l'Intelligenza Artificiale si basa sulle idee e risultati ottenuti in altri campi: Filosofia Psicologia Linguistica Matematica Informatica Ingegneria dei calcolatori Elaborazione dei segnali e riconoscimento delle immagini Teoria dei sistemi e del controllo Introduzione 12 Basi Filosofiche (428 BC - ) Platone nel 428 BC descrive un dialogo in cui Socrate cerca un algoritmo per distinguere la pietà dalla non-pietà. Aristotele cerca di formulare le leggi che governano la parte razionale della mente. Rene Descartes (1596-1650) propone la tesi del dualismo. Esiste una parte della mente (anima) che non segue le regole fisiche. Gli animali non possedendo questo dualismo possono essere considerati come delle macchine. Wilhelm Leibniz (1646-1716) propone la tesi del materialismo. Ogni cosa, quindi anche la mente, segue le leggi fisiche. Quindi è possibile costruire una macchina che riesce ad eseguire le operazioni mentali. Introduzione 13 Basi Filosofiche (428 BC - ) Francis Bacon (1561-1626) con il suo lavoro “Novum Organum” da vita al movimento degli empiricisti. Tutta la conoscenza (cioè tutto quello che si trova nella mente) proviene dai sensi. David Hume (1711-1776) nel suo lavoro “A Treatise of Human Nature ” propone il principio dell'induzione. Il principio dell'induzione indica la possibilità di definire delle regole generali dall'osservazione ripetuta di casi particolari. Bertrand Russell (1872-1970) introduce il positivismo logico. Tutta la conoscenza può essere caratterizzata da teorie logiche. L’acquisizione della conoscenza si basa su observation sentences che corrispondono a sensori di ingresso. Introduzione 14 Basi Matematiche (1800 - ) George Boole (1815-1864) introduce un linguaggio formale per fare inferenza logica. Gottlob Frege (1848-1925) definisce una logica che, al di là di alcune modifiche di notazione, è la logica del primo ordine usata in gran parte dei sistemi odierni per la rappresentazione della conoscenza. Introduzione 15 Basi Matematiche (1800 - ) Alfred Tarski (1902-1983) introduce una teoria che permette di mettere in relazione gli oggetti del mondo reale con gli oggetti di una rappresentazione logica. Kurt Gödel (1906-1978) prova il cosiddetto teorema dell'indecidibilità. Il teorema dell’indecidibilità afferma che esistono delle funzioni su interi che non possono essere rappresentate da algoritmi, cioè che non possono essere calcolate. Alan Turing (1912-1954) introduce la cosiddetta macchina di Turing e la tesi di Church-Turing. La tesi di Church-Turing afferma che una macchina di Turing è capace di rappresentare qualsiasi funzione computabile. Introduzione 16 Basi Psicologiche (1879 - ) Herman von Helmholz (1821-1894) e Wilhelm Wundt (18321920) applicano il metodo scientifico allo studio della visione umana. John Watson (1878-1958) e Edward Lee Thorndike (18741949) formano il movimento dei comportamentalisti. Le teorie comportamentaliste si basano solo sulla misura degli stimoli dati ad un animale e delle azioni da esso eseguite in risposta. I costrutti mentali come conoscenza, credenze, goal e passi di ragionamento sono rifiutati come non scientifici e frutto della psicologia popolare. Introduzione 17 Basi dell'Ingegneria dei Calcolatori (1940 - ) Nel 1940 in Inghilterra venne costruito dal gruppo di Alan Turing il primo computer moderno, Heath Robinson. Heath Robinson era basato su relé elettromagnetici e aveva lo scopo di decifrare i messaggi tedeschi. Quando i tedeschi usarono dei meccanismi di codifica più complicati i relé elettromagnetici del calcolatore non permisero una adeguata velocità di calcolo e fu sostituito da Colossus, basato sulla tecnologia dei tubi a vuoto. Nel 1941 in Germania venne costruito da Konrad Zuse il primo computer programmabile, Z-3. Tra il 1940 e il 1942 negli Stati Uniti venne realizzato il primo calcolatore elettronico, ABC. Nel 1945 viene realizzato per Z-3 il primo linguaggio di programmazione ad alto livello. Introduzione 18 Basi Linguistiche (1957 - ) Nel 1957 Noam Chomsky descrive la teoria dei modelli sintattici. I modelli sintattici permettono di spiegare come un bambino possa comprendere e generare delle frasi che non ha mai sentito. I modelli sintattici di Chomsky sono abbastanza formali da poter essere programmati. In seguito comunque è stato dimostrato che i problemi affrontati dalla linguistica sono ben più complessi di quelli che sembrano nel 1957. Un linguaggio è spesso ambiguo e spesso ha delle parti sottintese. Introduzione 19 Storia dell'Intelligenza Artificiale Warren McCulloch e Walter Pitts nel 1943 propongono un modello di neurone artificiale. Nel 1956 durante il workshop di Dartmouth John McCarthy conia per questi tipi di ricerca il nome di Intelligenza Artificiale. John McCarthy aveva convinto Marvin Minsky e Claude Shannon a organizzare a Dartmouth un workshop per riunire i ricercatori americani interessati alle teoria degli automi, alle reti neurali e allo studio dell'intelligenza. Allen Newell and Herbert Simon nel 1956 realizzano un programma di ragionamento, Logic Theorist. Logic Theorist era capace di risolvere un gran numero di teoremi matematici presenti nel libro Principia Matematica di Russell e Whitehead. In alcuni casi le soluzioni da esso presentate erano più corte di quelle presentate in letteratura. Introduzione 20 Storia dell'Intelligenza Artificiale Allen Newell and Herbert Simon nel 1956 realizzano un programma per la risoluzione di problemi, General Problem Solver. La caratteristica principale del General Problem Solver è quella di voler imitare i metodi di risoluzione di problemi usati dall'uomo. John McCarthy nel 1958 definisce il LISP. Nel 1963 Marvin Minsky incarica un gruppo di studenti di risolvere alcuni semplici problemi che sembravano richiedere intelligenza. Questo gruppo di studenti definì i cosiddetti Mondi giocattolo (Microworlds) tra cui il famoso Mondo dei Blocchi. Introduzione 21 Storia dell'Intelligenza Artificiale Nel 1969 Marvin Minsky e Seymour Papert nel loro libro, “Perceptrons”, mettono in luce i limiti delle reti neurali. Ad esempio, un percettrone con due ingressi non può essere addestrato a riconoscere quando i suoi ingressi sono diversi (XOR logico). Nello stesso anno, Arthur Bryson e Yu Chi Ho propongono l'algoritmo di apprendimento backpropagation. Questo algoritmo viene usato nelle reti neurali multi-strato e sarà riscoperto negli anni ottanta. Nel 1969 il gruppo di Bruce Buchanan e Edward Feigenbaum realizza il primo sistema esperto, DENDRAL. lo scopo di DENDRAL è quello di aiutare l'analisi di strutture molecolari. Nel 1976 lo stesso gruppo realizza MYCIN, un sistema esperto per la diagnosi di infezioni del sangue. MYCIN introduce il calcolo dell'incertezza per gestire l'attivazione delle regole. Introduzione 22 Storia dell'Intelligenza Artificiale Nel 1975 Marvin Minsky propone il frame come struttura per la rappresentazione della conoscenza. Nel 1981 le autorità giapponesi annunciano l'avvio del progetto per la quinta generazione dei computer. L'obiettivo è realizzare computer che eseguano Codice PROLOG allo stesso modo in cui i computer tradizionali eseguono il codice macchina. Nello stesso periodo sono sviluppati dei calcolatori (LISP Machine) con processori orientati all'esecuzione di programmi LISP. Nel 1986 David Rumelhalt e James McClelland pubblicano i due libri “Parallel Distributed Processing”. Nei due libri sono presentati risultati in vari campi applicativi della backpropagation, reinventata da almeno quattro gruppi di ricerca. Questi due libri riaccendono l'interesse sulle reti neurali. Introduzione 23 Storia dell'Intelligenza Artificiale I cosiddetti modelli “Hidden Markov” permettono ai metodi di riconoscimento del parlato e della scrittura di essere usati in sistemi commerciali. David Chapman ottiene una elegante sintesi dei programmi di pianificazione esistenti. L’applicabilità dei pianificatori passa dai mondi giocattolo allo scheduling del lavoro nelle fabbriche e delle missioni spaziali. Le cosiddette “Belief network” diventano la base per il ragionamento incerto e i sistemi esperti. Il formalismo delle belief network permette un efficiente ragionamento sulla combinazione dei fattori di certezza. Allen Newell, John Laird e Paul Rosenbloom sviluppano SOAR. SOAR è una completa architettura ad agenti che utilizza le varie metodologie dell'IA per lo sviluppo di sistemi intelligenti. Introduzione 24 Campi di Applicazione Analisi finanziaria Automazione d’ufficio Automazione industriale Basi di dati Diagnosi (medica e industriale) Giochi Robotica Sistemi di progettazione Traduzione automatica Introduzione 25 Sistemi Intelligenti Quando è che una macchina si può dire intelligente? Turing Test (http://www.loebner.net/Prizef/TuringArticle.html) Elaborazione del linguaggio naturale Rappresentazione della conoscenza Ragionamento automatico Apprendimento Total Turing Test Visione Robotica Introduzione 26 Sistemi Intelligenti Quali sono le componenti fondamentali di una macchina intelligente? Ingresso Stato Interno Comprensione del linguaggio naturale Uscita Generazione del linguaggio naturale Rappresentazione della conoscenza Ragionamento automatico Apprendimento Visione (percezione sensoriale) Introduzione Generazione dei movimenti 27 Tecniche di Intelligenza Artificiale Le tecniche di IA manipolano conoscenza. La conoscenza ha alcune caratteristiche poco desiderabili: È voluminosa È difficile da caratterizzare con precisione È in continuo cambiamento Le tecniche di IA sono metodi che sfruttano la conoscenza rappresentandola in modo che: consenta di gestire/generare le generalizzazioni il formalismo di rappresentazione possa essere compreso da coloro che la devono fornire possa essere facilmente modificabile possa essere utilizzata anche quando non è del tutto completa e precisa Introduzione 28