Ingegneria della Conoscenza e Sistemi Esperti - L.Int.Ar

Ingegneria della Conoscenza
e Sistemi Esperti:
Introduzione
Sara Manzoni
[email protected]
08/10/2003
Ingegneria della Conoscenza
(Knowledge Engineering)
Attività di
Acquisizione
 Formalizzazione e Rappresentazione
 Codifica
della conoscenza per la costruzione di
sistemi basati sulla conoscenza
(Knowledge Based Systems)

Knowledge-Based System (KBS)



Applicazioni dell’Intelligenza Artificiale (forse quella
che più di altre ha avuto successo commerciale)
Sistema informatico atto a rappresentare
conoscenze specifiche di un dato dominio e ad
applicarle alla risoluzione di problemi di interesse
Costruiti per risolvere o supportare la risoluzione
di problemi complessi di interesse pratico
(progettazione, diagnosi, pianificazione,
previsione…) mediante processi di inferenza sulla
conoscenza
KBS
SE




Sistema Esperto (SE)
Particolare KBS con finalità specificatamente
pratiche
SE: programma che rappresenta e ragiona con la
conoscenza di qualche ambito specialistico allo
scopo di risolvere problemi (o dare suggerimenti)
Esperienza: un insieme di capacità altamente
specializzate affinate in una situazione particolare
per un fine specifico
Un programma è esperto se manipola conoscenza
(non semplicemente algoritmi)


focalizzata su un dominio specifico
“in grado” di risolvere problemi
Programmi convenzionali
vs KBS
Programma Convenzionale
Knowledge Based System
Algoritmo
Problem
Solving
Method
Struttura dati
Knowledge
Base
Dati
Dati
Architettura di un KBS

Knowledge Base

Shell
Motore Inferenziale
Knowledge Base – KB:
uno o più componenti
del KBS per la
rappresentazione della
conoscenza
Motore inferenziale –
componente del KBS
che interpreta e utilizza
il contenuto della KB
Caratteristiche di un KBS

Differenze con i programmi classici: i KBS




rappresentano forme elementari del ragionamento umano,
piuttosto che il dominio stesso
operano su una rappresentazione della conoscenza (la base della
conoscenza), oltre che fare calcoli e reperire dati
risolvono problemi sulla base di metodi euristici o approssimati
che, a differenza delle soluzioni algoritmiche, non è certo che
terminino con successo
Differenze con altri tipi di applicazioni di IA



riguardano ambiti applicativi, di interesse scientifico o
commerciale
devono essere altamente efficienti in termini di velocità e
affidabilità
devono spiegare e giustificare le soluzioni proposte, per
convincere l’utente che il ragionamento seguito è corretto
Entità coinvolte nella
realizzazione di un KBS
Sviluppatore
Esperto
Knowledge
Engineer
Utente
KB
Motore
inferenziale
Esperto

È possibile realizzare un KBS (e in
particolare un SE) solo se esiste
qualcuno (l’esperto) che:




Sia in grado di risolvere il problema
Sa perché il problema si risolve in quel
modo
È in grado di fornire delle spiegazioni su
come risolvere il problema
È motivato a cooperare nell’iniziativa
Knowledge Engineer

Si occupa del processo di costruzione di KBS



Acquisizione della conoscenza: trasferimento e
trasformazione da un fonte di conoscenza ad un
programma in grado di risolvere problemi
Rappresentazione della conoscenza: trovare il modo con
cui informazioni utili possono essere descritte
formalmente ai fini della computazione simbolica
Controllo del ragionamento: utilizzo della conoscenza nel
modo e al momento giusto, determinando il modo in cui
un programma (KBS) ricerca una soluzione
Fonti di Conoscenza e
Knowledge Acquisition

Ingegneria della conoscenza


Persone esperte del problema (esperti del
dominio)
Data mining e analisi dei dati


Libri, manuali o altri documenti
Archivi di dati (registrazioni audio,
filmati, database...)
KBS: Aree di interesse e ricerca






KR: Rappresentazione della
conoscenza
KA: Acquisizione della conoscenza
SD: Software Development
M: Maintenance
V&V: Validation and Verification
UI: User Interaction
Knowldege Representation


Attività svolta per descrivere grandi quantità di informazioni
utili ai fini della computazione simbolica
Una rappresentazione della conoscenza deve possedere




adeguatezza e correttezza logica
capacità euristica: utilizzabile ai fini di risolvere un problema
convenienza computazionale: semplice ‘scrivere’ e poi
comprendere la conoscenza rappresentata
Tipi di rappresentazione


Descrizione formale  sintassi e semantica ben definite
Computazione simbolica  i simboli e le strutture possono
essere realizzate per rappresentare vari concetti e le loro
reciproche relazioni
KR: Rappresentazione della
Conoscenza


Serve un linguaggio di rappresentazione
Esistono diversi linguaggi:







Linguaggi formali Logici
Linguaggi formali Algebrici (reti Petri)
Reti semantiche
Grafi concettuali
Frame
Oggetti
Regole (costrutti IF ... THEN ...)
KR: Rappresentazione
dell’Incertezza


Teoria dei fuzzy set (Zadeh, 1965)
Logiche a più valore


Logica multivalore (Lukasiewicz, 1930)
Fuzzy Logic
KA: Acquisizione della
Conoscenza


Attività svolta dal knowledge engineer per il
trasferimento e la trasformazione di abilità
potenzialmente in grado di risolvere
problemi da un fonte di conoscenza (es.
esperto) a un programma
Risultati della ricerca nella KA


