Intelligenza Artificiale: applicazioni Prof. Paola Velardi Programma • 1.Introduzione alla disciplina: obiettivi dell’IA, aree dell’IA: rappresentazione della conoscenza, ragionamento automatico, apprendimento, pianificazione (1 lezione) • 2. Apprendimento automatico (9-10 lezioni) – 2.1 Apprendimento da esempi: » Alberi di decisione » Metodi statistici » Metodi algebrici (reti neurali, SVM) – 2.3 Apprendimento con rinforzo • 3. Intelligent Information Retrieval (9-10 lezioni) – Modelli di IR – Web IR – Advanced IR: Information Extraction, Query Answering – Alcuni interventi specifici di esperti. Laboratorio • Un sistema di spamming della posta elettronica • ?? • Esame: una tesina fra un insieme di argomenti proposti+prove di laboratorio Testi consigliati • Lucidi delle lezioni (scaricabili dal sito del corso) + alcuni articoli • Per la parte Machine learning: MACHINE LEARNING , Tom Mitchell, Mc Graw Hill • Per la parte Information Retrieval: MODERN INFORMATION RETRIEVAL, Baeza-Yates and Ribeiro-Neto, Addison Wesley Cos’è l’Intelligenza Artificiale? • Quattro categorie di definizioni: • • • • Sistemi che pensano come un essere umano Sistemi che pensano razionalmente Sistemi che agiscono come un essere umano Sistemi che agiscono razionalmente Pensare come un essere umano: l’approccio cognitivo • L’attenzione è sullo studio di modelli computazionali e tecniche sperimentali che consentano di costruire e verificare le teorie sulle capacità cognitive dell’uomo. • Esempio: apprendimento del linguaggio, memoria, ecc. • Discipline correlate: psicologia, scienze cognitive, psicolinguistica, neurologia Agire come un essere umano: il test di Turing Turing nel 1950 propose un test operativo dell’agire intelligente. • Un elaboratore “intelligente” dovrebbe possedere le seguenti capacità: • elaborazione del linguaggio naturale • rappresentazione della conoscenza • ragionamento automatico • apprendimento automatico • visione automatica • robotica, o movimento automatico • Discipline correlate: tutte le sotto-aree dell’Intelligenza Artificiale, tutte le discipline correlate a tali sotto-aree: linguistica, elaborazione di segnali, statistica, logica, cognitivismo, psicologia, matematica, filosofia, ingegneria degli elaboratori Un esempio: Eliza • Provate http://www-ai.ijs.si/eliza/eliza.html • Ex: D: Are you an artificial intelligent expert? R: Oh, I am an artificial intelligent expert! D: Did you ever teached an artificial intellignce course? R: Oh, I ever teached an artificial intelligence course! D: can you explain me the backword propagation algorithm? R: Why do you ask? Pensare razionalmente: l’approccio logico • Aristotele fu il primo pensatore che tentò di codificare le leggi del pensiero, con i suoi famosi sillogismi. • La logica è la disciplina che studia le leggi del pensiero. • Secondo questo approccio, è possibile formulare problemi tipici del ragionare umano in notazione logica, e trovare una soluzione a questi problemi. • Discipline correlate: logica, matematica, statistica Agire razionalmente: agenti intelligenti • Agire razionalmente significa perseguire i propri obbiettivi, a partire da una certa percezione della realtà circostante, o credenza (belief). • Un agente è semplicemente un’entità che percepisce ed agisce di conseguenza. • Questo approccio è in un certo senso più realistico dei precedenti, perché lo standard di razionalità è più chiaramente definito e circoscritto. Agenti Intelligenti • Un agente si può considerare composto da: • organi sensori per percepire l'ambiente • organi attuatori per agire in quell'ambiente • una "razionalità" che lo guida nelle azioni • Un agente razionale è quello che fa la "cosa giusta". Agenti Intelligenti • La cosa giusta, o razionale, dipende da: • la misura di prestazione che definisce il grado di successo • tutto ciò che l'agente ha percepito fin'ora (sequenza di percezione) • ciò che l'agente conosce circa l'ambiente • le azioni che l'agente può eseguire • Per ogni sequenza di percezioni, l'agente dovrebbe compire azioni che massimizzino la misura di prestazione, sulla base della descrizione della realtà fornita dalla sequenza di percezioni, e sulla base delle sue conoscenze predefinite. Tipi di Agenti Esempi di Agenti e loro descrizione Percezioni Azioni Obiettivi Ambiente Sistemi di Sintomi, responsi, Domande, test, Paziente in salute, Paziente, ospedale diagnosi medica risposte del trattamenti minimizzazione paziente costi Analisi immagini Pixel di intensità Stampare una Correggere la Immagini di un satellitari e colore variabile classificazione classificazione satellite orbitante della scena Robot che Pixel di intensità Raccogliere parti Posizionare parti Nastro raccoglie parti variabile ed ordinarle in nei contenitori trasportatore con contenitori corretti parti Controllore di Letture di Aprire e chiudere Massimizzare Raffineria raffineria temperatura e valvole, regolare purezza prodotto pressione temperatura e sicurezza Tutore interattivo Parole digitate Stampare esercizi, Massimizzare Aula d'Inglese correzioni, punteggi degli suggerimenti studenti nei test La storia dell’Intelligenza Artificiale • La nascita della disciplina (1943-1956) • Claude Shannon e Alan Turing realizzarono i primi programmi per il gioco degli scacchi. • Marvin Minsky e Dean Edmonds realizzarono il primo computer neurale, nel 1951. • Ma la vera nascita dell’area fu opera di Allen Newell e Herbert Simon, che costruirono Logic Theorist, il primo programma capace di “ragionare”. • Il programma era in grado di costruire la prova di molti dei teoremi contenuti nel secondo capitolo dei Principia Matematica di Russell. • Il nome della disciplina, Intelligenza Artificiale, fu proposto da John McCarthy nel primo workshop, della durata di due mesi, tenutosi al Dartmouth College nel 1956. • Questo workshop non portò a importanti scoperte, ma mise insieme le persone che, per i successivi 20 anni, con i loro studenti, hanno contribuito al progresso del settore. I grandi entusiasmi dei primi anni (19521969) • Prevale l’ipotesi “forte” dell’IA: costruire programmi che pensano come esseri umani. • Dati i primitivi strumenti di elaborazione e programmazione di quei tempi, i primi programmi di IA furono considerati un successo. • Newell e Simon costruiscono General Problem Solver, o GPS. GPS risolveva puzzles. • Nataniel Rochester costruì Geometry Theorem Prover • John McCarthy creò il linguaggio Lisp, che divenne il linguaggio dominante dell’IA. • Marvin Minsky, dopo i primi entusiasmi, si orientò verso la creazione di programmi che, seppure in ambiti limitati (MicroWorlds) funzionassero effettivamente. • Furono sviluppati sotto la sua guida i primi programmi in grado di risolvere problemi di analogia nell’ambito di semplici figure geometriche, o di manipolare tali figure organizzandole in blocchi sovrapposti. Una dose di realismo (1966-1974) • I primi programmi di IA partirono con obbiettivi ambiziosi e si scontrarono ben presto con problemi di complessità: • Limitazione della conoscenza a priori, o knowledge-base • Intrattabilità computazionale di molti problemi • Debolezza dei modelli teorici e dei meccanismi di rappresentazione • La conoscenza è potere: i primi sistemi knowledge-intensive • DENDRAL (1969) deduceva strutture molecolari sulla base di informazioni fornite da uno spettrometro di massa. DENDRAL doveva il suo successo all’alto numero di regole “ad-hoc” (euristiche) che gli specialisti avevano codificato. • Feigenbaumm ed altri iniziarono il cosìdetto Heuristic Programming Project. • Il suo gruppo diede inizio all’area dei Sistemi Esperti. I primi Sistemi Esperti: • MYCIN diagnosticava malattie infettive del sangue. MYCIN utilizza anche tecniche di ragionamento in ambito incerto, associando alle sue decisioni dei fattori di certezza. • SHRDLU sviluppò uno dei primi programmi per la comprensione del linguaggio naturale. • LUNAR consentiva a geologi di porre domande circa i campioni di rocce riportati dalla missione Apollo. IA diventa un’industria (1980-1988) • In questo periodo, soprattutto per via del successo ottenuto in alcune specifiche aree dai Sistemi Esperti, partono le prime applicazioni industriali dell’ IA. • Nel 1981, il governo giapponese annuncia il progetto “Fifth Generation”, il cui obbiettivo era di costruire architetture orientate ad applicazioni di Intelligenza Artificiale. • La Xerox, la Texas Instruments, e la Symbolics costruiscono workstations orientate allo sviluppo di applicazioni in Lisp. Eventi recenti • In epoca recente, da un lato, il settore può beneficiare di modelli teorici più stabili ed accurati, dall’altro, l’attenzione è rivolta alla possibilità di costruire sistemi funzionanti basati su teorie esistenti, piuttosto che inventare nuove teorie. • L’uso di modelli probabilistici (es. Hidden Markov Model) è diventato dominante. • Applicazioni orientate alla manipolazione di informazioni (immagini e testi) IST (Information Society Technology) Le sotto-aree dell’Intelligenza Artificiale Aree metodologiche dell’Intelligenza Artificiale: Rappresentazione della Conoscenza Ragionamento Automatico e Ricerca di soluzioni Pianificazione Apprendimento Automatico Aree Applicative Sistemi Esperti Robotica Elaborazione del Linguaggio naturale Elaborazione di Immagini 1.Rappresentazione della conoscenza • Rappresentare un problema e le condizioni al contorno: • Rappresentazione della conoscenza • Progettazione di una base di conoscenza Esempi • Esempio 1: il rompicapo dell'8 2 4 Rappresentazione: 6 Disposizione delle tessere sui 9 quadrati: Pos(T4,(1,2)) 8 3 Posizione "obiettivo" delle tessere: Fin(T4, (2,3)) 7 1 5 Euristiche per scegliere la mossa successiva: Scegli la mossa che minimizza la distanza delle tessere dalla posizione obiettivo • Esempio 2: diagnosi di malattie infettive Rappresentazione: Test diagnostici: Febbre(valore),Emocromo(valori),facies(valori)… Euristiche per arrivare ad una diagnosi IF febbre()>VF1 facies()=(Vf2Vf3) ….THENask(Emocromo) 2.Ragionamento automatico Ragionare sui dati a disposizione: 2.1 Risolvere un problema mediante algoritmi di ricerca nello spazio delle soluzioni Esempio del rompicapo dell'8: il problema può essere rappresentato mediante un albero, e l'algoritmo di risoluzione è una algoritmo di ricerca su grafo (es. breadth-first, depth-first, A*..) (corsi di Algoritmi) 6 2 2. Ragionamento automatico 2.2 Risolvere un problema con il ragionamento logico Esempio del sistema diagnostico: Il problema può essere rappresentato mediante fatti e regole nella logica del primo ordine (FOL). La soluzione viene derivata usando le regole di inferenza della FOL (modus ponens, riduzione, unificazione…) (corso di Logica matematica) 3. Pianificazione • Agire razionalmente: • pianificazione e risoluzione di problemi • Elementi di base : – Rappresentazione di stati: usualmente, uno stato è una semplice struttura di dati, ad esempio la posizione di un robot in un ambiente. – Rappresentazione di azioni: le azioni sono descritte da programmi che generano descrizioni di stati successivi. – Rappresentazione delle percezioni: le azioni sono conseguenza degli stati e di stimoli dell’ambiente circostante – Rappresentazione degli obiettivi: usualmente, nella forma di test-obiettivo o funzioni euristiche. – Rappresentazione dei piani: una soluzione, o piano risolutorio, è una sequenza di azioni, come: "prendi dieci bulloni e mettili nel carrello". Si Pk/Aij Sj Esempio: Shakey’s world I1 Stanza 1 Stanza 2 I2 Stanza 3 I3 b1 I4 Stanza 4 b3 b2 Corridoio Esempio: il mondo di Shakey • Azioni: Vai(y), Spingi(b,x,y), Sali(b),Giù(b), Accendi(luce), Spegni(luce) • Rapp. Stati: A(Shakey,x) • Rapp. Percezioni: Test posizionali,sensori • Rapp. Obiettivi: Test posizionali, o sensori del buio/luce • Rapp. Piani:gerarchia di alberi Ad esempio, per accendere una luce, Shakey deve spostare una scatola vicino alla luce, quindi salirci su, quindi girare l'interruttore. Un piano è quindi scomposto in sottopiani, ognuno dei quali viene eseguito mediante una sequenza di azioni. Un piano Accendi(Luce) A(Sh,X) In(X,Room) fail In(box, Room) ? A(box,Y) Spingi(box,Y ,Luce) ........... Sali(box) T est(luce) END Accendi(Luce) 4. Altre aree della IA • Metodologiche: Apprendimento Automatico (circa metà del corso) • Applicative (generali): – Comprensione dei Testi (comunicare) – Comprensione delle Immagini (percepire) – Robotica (agire) In questo corso (seconda metà): Intelligent Information Retrieval (comprensione dei testi, rappresentazione conoscenza, apprendimento automatico + metodi statistici)