introduzione allicse fabio sartori [email protected] 11 ottobre 2006

29
Introduzione all’ICSE Fabio Sartori [email protected] 11 ottobre 2006

Upload: manfredo-carella

Post on 02-May-2015

221 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

Introduzione all’ICSE

Fabio [email protected] 11 ottobre 2006

Page 2: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 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)

Page 3: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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

Page 4: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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

Page 5: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

Programmi convenzionali vs KBS

AlgoritmoProblem Solving Method

Dati

Programma Convenzionale

Knowledge Based System

Dati

Struttura datiKnowledge

Base

Page 6: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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

Page 7: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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

Page 8: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

Realizzazione di un KBS: principali entità coinvolte

EspertoEsperto

UtenteUtente KBKB Motore Motore inferenzialeinferenziale

Knowledge Knowledge EngineerEngineer

SviluppatoreSviluppatore

Page 9: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

Entità coinvolte nella realizzazione di un KBS

EspertoEsperto

UtenteUtente KBKB Motore Motore inferenzialeinferenziale

Knowledge Knowledge EngineerEngineer

SviluppatoreSviluppatore

Page 10: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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

Page 11: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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

Page 12: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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...)

Page 13: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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

Page 14: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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

Page 15: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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)

Page 16: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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

Page 17: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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

Page 18: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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 ...)

Page 19: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

KR: Knowldege Representation Teoria dei fuzzy set (Zadeh, 1965) Logiche a più valore

Logica multivalore (Lukasiewicz, 1930) Fuzzy Logic

Page 20: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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

Page 21: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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

Page 22: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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)

Page 23: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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?

Page 24: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006
Page 25: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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

Page 26: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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)

Page 27: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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)

Page 28: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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

Page 29: Introduzione allICSE Fabio Sartori sartori@disco.unimib.it 11 ottobre 2006

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