Introduzione allICSE Fabio Sartori [email protected] 11 ottobre 2006.
-
Upload
manfredo-carella -
Category
Documents
-
view
215 -
download
0
Transcript of Introduzione allICSE Fabio Sartori [email protected] 11 ottobre 2006.
Introduzione all’ICSE
Fabio [email protected] 11 ottobre 2006
Ingegneria della Conoscenza (Knowledge Engineering)
Attività di Acquisizione Formalizzazione e Rappresentazione Codificadella conoscenza per la costruzione di sistemi
basati sulla conoscenza (Knowledge Based Systems)
Knowledge-Based System (KBS)
Applicazione dell’Intelligenza Artificiale Sistema informatico atto a
rappresentare conoscenze specifiche di un dato dominio e ad applicarle alla risoluzione di problemi
Costruito per risolvere o supportare la risoluzione di problemi complessi mediante processi di inferenza sulla conoscenza
Sistema Esperto (SE)
Particolare KBS con finalità specificatamente pratiche Progettazione Diagnosi Pianificazione Previsione …
Programma che rappresenta e ragiona con la conoscenza di qualche ambito specialistico allo scopo di risolvere problemi
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)
KBS
SE
Programmi convenzionali vs KBS
AlgoritmoProblem Solving Method
Dati
Programma Convenzionale
Knowledge Based System
Dati
Struttura datiKnowledge
Base
Architettura di un KBS
Knowledge Base – KB: uno o più componenti del KBS per la rappresentazione della conoscenza
Motore inferenziale – uno o più componenti del KBS che interpretano e utilizzano il contenuto della KB
Knowledge Base
Shell
Motore Inferenziale
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
Realizzazione di un KBS: principali entità coinvolte
EspertoEsperto
UtenteUtente KBKB Motore Motore inferenzialeinferenziale
Knowledge Knowledge EngineerEngineer
SviluppatoreSviluppatore
Entità coinvolte nella realizzazione di un KBS
EspertoEsperto
UtenteUtente KBKB Motore Motore inferenzialeinferenziale
Knowledge Knowledge EngineerEngineer
SviluppatoreSviluppatore
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 una fonte di conoscenza (esperto, documenti, dati, ...) ad una forma esplicita e formalizzata la conoscenza necessaria alla risoluzione di un problema
Rappresentazione della conoscenza: definizione della modalità di descrizione formale della conoscenza ai fini della computazione simbolica
Controllo del ragionamento: utilizzo della conoscenza “nel modo e al momento giusto”, determinando il modo in cui il programma (KBS) elabora la soluzione
Fonti di Conoscenza
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
Esperto
Utente
KBS
Knowledge Engineer
SviluppatoreM
KA KR
SD
UI
•KA: Knowledge Acquisition
•KR: Knowledge Representation
•SD: Software Development
M: Maintenance
V&V: Validation and Verification
UI: User Interaction
V&V
Aree di ricerca sui KBS
KA: Knowledge Acquisition
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)
KA: Knowledge 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
KR: Knowldege Representation 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 i vari concetti e le reciproche relazioni tra essi
KR: Knowldege Representation 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: Knowldege Representation Teoria dei fuzzy set (Zadeh, 1965) Logiche a più valore
Logica multivalore (Lukasiewicz, 1930) Fuzzy Logic
SD: Software Development
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: Software Development
Strumenti (Shell) per sistemi a regole di produzione
JESS (Java Expert System Shell) herzberg1.ca.sandia.gov/jess
CLIPS (C Language Integrated Production System) www.ghgcorp.com/clips/CLIPS.HTML
OPSJ (Object Production System written in Java) www.pst.com/opsj.htm
JEOPS (Java Embedded Object Production System) 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” cui sono soggetti i KBS per loro natura 1° Approccio: maintenace come fase di un ciclo di vita
del software/KBS strumenti CAKE (es. CommonKADS, MIKE)
2° Approccio: Modifica del contenuto del sistema KBS realizzati per facilitare la maintenance (es. CBR o Ripple Down Rules di Compton) KBS realizzati per faciilitare la maintenance direttamente da
parte dell’utente (es. ISB di VanHarmelen – aggiornamento
regole P-Truck – KEPT Knowledge Elicitacion module
of P-Truck)
V&V: Validation & Verification
Validazione e Verifica della Conoscenza contenuta in un KBS Validazione: la “Knowledge Base” è
costruita correttamente? Verifica: il contenuto della “Knowledge
Base” è corretto?
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) che esprimono una serie di inferenze che modificano la Base dei fatti che rappresentano la conoscenza dell’esperto esplicitata e formalizzata
Motore inferenziale: componente del SE per la gestione della 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] Ragionamento per analogia Sistema legale USA Generalmente usato quando non esiste un modello della
conoscenza KB: base dei casi (Case Base)
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 (es. diagnosi)
Applicabilità: solo quando si possiede una ben nota e completa rappresentazione del dominio
Sistemi ibridi: un esempio
Rule-Based Reasoning
Model-Based Reasoning
Case-Based Reasoning
Soluzione del problema
Descrizione problema
Regola applicata
Caso applicato
Modello applicato
se nessuna regola
applicabile
se nessun caso applicabile