1IntroduzioneSBC - Università degli Studi di Roma "Tor Vergata"

Sistemi basati su conoscenza
Prof. M.T. PAZIENZA
a.a. 2005-2006
Struttura del corso
Lezioni
Esercitazioni
Approfondimenti tematici
Test di autovalutazione
Esame finale (2 appelli a fine corso)
Syllabus (argomenti e struttura delcorso)
• Sistemi basati su conoscenza: rappresentazione e
ragionamento
• Agenti intelligenti: autonomia, struttura,
interazione con l’ambiente
• Agenti che ragionano: ragionamento,
rappresentazione e logica
• Programmazione logica: Prolog
• Basi di conoscenza: rappresentazione formale,
relazioni di dominio, ontologie, inferenze
Syllabus (2)
• Semantic Web, Ontologie, RDF, OWL
• Sistemi di ragionamento logico
• Linguaggio naturale
******************************************************
I° test di autovalutazione: metodi di ricerca
II° test di autovalutazione: esercizi di progr. Prolog
III° test di autovalutazione: proget. basi di conoscenza,
ontologie
Prova finale e Prova di appello
Syllabus (3)
• Libro di testo “Intelligenza Artificiale: un
approccio moderno”, Russel e Norvig; Prentice
Hall (capitoli selezionati)
• Presentazioni ppt del docente
• Dispense
• Documentazione su rete
Risoluzione di problemi
Definizione di appropriate strategie di ricerca
Individuazione di passi di ragionamento
elementari, la cui giustapposizione porta alla
identificazione di soluzioni ai problemi
Non viene utilizzata conoscenza di dominio
In domini complessi le prestazioni sono limitate
Conoscenza a priori del dominio
La conoscenza del dominio permette di utilizzare,
nella risoluzione dei problemi, passi meno
elementari con un processo di ragionamento più
ampio e complesso
Quindi si possono risolvere problemi più complessi
laddove si abbia una qualche conoscenza del
dominio
Sistemi basati su conoscenza
• Rappresentazione della conoscenza
• Ragionamento
Logica come linguaggio formale di supporto
sia per la rappresentazione che per il
ragionamento
Architettura di un sbc
Inference
Engine
User
Interface
Domain
Expert
Knowledge
Engineer
Knowledge
Base
User
Architettura di un sbc
Componenti principali / ruoli:
1. Meccanismo di controllo (motore
d’inferenza) / software engineers
2. Base di conoscenza / knowledge
engineers+”domain” experts
3. Interfaccia utente / users
Architettura di un sbc
Componenti principali :
1. Meccanismo di controllo (motore
d’inferenza): algoritmi domain-independent
2. Base di conoscenza: contenuto domaindependent (insieme di frasi in un linguaggio
formale)
Rappresentazione
Una “rappresentazione” è qualunque
notazione o insieme di simboli che rappresenta (re-present) qualcosa a qualcun
altro.
Una rappresentazione di qualcosa sta al posto
di quel qualcosa
Rappresentazione
Ogni rappresentazione rappresenta solo “qualche”
aspetto del mondo,
ovvero ciò che si vuole sottolineare.
Rappresentazione
Versus
Conoscenza del mondo
(come riferimento)
Rappresentazione
Diversi modi in cui la conoscenza sembra essere
“organizzata” (es. oggetti, relazioni, schemi)
Versus
Diversi modi in cui la conoscenza può essere
“rappresentata” (immagini, proposizioni, …)
Un esempio
Marco occupa la stanza 118
Giovanni occupa la stanza 119
“” “” “”
Ingrid occupa la stanza 123
Rappresentaz. analogica
Rappresentaz. proposizionale
Ulteriori informaz. spaziali e temporali
Informazioni esplicite
Un altro esempio
Immagine
Testo
Il libro è sul tavolo
on(book,desk)
Rappresentaz. analogica
Rappresentaz. proposizionale
- Info implicita
- Simboli discreti
- Simboli per relazioni
- Regole grammaticali compos.
- Astrazione rappres.
- Niente simboli
- Nessuna regola compos. simboli
- Concretezza
Sistemi basati su conoscenza
Rappresentazione della conoscenza
Assumiamo di poter “descrivere” il mondo in termini di
“frasi” nel nostro linguaggio.
Una base di conoscenza è un insieme di frasi, ovvero una
descrizione parziale del mondo. Ci riferiremo ad esso
come ad un universo del discorso (o dominio del
discorso)
Tutte le frasi sono descrizioni (nel ling. nat. si può fare
molto di più: porre domande, ordini, esprimere
dubbi,…)
Sistemi basati su conoscenza
Logica come linguaggio formale di supporto
per la rappresentazione della conoscenza ed
il ragionamento
La logica consiste di un linguaggio e di una
procedura di inferenza.
Logica come linguaggio formale
In un linguaggio logico (come per un qualsiasi
altro linguaggio) bisogna definire
formalmente la sintassi, un vocabolario, gli
operatori ed i connettivi logici, oltre alle
regole per combinarli tra loro.
Bisogna poter assegnare significato alle frasi
del linguaggio (model theory)
Logica come linguaggio formale
Procedura d’inferenza
Bisogna poter attuare inferenze valide da un insieme
di frasi del linguaggio indipendentemente dal loro
significato
(proof theory)
In logica la procedura di inferenza è di tipo
deduttivo.L’induzione e l’abduzione sono altri due
tipi di inferenza
Logica come linguaggio formale
Tipologie di inferenza
Deduzione: dati degli assiomi veri, le inferenze che si
possono effettuare sono sempre vere.
Abduzione: si possono inferire ipotesi eventualmente vere
(diagnosi) da fatti veri
Induzione: inferire relazioni generali (imparare) da alcuni
esempi veri
In logica la procedura di inferenza è di tipo deduttivo
(inferenza sempre vera).
L’induzione e l’abduzione sono due tipi di inferenza che
non assicurano la verità dell’inferenza
Conceptual Knowledge Process
Gestione della conoscenza (fasi - 1)
Creazione- analizzare come in un processo
(aziendale) si forma conoscenza a livello
individuale e di organizzazione
Comprensione- verificare, rappresentare,
sintetizzare, adattare, collegare la nuova
conoscenza alla preesistente (nell’azienda)
in modo comprensibile all’organizzazione
tutta
Gestione della conoscenza (fasi - 2)
Distribuzione- la conoscenza (aziendale)
deve essere accessibile agli individui ed
all’organizzazione nel suo insieme
Riuso- applicare la conoscenza ad un
processo (aziendale); si può creare nuova
conoscenza
Gestione della conoscenza
I sistemi basati su conoscenza gestiscono la
conoscenza (aziendale) attraverso processi che
collezionano, memorizzano e riusano conoscenza
passando da un livello individuale a quello
aziendale (conoscenza condivisa).
Sistemi esperti, sistemi di ragionamento basati su
casi, ontologie, sono esempi di metodologie per
la gestione della conoscenza
Sistemi esperti
I sistemi esperti sono dei sistemi che realizzano un task
come lo farebbe un esperto umano, e che possono
spiegare il meccanismo di ragionamento impiegato.
I sistemi esperti sono sistemi basati su conoscenza in cui
la base di conoscenza è costituita da una
rappresentazione della conoscenza di dominio prodotta da
un esperto (rappresentazione della conoscenza esperta e
dei meccanismi di ragionamento - regole)
Sistemi esperti - regole
Una regola consiste di due parti: un antecedente
ed un conseguente
L’antecedente consiste di una o più condizioni che
specificano quando e dove applicare la regola
Se le condizioni sono soddisfatte
Il conseguente specifica le azioni che devono
essere intraprese
Sistemi esperti – motore inferenziale
Le regole che codificano l’esperienza dell’esperto nel
sistema esperto sono contenute nella base di conoscenza
Il meccanismo che sceglie le regole per verificare se
possono essere usate in un problema si chiama motore
inferenziale
Il motore inferenziale verifica gli antecedenti delle regole,
quindi, a seconda del loro valore, realizza le azioni
specificate nei conseguenti delle regole.
Una volta identificate le regole, si attivano le azioni
correlate che possono cambiare lo stato del problema
Expert System Cycle
Rules
(Knowledge
Base)
Current
Problem
State (Shortterm
Memory)
Inference
Engine
(Pattern
Matching)
Sistemi esperti – motore inferenziale
Il vantaggio offerto dalla tecnologia dei
sistemi esperti è collegato alla possibilità di
spiegare sia il metodo seguito per prendere
delle decisioni che il processo risolutivo del
problema.
Case-based systems
La metodologia di ragionamento dei sistemi basati sui casi
si basa sul riuso della conoscenza acquisita in situazioni
precedenti per risolvere nuovi casi.
Quando si incontra un nuovo caso bisogna ritrovarne uno
simile per riapplicarne la strategia.
La scelta di quale situazione precedente può essere riusata si
basa sulla valutazione di similarità tra il vecchio e nuovo
caso (euristica di similarità) e si basa sull’assunzione che
problemi simili abbiano soluzioni simili.
Case-based systems
Per risolvere il nuovo problema è necessario adattare i
metodi risolutivi, precedentemente usati, al nuovo caso
creando così una nuova soluzione che viene aggiunta
alle precedenti.
L’adattamento può avvenire attraverso nuove regole.
I sistemi basati su casi ben si adattano a problemi per i
quali non si abbia una conoscenza completamente
definita.
CBR Cycle
Problem
New
Case
Learned
Case
Retrieved
Case New
Case
Previous
Case
General
Knowledge
Tested,
Repaired
Case
Confirmed Solution
Case
Solved
REVISE
Suggested Solution
Ontologie
Scopo principale delle ontologie è quello di fornire un
linguaggio comune per supportare la condivisione della
conoscenza concettuale.
Le ontologie sono stata comunemente adottate come
formalismo di rappresentazione della conoscenza per
fornire un metodo di ragionamento secondo il senso
comune a supporto di vari processi basati sulla
conoscenza.
Ontologie top level versus ontologie di dominio.
Rappresentazione della conoscenza
In ambienti dichiarativi, i sistemi sono come un
microcosmo cognitivo in cui è necessario stabilire
quali siano le proprietà che il sistema di
rappresentazione della conoscenza deve avere.
Requisito minimo
Ci deve essere una qualche corrispondenza tra il sistema
di rappresentazione della conoscenza e la conoscenza
che si sta rappresentando; devono essere definiti
simboli specifici per ogni oggetto che deve essere
modellato nel sistema (adeguatezza metafisica)
Rappresentazione della conoscenza
Proprietà
Il sistema di rappresentazione della conoscenza deve
essere in grado di rappresentare almeno tutta la
conoscenza che può essere necessaria per
• distinguere due qualunque stati del microcosmo
(adeguatezza epistemica)
• esprimere il ragionamento necessario alla risoluzione
di un problema (adeguatezza euristica)
Una qualunque rappresentazione deve poter essere
manipolata dal sistema (trattabilità computazionale) (il
ling. nat. non è trattabile, è computazionalmente-ambiguo)
Rappresentazione della conoscenza
Un qualunque sistema di rappresentazione della
conoscenza è formalmente equivalente al
microcosmo che sta modellando.
Due sistemi sono formalmente equivalenti se:
• Per ciascuno stato distinto del primo esiste uno
stato distinto del secondo
• Per ciascun possibile cambiamento di stato del
primo esiste un analogo cambiamento di stato
del secondo
Costruzione di una base di conoscenza
Ingegneria della conoscenza:
• Analisi del dominio peculiare
• Individuazione concetti importanti
• Rappresentazione formale di oggetti e
relazioni nel dominio