ORALE SISTEMI ESPERTI E SOFT COMPUTING
FONDAMENTI, SISTEMI ESPERTI (KBS) E KNOWLEDGE ENGINEERING – PRIMA MACRO AREA
INTELLIGENZA ARTIFICIALE E PARADIGMI DI CALCOLO
L'Intelligenza Artificiale (IA) è la disciplina informatica che si occupa di realizzare sistemi hardware e
software capaci di prestare prestazioni che, all'osservatore umano, sembrerebbero essere di pertinenza
dell'intelligenza umana.
All'interno dell'IA si distinguono due paradigmi fondamentali:
1. Hard Computing: Rappresenta l'informatica e il calcolo convenzionale. Si basa su modelli analitici
1)
precisi, sulla logica booleana classica (0 o e richiede dati perfetti, completi e privi di rumore. È
rigido e mira alla precisione assoluta.
2. Soft Computing: Si ispira ai sistemi biologici e accetta imprecisione, incertezza e verità parziale. Il
suo obiettivo non è l'esattezza analitica, ma la robustezza e la trattabilità computazionale, trovando
soluzioni "approssimativamente corrette" ed efficienti a bassi costi di calcolo per problemi del
mondo reale dove un modello esatto sarebbe impossibile da costruire.
DATI, INFORMAZIONE E CONOSCENZA
Nei sistemi intelligenti esiste una gerarchia fondamentale: 39).
1. Dati: Fatti grezzi, privi di contesto e significato autonomo (es. il numero ∘
39
2. Informazione: Dati strutturati e contestualizzati che acquisiscono un significato (es. C misurati
come temperatura corporea).
3. Conoscenza: L'insieme di informazioni integrate con regole, esperienze ed euristiche che
permettono di interpretare i dati e prendere decisioni o generare nuova informazione (es. "se la
∘
38.5
temperatura corporea supera i C, allora somministra un antipiretico").
SISTEMI ESPERTI
Un sistema esperto (o KBS – Knowledge-Based System) è un’applicazione di Intelligenza Artificiale
progettata per risolvere problemi complessi in un dominio specifico, raggiungendo prestazioni paragonabili
a quelle di un esperto umano. La sua caratteristica distintiva è l’architettura modulare, che si basa sulla
separazione netta tra la conoscenza e il meccanismo di ragionamento.
I componenti fondamentali sono:
1. Base di Conoscenza (KB): è il deposito della conoscenza specialistica. Contiene fatti (dati certi) e
regole (euristiche del tipo IF-THEN). A differenza di un database, la KB permette di rappresentare
relazioni logiche.
2. Motore Inferenziale: E’ il “cervello” del sistema. Non contiene conoscenza sul problema, ma
conosce le regole della logica per manipolare la KB. Agisce tramite due strategie principali:
• Forward Chaining (Ragionamento guidato dai dati): Si parte dai fatti noti e si applicano le
regole per vedere quali nuove conclusioni si possono trarre. E’ ideale per la pianificazione o
il monitoraggio.
• Backward Chaining (Ragionamento guidato dagli obiettivi): Si parte da un’ipotesi (es. “il
paziente ha l’influenza?”) e si va a ritroso per vedere si i fatti presenti nella KB supportano
questa ipotesi. E’ tipico dei sistemi di diagnosi.
3. Working Memory: Un’area temporale che contiene I dati specifici del corso corrente e le
conclusioni intermedie raggiunte durante il ragionamento.
4. Modulo di spiegazione (explanation Subsystem): E’ cruciale per l’accettazione del sistema. Permette
all’utente di chiedere “Perché?” (Why) o “Come?” (How), e il sistema risponde ricostruendo la
catena di regole attivate. Questo rende l’IA “trasparente” e non una black-box.
TECNICHE DI RICERCA NELLO SPAZIO DEGLI STATI
Trovare una soluzione a un problema nei sistemi esperti significa effettuare una ricerca all'interno
dello spazio degli stati (l'insieme di tutte le configurazioni possibili che il problema può assumere dal
punto di partenza all'obiettivo).
1. Backtracking: È la tecnica di ricerca fondamentale. Esplora sequenzialmente un cammino nello
spazio degli stati; quando incontra un vicolo cieco (uno stato da cui non si può proseguire verso
l'obiettivo), l'algoritmo torna indietro (backtrack) all'ultimo punto di scelta per esplorare un
percorso alternativo.
RAPPRESENTAZIONE E INGEGNERIA DELLA CONOSCENZA (KNOWLEDGE ENGINEERING)
La conoscenza all'interno di un KBS può essere formalizzata usando diversi paradigmi di
rappresentazione: Logica del Primo Ordine, Regole di Produzione (IF-THEN), Reti Semantiche (grafi con
nodi e archi orientati per rappresentare concetti e relazioni) o Frame (strutture a schede con attributi e
valori).
Il processo di acquisizione della conoscenza si articola in tre definizioni chiave:
1. Knowledge Elicitation (Elicitazione): L'acquisizione manuale della conoscenza direttamente
da esperti umani tramite interviste, questionari o l'osservazione diretta del protocollo di pensiero
(think-aloud). Presenta la grande sfida del "collo di bottiglia" causato dalla conoscenza tacita (ciò
che l'esperto sa fare per intuizione ma fatica a verbalizzare).
2. Knowledge Extraction (Estrazione): L'acquisizione di conoscenza da fonti passive non umane
(documenti, log di sistema, database grezzi) tramite tecniche automatizzate o semi-automatizzate di
Data Mining e analisi del testo.
3. Knowledge Engineering (Ingegneria della Conoscenza): L'intera disciplina metodologica che guida il
ciclo di vita di un KBS: dall'acquisizione della conoscenza (elicitazione/estrazione) alla sua
formalizzazione, scelta dell'architettura, programmazione, validazione e manutenzione nel tempo.
PROGETTO DI UN SISTEMA ESPERTO (CICLO DI VITA E SVILUPPO)
La progettazione di un sistema esperto segue una metodologia strutturata suddivisa in 6 fasi fondamentali:
1. Identificazione del Problema (Feasibility Study): Si definiscono i confini del dominio, gli obiettivi del
sistema, i costi, le risorse disponibili e si individua l'esperto umano di riferimento. Si verifica se il
problema è adatto a un KBS (deve richiedere competenza specialistica, non solo senso comune).
2. Acquisizione della Conoscenza (Conceptualization): Il Knowledge Engineer interagisce con l'esperto
umano ed esamina la documentazione per estrarre le regole euristiche e i concetti chiave del
dominio (fase di Elicitation ed Extraction).
3. Strutturazione e Formalizzazione (Formalization): Si mappa la conoscenza concettuale in una
struttura formale. Si sceglie il paradigma di rappresentazione più idoneo (es. Regole IF-THEN,
Frame, Reti Semantiche) e il meccanismo di inferenza (Forward o Backward Chaining).
4. Implementazione (Prototipazione rapida): Si sviluppa un prototipo iniziale del sistema utilizzando
linguaggi dedicati (es. Prolog, CLIPS) o motori a regole. La prototipazione è iterativa: si mostra il
prototipo all'esperto per affinare e correggere le regole.
5. Testing e Validazione (Validation & Verification): Si valuta la qualità del sistema.
1. Verifica: Accerta che il software sia privo di errori logici o ridondanze nelle regole.
2. Validazione: Confronta le decisioni prese dal sistema esperto con quelle dell'esperto umano
su casi reali per misurarne l'accuratezza.
6. Manutenzione e Integrazione: Il sistema viene integrato nell'ambiente operativo reale. La Base di
Conoscenza viene continuamente aggiornata con nuove regole per adattarsi all'evoluzione del
dominio.
DOMANDE IPOTETICHE
QUAL E’ IL VANTAGGIO PRINCIPALE DELLA SEPARAZIONE TRA BASE DI CONOSCENZA E MOTORE
INFERENZIALE?
La manutenibilità. Puoi aggiungere, togliere o modificare le regole nella KB senza dover riprogrammare o
ricompilare il codice del Motore Inferenziale.
COSA SI INTENDE PER “CONOSCENZA TACITA” E COME INFLUISCE SULLA CREAZIONE DI UN SISTEMA
ESPERTO?
E’ la conoscenza che l’esperto usa inconsciamente ma fatica a spiegare. Questo causa il collo di bottiglia
dell’acquisizione della conoscenza durante la fase di Krowledge Engineering.
MI PARLI DELLA DIFFERENZA TRA FOWARD E BLACKWARD CHAINING. QUANDO PREFERIREBBE L’UNO O
L’ALTRO?
Sceglierei il Foward se ho molti dati iniziali e voglio vedere cosa ne deriva (es. previsioni meteo). Sceglierei il
Blackward se ho un numero limitato di ipotesi finali da verificare (es. diagnosi di una specifica lista di
malattie).
CHE RUOLO HA LA WORKING MEMORY DURANTE UNA SESSIONE DI INTERFERENZA?
Serve a memorizzare i fatti forniti dall’utente per il caso specifico e i risultati parziali. Senza di essa, il motore
inferenziale non avrebbe una “lavagna” su cui annotare i passaggi del suo ragionamento.
PROCESSING DEI DATI E VALIDAZIONE DEI MODELLI – SECONDA MACRO AREA
Nel Data Mining e nel Machine Learning, i dati grezzi raccolti dal mondo reale sono quasi sempre
incompleti, rumorosi o incoerenti. La fase di Trattamento Preliminare dei Dati (Data Preprocessing) è
fondamentale per trasformare i dati grezzi in un formato pulito e idoneo agli algoritmi di apprendimento,
garantendo l'affidabilità del modello finale.
Il Preprocessing si articola in quattro fasi principali:
1. Data Cleaning
Si occupa di individuare e correggere gli errori e le incongruenze nei dati.
1. Gestione dei Missing Value (Valori Mancanti): Quando un dataset presenta dati mancanti, si
utilizzano tre strategie principali:
1. Eliminazione: Rimozione dei record (righe) o delle variabili (colonne) con valori mancanti. Si
applica solo se i dati mancanti sono pochi e casuali per non perdere troppa informazione.
2. Imputazione manuale o deterministica: Sostituzione dei valori mancanti con una costante
globale, con la media (per variabili continue con distribuzione normale), la mediana (se ci
sono outlier) o la moda (per variabili categoriali).
3. Imputazione basata su modelli: Utilizzo di algoritmi predittivi (es. KNN o regressione) per
stimare il valore mancante in base alle altre caratteristiche dell'individuo.
2. Gestione del Rumore (Noise) e Outlier: Il rumore è un errore casuale o una variazione indesiderata
in una variabile misurata. Si gestisce tramite tecniche di Binning (raggruppamento dei dati in
intervalli e livellamento con media o mediana), Regressione o Clustering per individuare e isolare
gli outlier (valori anomali).
2. Data Integration
Consiste nell'unire dati provenienti da più sorgenti eterogenee (database differenti, file flat, documenti
XML) in un'unica vista coerente.
1. Sfide principali: Risoluzione delle incongruenze negli schemi (es. lo stesso attributo chiamato
"ID_Cliente" in un DB e "Cod_Utente" in un altro), gestione delle ridondanze e identificazione dei
dati duplicati tramite l'Analisi di Correlazione (es. Indice di Pearson o test del Chi-Quadro).
3. Data Reduction (Riduzione dei Dati - Lezioni 16-18)
Mira a ridurre la quantità di dati da elaborare, mantenendo al contempo l'integrità dell'informazione
essenziale e riducendo il tempo computazionale.
1. Dimensionality Reduction (Riduzione della Dimensionalità): Riduzione del numero di attributi
(colonne). Si effettua tramite:
1. Feature Selection: Selezione di un sottoinsieme degli attributi originali più rilevanti (es.
eliminando variabili ridondanti o irrilevanti).
2. Feature Extraction: Trasformazione degli attributi originali in uno spazio a dimensione
inferiore. La tecnica principale è la PCA (Principal Component Analysis), che proietta i dati
su assi ortogonali (componenti principali) che massimizzano la varianza.
2. Numerosity Reduction (Riduzione della Numerosità): Riduzione del numero di record (righe). Si
applica tramite tecniche parametriche (modelli matematici come la regressione) o non
parametriche come il Campionamento (Sampling), l'Istituzione di Istogrammi e il Clustering.
3. Discretizzazione (Lezione 18): Conversione di variabili continue in intervalli discreti o categorie (es.
trasformare l'età
-
Paniere Sistemi esperti e soft computing - risposte multiple
-
Risposte multiple paniere di Sistemi esperti e soft computing
-
Sistemi Intelligenti
-
Sistemi operativi