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()=(Vf2Vf3) ….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)