Title: Intelligenza%20Artificiale
1Intelligenza Artificiale
- Maria Teresa PAZIENZA
- a.a. 2008-09
2Corsi e crediti
- Corso di IA da 10 crediti per i nuovi studenti
dellindirizzo Sistemi Intelligenti - Corso di IA da 5 crediti per gli studenti
dellindirizzo Sistemi Intelligenti che hanno già
maturato 5 crediti - Corso di IA per gli studenti dellindirizzo Ing.
Soft.
3Programma
- Il corso sarà articolato su 3 aree
Elab. del Ling.Natur.
Gestione della conoscenza
Tecnologie di IA
4Sito
- Sul sito di Didattica Web tutte le informazioni
su - Programma
- Progetto
- Ricevimento
- Esami (date, iscrizioni, risultati)
- Tesi
- Varie
5Progetto
- Potrà consistere
- nella realizzazione di un prototipo informatico
progettato e realizzato secondo modalità
introdotte nel corso delle lezioni o,
equivalentemente, - nella stesura di una tesina di approfondimento di
temi inerenti allIA ed affrontati soltanto
limitatamente nel corso delle lezioni o,
equivalentemente, - nellapprofondimento di temi trattati a lezione
con la implementazione di un test case. - Qualora se ne diano i presupposti è possibile che
la componente progettuale dellesame sia
integrata in progetti per altri corsi
6Materiale didattico
- Il materiale didattico verrà segnalato e
distribuito di volta in volta in relazione ai
temi specifici affrontati nel corso delle lezioni
(dispense, articoli, slides, monografie e saggi,
eventuali collegamenti a risorse digitali
disponibili in rete, ...). - Il materiale e le dispense prodotte saranno
contestualmente segnalati e pubblicati nel sito
del corso su Didattica Web
7Esami
- Sono previste prove desame diversificate per le
diverse tipologie di corso - Per partecipare ad una prova desame è
obbligatorio prenotarsi almeno 24 ore prima
dellesame. - La partecipazione ad una prova scritta non
preclude la partecipazione a prove successive
(nel caso si rifiuti la valutazione conseguita)
previa nuova registrazione.
8Intelligenza Artificiale
- Lobiettivo è risolvere il problema rappresentato
da - Qual è
- il corretto livello di astrazione della mente
umana - per costruire un modello mentale
- che debba successivamente guidare le azioni di
una macchina intelligente?
9Intelligenza Artificiale
- NellIA ci si occupa di
- Costruire macchine intelligenti che operino
come/meglio degli umani - Formalizzare la conoscenza ed i meccanismi di
ragionamento in ogni settore di interesse - Usare modelli computazionali per capire/definire
il comportamento di umani ed agenti intelligenti - Rendere facile ed efficace linterazione
uomo/macchina
10Intelligenza Artificiale
- Materia in forte evoluzione dare una definizione
che delimiti rigorosamente i campi di interesse
rischierebbe di escludere a priori sviluppi
futuri che già si intravedono - LIA non è una lista di argomenti e metodologie
è piuttosto una attività complessa legata alla
comprensione di comportamenti intelligenti ed
alla loro implementazione in sistemi
intelligenti.
11Intelligenza Artificiale
- LIA è contemporaneamente scienza e tecnica,
disciplina di frontiera in cui sincontrano
diversi domini del sapere logica, informatica,
psicologia, neuroscienze, filosofia - Attiene a tutti i campi dellinformazione e trova
applicazione in tutti i settori
12Intelligenza Artificiale
- LIA si manifesta con un duplice profilo
- disciplina ingegneristica (costruire macchine
capaci di svolgere compiti intellettuali
integrando componenti diverse) - disciplina psicologica (costruire macchine capaci
di esprimere le caratteristiche essenziali
dellattività cognitiva umana spiegando i
rapporti tra pensiero e fisicità delluomo)
13Intelligenza Artificiale
- La formalizzazione logica dei problemi è
fondamentale alla loro soluzione - Le metodologie risolutive possono richiedere
tecnologie di varia tipologia - Ove la formalizzazione completa non sia
possibile, si ricorre a soluzioni parziali - Lelaborazione del linguaggio naturale è un
problema tipico dellIA - Gestire la conoscenza (del mondo, di dominio,
dellapplicazione,) è un problema tipico dellIA
14Elaborazione del linguaggio naturale
15Il ruolo della conoscenza nei sistemi informatici
- Le conoscenze servono per
- interpretare la realtà capire che cosa è
successo (ad es., ipotizzare le cause di un
evento che si è verificato) - prevedere levoluzione della realtà prevedere
con approssimazione accettabile quali modifiche
si potranno verificare nel futuro - agire in modo razionale modificando la realtà
costruire piani dazione per raggiungere
determinati obiettivi.
16Learning to Reason
Reasoning
Task
- interarazione con il mondo (World)
- per knowledge representation si intende
- - ciò che si è scelto per facilitare il
processo di inferenza - - ciò che si è imparato a seguito
dellinterazione con il mondo - la prestazione viene misurata rispetto al mondo
e per uno specifico task di ragionamento
Page 16
17Conoscenza un problema trasversale
- La rappresentazione (e gestione) della conoscenza
è un problema di interesse per lIA e non solo. - E strettamente collegato alla costruzione di
sistemi software una parte rilevante
dellIngegneria del Software (SE) attiene a
tematiche di rappresentazione della conoscenza
18IA e SE
- la molteplicità sia dei proprietari che degli
sviluppatori di software, - il poter aggiungere nuove caratteristiche a
servizi già esistenti, - la eterogeneità e complessità dei prodotti
- presuppongono che lo sviluppo del software sia un
processo basato su una grande quantità di
conoscenza ed una comunicazione intensa tra le
entità coinvolte
19Sistemi intelligenti (1)
- Agire in ambienti sconosciuti od ostili (robot in
una situazione ignota, agenti/softbot nel web) - Gestire grandi quantità di conoscenza
descrittiva del mondo e dellapplicazione, con
lobiettivo di migliorare le prestazioni nella
risoluzione di un problema, acquisire ulteriore
conoscenza per collaborare con altre entità
(umani, agenti), gestire informazioni non
strutturate come nel web
20Sistemi intelligenti (2)
- Dialogare con altre entità per migliorare
linterazione e lacquisizione di conoscenza - Capire i sistemi con cui si interagisce per
meglio integrare le componenti, facilitare
linterazione, regolare laccesso alle risorse
21Sistemi intelligenti (integrazione)
- I sistemi intelligenti non agiscono in maniera
isolata, piuttosto costituiscono componenti
importanti in sistemi più complessi a supporto di
una maggiore capacità, flessibilità e
cooperazione del sistema nel suo insieme. Ciò
richiede lintegrazione di - componenti di reasoning in sistemi tradizionali
- conoscenza in basi di dati
- description logics in sistemi object oriented
22Sistemi intelligenti (coordinazione di più agenti
umani/artificiali)
- Per
- Comprensione/gestione del dialogo
- Costruzione di assistenti intelligenti (capaci
di capire lutente) - Supporto al lavoro di gruppo e/o collaborativo
- Gestione networks
23Sistemi intelligenti (coordinazione di più agenti
umani/artificiali)
- Richiede
- Comprensione del linguaggio naturale scritto e
parlato - Generazione del linguaggio naturale
- Gestione delle ambiguità grammaticali e
semantiche - Combinazione di tecniche di nlp con altre
tecnologie per realizzare interfacce multimediali
24Sistemi intelligenti (acquisizione di conoscenza
da più agenti)
- Richiede
- Capacità di collezionare, codificare,
rappresentare conoscenza - Integrazione di metodologie per la
rappresentazione di conoscenze differenti - Gestione dellorganizzazione concettuale della
conoscenza in ontologie e la loro integrazione - Gestione efficace della strutturazione,
indicizzazione, ricerca di grandi
quantità/risorse di conoscenza - Ragionare su domini di conoscenza diversi
- Applicare la conoscenza del senso comune
25SWESE 2006
- The advantages of Semantic Web Technologies in
software engineering include reusability and
extensibility of data models, improvements in
data quality, and discovery and automated
execution of workflows - The Semantic Web can serve as a platform on which
domain models can be created, shared and reused
26SWESE 2007
- The advent of the World Wide Web has led many
corporations to web-enable their business
applications and to the adoption of web service
standards in middleware platforms. - Marking a turning point in the evolution of the
Web, the Semantic Web is expected to provide more
benefits to software engineering. - To bring together languages and tools, such as
the Unified Modelling Language (UML), developed
for Software Engineering, with Semantic Web
languages such as RDF and OWL.
27Topics of interest include
- Tools developed or being developed for software
engineering using SW languages - Integration or application development projects
combining Software Engineering techniques and
Semantic Web tools or languages - Lessons learned in Automatic Software Engineering
or KBSE applicable to SW based SE - Visions for SW driven software modernization
- Integration of UML, OO programming languages and
Semantic Web languages - Software specification and Semantic Web languages
- ..
28Topics of interest include (2)
-
- Ontologies for software engineering
- Component discovery and ontologies
- Feature modelling and ontologies
- Ontology reasoning for software engineering
- Semantic annotations in software engineering
- Ontology-Driven Architecture How to introduce
Semantic Web technology into mainstream
development processes - Ontologies for requirements, software
engineering, and/or software evolution - Semantic-based intelligent assistance tools for
software developers
29Web focus
- I sistemi software sono sempre più alimentati dal
web - Devono quindi gestire/interagire con dati di
sorgenti eterogenee che possono essere
sconosciute in fase di sviluppo del software. - Per la risoluzione di questo problema gli
ingegneri del software cercano tecnologie che li
aiutino nella gestione della eterogeneità anche
runtime.
30Semantic Web in Soft. Engineering
- Le tecnologie del Semantic Web possono migliorare
lingegneria del software (da MDA a ODA) per
aumentare la scalabilità e composizionalità delle
componenti - supportando la rappresentazione non ambigua della
terminologia di dominio - permettendo il controllo automatico della
consistenza e validazione di regole invarianti,
precondizioni e post-condizioni - supportando la mediazione e trasformazione della
terminologia basata su conoscenza
31Semantic Web in Soft. Engineering
- Improvement
- si ottiene, si supporta una aumentata scalabilità
e compatibilità dei componenti - Problema
- difficoltà nella costruzione e manutenzione di
ontologie di metadati
32Semantic Web in Soft. Engineering
- Come
- classificatore per raggruppare tool e tecniche
correlate per modellare rigorosamente la
semantica durante le fasi di specificazione e
disegno del ciclo di vita del software - meccanismo per (rigorosamente) descrivere,
identificare, scoprire e condividere artefatti
allinterno dei sistemi, sottosistemi e team di
disegno sia in fase di disegno che runtime
33Semantic Web in Soft. Engineering (2)
- Il Semantic Web può essere visto come un set di
corpora formalizzati di contenuti interrelati,
riusabili e che possono essere ulteriormente
classificati come - passivi, dati in forma di
- documenti e dati piatti HTML, XML,..
- documenti e dati generati dinamicamente via JSP,
PHP,.. - metadati RDF, OWL
- media, pictures video, music,..
- databases
34Semantic Web in Soft. Engineering (3)
- Il Semantic Web può essere visto come un set di
corpora formalizzati di contenuti interrelati,
riusabili e che possono essere ulteriormente
classificati come - attivi, funzionalità presentate come
- Web services, semantic web services
- componenti funzionali referenziati come frammenti
con contenuti passivi (Java script, Java applets) - Sia gli attivi che i passivi possono essere
descritti usando tecniche ontologiche
35Intelligenza Artificiale (IA)
- I calcolatori generali (general purpose) hanno la
caratteristica di essere macchine simboliche,
ovvero sono - (1) macchine capaci di manipolare strutture di
simboli da porre in corrispondenza ad entità
diverse - parole di una lingua naturale,
- espressioni matematiche,
- posizioni del gioco degli scacchi,
- oggetti da riconoscere e classificare,
36Intelligenza Artificiale (IA)
- I calcolatori generali (general purpose) sono
- (2) macchine capaci di utilizzare listruzione di
salto condizionato che consente di cambiare
lordine di esecuzione delle istruzioni. - La macchina rivela una capacità discriminativa,
ovvero seleziona/sceglie la sequenza di
istruzioni da eseguire rivelando un atteggiamento
intelligente.
37Intelligenza Artificiale (IA)
- Inizialmente
- attenzione allanalisi di problemi relativi ad
ambiti ben delimitati, per risolvere i quali
bastano regole esplicite per lelaborazione
simbolica e poca conoscenza specializzata. - Successivamente
- da elaborazione simbolica a conoscenza tacita, ad
abilità senso-motorie, alla capacità di
adattamento allambiente naturale o alle
interazioni sociali con altri agenti naturali o
artificiali.
38Intelligenza Artificiale (IA)
- Inizialmente
- convinzione che compito principale dellIA fosse
lo studio delle strategie di soluzione di
problemi efficacemente selettive, o euristiche. - La programmazione euristica, analogamente agli
esseri umani, esplora solo una parte dei percorsi
che, in base alle informazioni possedute,
potrebbero portare ad una soluzione accettabile
del problema dato e che soddisfino alcuni
requisiti irrinunciabili.
39Intelligenza Artificiale (IA)
- Tipicamente fondati sulla programmazione
euristica sono i sistemi basati su conoscenza (e
tra questi i sistemi esperti) tutti basati su
una base di conoscenza che raccoglie e
sistematizza conoscenze e tecniche di
ragionamento euristico. - Su una base di conoscenza opera un motore
inferenziale che risolve i problemi posti, anche
simulando tecniche di ragionamento euristico. - I sistemi basati su conoscenza vengono
considerati uno dei prodotti principali della
Intelligenza Artificiale simbolica.
40Intelligenza Artificiale (IA)
- I sistemi basati su conoscenza non permettono di
affrontare adeguatamente alcuni aspetti - Conoscenza tacita il comportamento intelligente
che si ispira al saper fare, ovvero ad una
abilità difficile da descrivere con conoscenze
dichiarative e regole esplicite di manipolazione
simbolica - Azioni in tempo reale capacità di reazione
adeguate in tempi utili per il problema - Robustezza capacità di lavorare anche in
situazioni diverse da quelle previste dai
progettisti
41Intelligenza Artificiale (IA)
- Il connessionismo ha affrontato con un qualche
successo alcuni problemi di conoscenza tacita e
robustezza. - Il modello di un sistema di IA, in tal caso,
assomiglia più ad un robot immerso in un ambiente
non predeterminato dal progettista ed in grado di
mostrare comportamenti adattivi in tempo reale,
che ad un calcolatore in grado di sostenere una
conversazione o di giocare una partita a scacchi. - Il connessionismo rivela incapacità di simulare
ampie capacità di ragionamento e di affrontare i
problemi dellIA distribuita e dei sistemi
multiagente (ogni agente deve comunicare con
altri agenti, formarsi aspettative sui risultati
delle interazioni, ragionare su obiettivi e
capacità di altri agenti, dimensione sociale
dellIA).
42Intelligenza Artificiale (IA)
- La costruzione di programmi simulativi che siano
in grado di fornire indicazioni (spiegare) su
certe capacità cognitive è assimilabile al
processo di costruzione e revisione dei modelli
scientifici. - Quando il programma gira sul calcolatore,
diventa possibile individuarne le lacune,
suggerire modifiche per migliorarlo trovando
nelle sue prestazioni conferme o smentite della
teoria generale. - Es. General Problem Solver che dimostrava di
essere una simulazione del protocollo verbale di
un soggetto umano alle prese con la dimostrazione
di un teorema di logica proposizionale.
43Intelligenza Artificiale (IA) in pratica
- Dal punto di vista ingegneristico
- Le applicazioni dellIA sono valutate per le
loro capacità e prestazioni, indipendentemente
dai metodi utilizzati. - Idea di base costruire macchine che non
necessariamente simulino, riproducendolo, il
comportamento del cervello umano, ma che siano in
grado di emularlo selettivamente nel risultato
finale di certe operazioni
44Architettura di base di un sistema di IAambiente
- Un sistema IA non è un insieme di istruzioni
immutabili che rappresentano la soluzione di un
problema, bensì un ambiente in cui rappresentare,
utilizzare e modificare una base di conoscenza. - La soluzione viene costruita dinamicamente a
fronte di un certo numero di possibilità.
45Architettura di base di un sistema di IAambiente
- Un sistema IA deve esprimere due tipi distinti di
conoscenza - una base di conoscenza (che raccoglie la
conoscenza di dominio e del problema attraverso
asserzioni e fatti da un lato e relazioni e
regole dallaltro) - un motore inferenziale che utilizza la base di
conoscenza per giungere alla soluzione e fornire
spiegazioni. Scelta dinamica di quale conoscenza
utilizzare nel processo risolutivo. - forward chaining versus backward chaining.
46Logica
- La logica è sicuramente uno degli strumenti più
antichi, assestati e rigorosi utilizzati
dalluomo per formalizzare e spiegare il proprio
ragionamento. - La logica è semanticamente ben definita,
altamente dichiarativa, ed ha un apparato
deduttivo generale. - La logica classica è utilizzata in IA per
rappresentare la conoscenza su un problema (anche
se con alcune limitazioni). La BdC diventa una
collezione di asserzioni della logica dei
predicati del primo ordine le regole di
inferenza permettono di dedurre nuove asserzioni
(teoremi) non esplicitamente contenute nella BdC
47Programmazione logica e Prolog
- La programmazione logica nasce negli anni 70
- Kowalsky ad Edimburgo definì i fondamenti teorici
della progr. logica ed uninterpretazione
procedurale delle clausole della logica che
permette di ridurre il processo di dimostrazione
di un teorema al tradizionale processo di
computazione dei linguaggi di programmazione. - Colmeraurer a Marsiglia nel 72 realizzò un
interprete per il linguaggio Prolog.
48Apprendimento automatico
- Un sistema non potrà dirsi intelligente se
manca della proprietà di accrescere le proprie
conoscenze e migliorare le proprie abilità
(apprendimento). - Per raggiungere questo obiettivo bisogna dotare
le macchine simboliche di capacità di
ragionamento induttivo oltre che deduttivo.
49Apprendimento automatico
- Il ragionamento induttivo procede
- da asserzioni singolari riguardanti particolari
fatti o fenomeni (esempi) - ad asserzioni universali esprimibili mediante
ipotesi o teorie che spieghino i fatti dati e
siano in grado di predirne di nuovi. - Linferenza deduttiva preserva la verità (nel
senso della correttezza logica) - Linferenza induttiva non garantisce ciò e può
tendere ad uneccessiva generalizzazione e a
produrre errori.
50Limiti, problemi aperti e
- Lapprendimento e la rappresentazione del senso
comune sono ben lontani dallessere una soluzione
completa. - Limitata crescita incrementale della conoscenza e
costi elevati nel produrla - Alto costo di manutenzione dei sistemi
intelligenti - Sistemi inferiori alle aspettative iniziali
51 aspettative
- Supporto allaccesso di informazioni in grandi
patrimoni conoscitivi (archivi aziendali,
informazioni on-line, repositories di dominio,)
che richiede la capacità di analisi e gestione di
dati eterogenei e ridondanti. - Strumenti per lestrazione di conoscenza ad ampio
spettro che utilizzino tecniche di apprendimento
automatico. - Capacità di integrare, allinterno di sistemi
informativi generali, moduli che producano task
intelligenti - Navigazione intelligente sul web
52IA debole versus IA forte
- LIA debole si propone di costruire (reale
costruibilità) macchine che si comportino come
se fossero intelligenti, ossia macchine capaci
di risolvere tutti i problemi che lintelligenza
umana sa risolvere. - LIA forte afferma che la macchina che agisce in
modo intelligente deve avere una intelligenza
cosciente, una mente cosciente indistinguibile
dalla mente umana lIA forte vuol dare risposta
al problema astratto di che cosa sia il pensare
per una macchina, anche se poi non riesce a
costruire macchine intelligenti.
53-
- Le simulazioni al calcolatore dei processi
cerebrali forniscono modelli degli aspetti
formali di questi processi, ma la simulazione non
va confusa con la riproduzione. - Il modello computazionale dei processi mentali
non è più reale di quello di qualsiasi altro
fenomeno naturale. Si può immaginare una
simulazione al calcolatore dellossidazione degli
idrocarburi in un motore dautomobile, o dei
processi di digestione in uno stomaco alle prese
con una pizza. Nel caso del cervello la
simulazione non è più reale che nel caso
dellautomobile e dello stomaco. - La simulazione di un processo cognitivo non
produce gli stessi effetti della neurobiologia di
quel processo cognitivo. - J.Searle, La mente è un programma?, 1990
54Bibliografia (per cominciare)
- J. McCarty, M.L. Minsky, N. Rochester, C.E.
Shannon A proposal for the Dartmouth Summer
Research Project on Artificial Intelligence,
1955, - http//www-formal.stanford.edu/jmc/history/dartmo
uth/dartmouth.html - R. Cordeschi, G. Tamburrini LIntelligenza
Artificiale la storia e le idee, 2001, - http//www3.humnet.unipi.it/epistemologia/gtamb/i
a.pdf - H. Uskoreit Language Technology, A First
Overview http//www.dfki.de/hansu/LT.pdf - D. Gelernter Artificial Intelligence is Lost in
the Woods http//www.technologyreview.com/printer
_friendly_article.aspx?id18867 - M. Benasayag G. Schmit L'epoca delle passioni
tristi Feltrinelli Editore, 2004, ISBN
8807103672, 9788807103674
55Bibliografia (per cominciare)
- R. Dipert Artifacts. Art works and Agency, 1993,
Philadelphia Temple University Press - J. Searle Is the brain a digital computer?,
Proceedings of The American Philosophical
Association, 64,3 (1990), pagg.21-38. - J. Searle The construction of social reality,
1995, New York Thje Free Press - J. Doyle, T. Dean Strategic Directions in
Artificial Intelligence, ACM Computing Surveys,
28 (4), Dec. 1996 -
56Argomenti trattati in questa lezione
- Ruolo dellIA nellICT
- Elaborazione del linguaggio naturale come punto
di riferimento per lIA - Gestione della conoscenza come punto di
riferimento per lIA - Ruolo dellIA nella Ingegneria del Software