Metodologie e tecniche di intervista
Sviluppo di strumenti CAKE (Computer Aided
Knowledge Engineering)
Knowldge Acquisition

Bottleneck nella realizzazione dei sistemi
esperti, in quanto:



ogni ambito specialistico ha il suo gergo e spesso
è difficile per gli esperti comunicare la loro
conoscenza mediante il linguaggio comune
spesso la conoscenza esperta si basa su fatti e
principi che non possono essere formalizzati in
un modello deterministico ben strutturato
le abilità umane spesso coinvolgono un certo
grado del buon senso della vita quotidiana
difficile da delineare
SD: Sviluppo (1)

Linguaggi







logici: es. PROLOG
funzionali: es. LISP
basati su logiche descrittive: es. CML, Loom,
KIF/Ontolingua
basati a Frame: es. FRL, KRL, OWL, KL-ONE
procedurali
basati sulle reti semantiche: es. CYC
basati su grafi concettuali: es. Conceptual
Graph
SD: Sviluppo (2)

Strumenti

per sistemi a regole di produzione

JESS (Java Expert System Shell)


CLIPS (C Language Integrated Production System)


www.pst.com/opsj.htm
JEOPS (Java Embedded Object Production System)


www.ghgcorp.com/clips/CLIPS.HTML
OPSJ (Object Production System written in Java)


herzberg1.ca.sandia.gov/jess
www.cin.ufpe.br/~jeops
per sistemi basati su CBR
M: Maintenance

La maintenace della conoscenza è un insieme di
attività volte a contrastare l’“invecchiamento” che
cui sono soggetti i KBS per loro natura


1° Approccio: maintenace come fase di un ciclo di vito del
software/KBS  strumenti CAKE (es. CommonKADS,
MIKE)
2° Approccio: Modifica del contenuto del sistema



KBS realizzati per supportare la maintenance
(es. CBR o Ripple Down Rules di Compton)
KBS che consentano la maintenance da parte dell’utente
(es. ISB di VanHarmelen – aggiornamento regole
P-Truck – KEPT Knowledge Elicitacion module of P-Truck)
MetaKBS  problema della maintenance ricorsiva
V&V: Validation &
Verification


Area di ricerca: Validazione e Verifica
della Conoscenza contenuta in un
KBS
L’obiettivo è trovare delle risposte alle
domande:


Validazione: la “Knowledge Base” è
costruita correttamente?
Verifica: la “Knowledge Base” ha un
contenuto corretto?
•KA: Knowledge Acquisition
•KR: Knowledge Representation
•SD: Software Developing
Aree di interesse e
ricerca sui KBS
Knowledge
Engineer
KA
KR
M
KBS
Esperto
SD
Sviluppatore
V&V
UI
Utente
M: Maintenance
V&V: Validation and
Verification
UI: User Interface
Tipi di KBS: classificazione

in base all’applicazione




Knowledge Capture and Storing: knowledge acquisition e
knowledge maintenance
Knowledge Deployment and Sharing
Knowledge Processing: supporto, sostituzione e
addestramento in attività decisionali e per la risoluzione di
problemi
in base al metodo di KR e Problem Solving Method




Rule-Based System
Case-Based System
Model-Based System
Sistemi ibridi
Sistemi a Regole

Knowledge Base


Base dei fatti: insieme di ‘fatti’ verificati (in un determinato momento)
riguardo al dominio in questione
Base delle regole: insieme di costrutti del tipo IF insieme di condizioni
(Left-Hand Side) THEN insieme di azioni (Right-Hand Side)



Motore inferenziale: componente del SE per la gestione della





che esprimono una serie di inferenze che modificano la Base dei fatti
che rappresentano la conoscenza dell’esperto esplicitata e formalizzata
base dei fatti (Inserimento, Cancellazione, Modifica)
base di regole (Attivazione delle regole, Conflict resolution, Esecuzione
regole)
Ricerca della soluzione analoga alla dimostrazione automatica di
teoremi, con inferenze successive, partendo da assiomi
Vengono evidenziati tutti i passaggi logici che permettono di arrivare
ad una soluzione parziale o finale (Trace del sistema)
Apprendimento: aggiungere/rimuovere/modificare delle regole
(compito problematico e molto complesso)
Sistemi basati sui Casi

Case Based Reasoning (CBR) [J. Kolodner, 1993]




KB: base dei casi (Case Base)


Ragionamento per analogia
Sistema legale USA
Generalmente usato quando non esiste un modello della conoscenza
Insieme di casi già risolti e memorizzati secondo una determinata
struttura (Indexing)
Motore inferenziale: case-based reasoner




Ricerca di un problema analogo nella Base dei Casi (Retrieve)
Applicazione della soluzione di un caso passato ad un problema attuale
(Reuse)
adattamento della soluzione recuperata, per tenere conto delle
peculiarità del problema attuale (Revise)
apprendimento incrementale: la conoscenza del sistema aumenta con
l’aumento del numero dei casi (Retain)
Sistemi basati su Modello


KB e Motore inferenziale:
rappresentazione della conoscenza del
dominio in un modello causale del
dominio
Applicabilità: solo quando si possiede
una ben nota e completa
rappresentazione del dominio
Sistemi ibridi:
una possibile architettura
Descrizione
problema
Rule-Based
Reasoning
se nessuna regola
applicabile
Regola
applicata
Case-Based
Reasoning
se nessun caso
applicabile
Soluzione del
problema
Caso
applicato
Model-Based
Reasoning
Modello
applicato