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