Sistemi Esperti

Precedente Home Page Su

dolphin.gif (5307 byte)

 

 

DALL’ELABORAZIONE TRADIZIONALE DEI DATI AI SISTEMI ESPERTI

1. Il problema della rappresentazione

2. La rappresentazione della conoscenza

3. L’approccio tradizionale

4. Una struttura di controllo alternativa – I SISTEMI DI PRODUZIONE

5. Le strutture di controllo e la dipendenza dal dominio

6. Altri limiti all’approccio tradizionale

6.1. I dati inferiti

6.2. Il ragionamento inesatto

6.3. Mancanza di algoritmi adatti

7. La via da seguire

CALCOLO DEI PREDICATI E INFERENZA LOGICA

1. Il calcolo dei predicati e la rappresentazione della conoscenza

2. L’inferenza logica

3. I problemi connessi al calcolo dei predicati nell’elaborazione della conoscenza

APPROCCI COMPUTAZIONALI ALLA RAPPRESENTAZIONE E AL CONTROLLO

1. Il passaggio a sistemi basati sulla conoscenza

2. Il Lisp, un linguaggio per programmare sistemi basati sulla conoscenza.

3. La rappresentazione del dominio di conoscenza

3.1. Le reti semantiche

3.2. I frame

3.3. Regole di produzione

4. Problemi di controllo

SISTEMI ESPERTI ED ESPERTI RISOLUTORI DI PROBLEMI

1. Risoluzione di problemi basata sulla conoscenza

2. Uno schema di classificazione per i sistemi esperti

3. Il trattamento dell’evidenza incerta – Mycin

3.1. Introduzione

3.2. Fatti

3.3. Regole di produzione

3.4. Calcolo del fattore di certezza

3.5. Struttura di controllo dipendente dal dominio

3.6. L’informazione che si ottiene dall’utente

3.7. Strumenti di spiegazione a disposizione

3.8. Conclusioni

 

DALL’ELABORAZIONE TRADIZIONALE DEI DATI AI SISTEMI ESPERTI

1. Il problema della rappresentazione

I sistemi esperti hanno origine dall’elaborazione tradizionale dei dati e sono il risultato del tentativo di automatizzare alcuni dei principali aspetti del processo informativo umano.

Un elaboratore ha generalmente il compito di trasformare una sequenza di simboli in ingresso in una sequenza di simboli in uscita. L’elaboratore d’altro canto non ha alcuna cognizione di quello che sta facendo ma si limita ad imitare delle operazioni che noi poi interpretiamo nella realtà.

Il problema che a questo punto si pone deriva dal fato che le trasformazioni primitive sono valide soltanto se le sequenze fornite in input sono nel formato adatto e le sequenze di output sono interpretate correttamente. Entrambe queste attività sono di natura umana quindi il problema è, essenzialmente, di rappresentazione. Dobbiamo quindi definire un formalismo valido, in modo da presentare all’elaboratore delle sequenze di simboli che definiscano in maniera non ambigua ciò che intendiamo e parimenti determinare le trasformazioni primitive in modo tale che una volta eseguite forniscano delle sequenze in uscita che abbiano per noi un significato non ambiguo.

L’elaborazione tradizionale è pertanto resa possibile dalla definizione di rappresentazioni adeguate, sia per i dati che vogliamo manipolare, sia per la sequenza di operazioni che desideriamo svolgere. La scelta della rappresentazione risulta quindi essere cruciale in quanto determina quali tipi di processo conoscitivo possano essere adattati o meno all’automazione.

Il processo conoscitivo di un esperto attinge ad ampie fonti d’informazione, alcune delle quali possono essere incomplete e presentate in molte forme diverse. Il processo grazie al quale un esperto sceglie, sintetizza e trasforma i dati iniziali è poco noto. Da ciò la necessità di rappresentare le caratteristiche essenziali del modo in cui avviene l’approccio e la risoluzione di un problema da parte dell’esperto. Le tecniche tradizionali di rappresentazione sono risultate inadeguate a far fronte a questi problemi; da ciò il rischio, impostoci dai nostri limiti di rappresentazione, di raggiungere un punto morto. Con successo però da diversi anni il problema della rappresentazione è stato esaminato nel campo dell’Intelligenza Artificiale.

Torna all'inizio

2. La rappresentazione della conoscenza

Gli esseri umani hanno «conoscenza» del mondo in cui vivono che si divide in due grandi categorie:

quella condivisa dalla maggioranza degli uomini;

quella che ha carattere più specialistico.

La conoscenza di oggetti e delle loro relazioni ci pone in condizione di classificarli e di stabilire le connessioni reciproche (fatti). Un altro tipo di conoscenza, le regole, rende possibile specificare come inferire nuove istanze di una classe, o nuove istanze di una relazione, da oggetti non ancora classificati.

Naturalmente la rappresentazione di certi processi conoscitivi richiederà un insieme di regole molto ampio e complesso, e gli esperti finiscono con l’utilizzare regole o procedimenti non comprensibili a coloro che non sono esperti. In alcuni casi l’esperto stesso può non comprendere realmente i procedimenti che di fato svolge nel formulare un giudizio.

Si sono finora introdotte due componenti fondamentali di un processo conoscitivo, i fatti e le regole. Un terzo requisito è una struttura di controllo che determini le modalità di applicazione delle varie regole. Fondamentalmente, una struttura di controllo permette di decidere quale sarà la prossima regola da utilizzare durante il processo. Le regole potrebbero essere prese in sequenza o potrebbe rendersi necessario qualche sottosistema di regole per decidere quali altre regole siano da applicare (regole di livello superiore o metaregole). Il meccanismo di applicazione di una determinata regola in situazioni caratterizzate da una scelta è anch’esso un problema di strutture di controllo. In certi punti siamo di fronte ad una scelta; da ciò la necessità si possedere un metodo adeguato, determinato dalla struttura di controllo, per la scelta della via da seguire.

In conclusione per descrivere un processo conoscitivo possiamo utilizzare:

una conoscenza dichiarativa (classi e relazioni);

una conoscenza procedurale (regole e strutture di controllo).

Il limite tra le due è molto flessibile. In generale, quanta minore è la conoscenza che dichiariamo, tanto più sarà necessaria una conoscenza procedurale e viceversa.

Torna all'inizio

3. L’approccio tradizionale

Il primo compito da affrontare implica, quindi, la classificazione di tutti gli oggetti che devono essere manipolati dall’elaboratore. Questa classificazione è, in realtà, la costruzione di relazioni tra singoli simboli computazionali e singoli oggetti esterni o idee. L’atto di porre relazioni stabilisce connessioni tra oggetti già classificati. In genere si ottiene una classificazione di oggetti simili fornendo un’etichetta (o nome variabile) e un indice. L’etichetta fornisce una classe e l’indice un’occorrenza, o istanza, di quella classe. Per definire le relazioni si usa un approccio piuttosto simile a quello usato per la classificazione; vengono infatti usati un’etichetta e un indice. Ancora una volta l’etichetta stabilisce la relazione e l’indice ne definisce un’istanza. Entrambe queste definizioni possono essere fatte agevolmente con i comuni linguaggi di programmazione mediante l’uso di strutture dati convenzionali come gli array.

Le procedure, in un secondo tempo, creano nuove istanze di relazioni e classi a partire da quelle esistenti. E’ da notare quindi l’influenza delle nostre definizioni di classificazione e relazione sulle costruzioni di procedure. E’ importante sottolineare che l’elaborazione tradizionale non può creare nuove classi o nuove relazioni – queste vengono tutte definite durante la scrittura del programma – ma solo istanziare classi o relazioni esistenti. Per far ciò si utilizzano costrutti artificiali comuni dei linguaggi di programmazione tradizionali quali DO…WHILE, FOR…DO, REPEAT…UNTIL, ecc.

Torna all'inizio

4. Una struttura di controllo alternativa – I SISTEMI DI PRODUZIONE

Quale struttura di controllo potremmo adottare?

Una possibile è offerta dal sistema di produzione. Un sistema di produzione consta dei tre elementi definiti in precedenza:

classificazioni e relazioni;

regole;

struttura di controllo.

Le classificazioni e le relazioni vengono denominate «base di dati», che contiene in sostanza la conoscenza dichiarativa.

Le procedure sono un insieme di regole del tipo:

SE (condizione) ALLORA (azione)

La struttura di controllo determina quale regola venga verificata in seguito, ed è spesso definita un interprete di regole.

La (condizione) è una prova dello stato corrente della base di dati e l’(azione) aggiorna in un certo modo la base dati.

Oltre all’approccio fondato sulla regola di produzione, sono possibili molte altre strutture di controllo, e la ricerca nel campo dell’Intelligenza Artificiale ha portato alla scoperta di un certo numero di approcci diversi. Un punto importante concerne la relazione tra la struttura di controllo e il dominio di conoscenza.

Torna all'inizio

5. Le strutture di controllo e la dipendenza dal dominio

Spesso la struttura di controllo è indipendente dal dominio. In altre parole questo significa che il suo modus operandi non dipende dalla conoscenza del dominio in esame. Tali strutture di controllo sono semplici e chiare, e ci mettono in grado di separare nettamente la conoscenza sull’applicazione (cioè la base dati comprensiva di fatti, relazioni e regole) dall’operazione considerata.

In molti problemi reali ciò non è facilmente conseguibile e può non essere desiderabile. Un semplice esempio di dipendenza dal dominio si riferisce all’effetto prodotto dal contesto. In molti problemi, certe serie di regole possono essere applicate solo in circostanze o contesti determinati.

Torna all'inizio

6. Altri limiti all’approccio tradizionale

Vi sono altre difficoltà, associate all’elaborazione tradizionale dei dati, che pongono restrizioni alla determinazione della linea di demarcazione tra l’elaborazione della conoscenza da parte dell’uomo e da parte dell’elaboratore. Le più importanti sono quelle relative ai dati inferiti, al ragionamento inesatto e a soluzioni del problema che non possono essere formulate come algoritmi convenzionali.

Torna all'inizio

6.1. I dati inferiti

Qualsiasi programma deriva una nuova conoscenza da quella precedente. L’approccio convenzionale, inoltre, presume che l’ordine in cui i dati siano inferiti sia noto. Così il procedimento di inferenza può essere tradotto in un algoritmo convenzionale, che costruisce in sequenza i dati inferiti e quindi usa nuovamente questi ultimi per derivarne ancora dei nuovi.

L’intero processo è accuratamente pianificato in anticipo. In situazioni reali spesso non è chiaro, tuttavia «cosa» sarà inizialmente dato e «cosa» sarà necessario inferire.

L’unico modo di costruire un algoritmo generalizzato è quello di creare tutte le relazioni possibili prima di rispondere a qualsiasi domanda, ma, in presenza di una vasta base di dati dichiarativi, questo comporterebbe un notevole spreco di calcolo da parte dell’elaboratore e aumenterebbe il tempo di risposta. La sostanza del problema è nella rigidità della struttura di controllo convenzionale.

Torna all'inizio

6.2. Il ragionamento inesatto

Non sempre quello che concerne la conoscenza è ben determinato. Nella realtà la conoscenza tende ad essere sfumata quindi le asserzioni ad essa collegate non assumono il valore VERO o FALSO in modo esclusivo. Nondimeno, siamo spesso capaci di dedurre conoscenza da dati che risultano essere inesatti con ragionevole certezza. Per far ciò, dobbiamo combinare pezzi di conoscenza con le loro certezze, allo scopo di dedurre nuova conoscenza caratterizzata da una certezza derivata.

Un approccio basato su regole può affrontare il problema con relativa facilità. Alcune regole adatterebbero le probabilità all’informazione nota, in modo da renderle corrispondenti, mentre altre agirebbero basandosi su livelli di probabilità.

6.3. Mancanza di algoritmi adatti

In molte situazioni non è possibile costruire un algoritmo per risolvere un problema particolare in modo univoco. Gli algoritmi convenzionali non sono molto appropriati alla soluzione di problemi basati sulla conoscenza. In molti problemi reali, qualsiasi algoritmo che esaminasse tutti i termini possibili di un problema avrebbe tempi di risposta misurabili in anni; tuttavia tutti gli esseri umani sono in grado di risolvere tali problemi rapidamente ed in modo efficiente.

Per risolvere simili problemi, è necessario scegliere all’interno di un determinato insieme di strategie. Tale selezione dall’insieme si opera esaminando lo stato del problema e utilizzando quella strategia che ridurrà le distanze tra la situazione attuale e la soluzione richiesta. Ci avviciniamo alla soluzione (od obiettivo) attraverso la selezione di strategie che speriamo siano suscettibili di portarci più vicino possibile al nostro obiettivo.

Torna all'inizio

7. La via da seguire

Come si è potuto constatare si ha la necessità di disporre di modi migliori per:

la rappresentazione della conoscenza dichiarativa, quale quella relativa a classi e relazioni, senza introdurre specifiche conoscenze di informatica;

la rappresentazione delle regole;

la definizione della struttura di controllo (dipendente o indipendente dai domini di conoscenza).

Si deve quindi cercare di spostare in avanti, per quanto concerne l’elaborazione della conoscenza, la linea di demarcazione fra la conoscenza umana e quella dell’elaboratore. Superare il tradizionale approccio algoritmico così da poter adattare all’automazione attività di elaborazione che si ascrivono agli esperti.

Torna all'inizio

CALCOLO DEI PREDICATI E INFERENZA LOGICA

1. Il calcolo dei predicati e la rappresentazione della conoscenza

Nel campo dei sistemi esperti è stata condotta durante gli ultimi venti anni un’ampia ricerca all’interno della disciplina dell’Intelligenza Artificiale, che ha tra i suoi principali obiettivi la progettazione di programmi capaci d’intraprendere attività per le quali veniva ritenuto necessario l’intervento dell’intelligenza umana. Le origini di tal iniziativa risalgono comunque più indietro, ad una delle prime discipline accademiche: la logica.

La logica si occupa criticamente della validità delle argomentazioni, cioè dei metodi atti a determinare se sia possibile trarre validamente conclusioni da fatti assunti. La logica è, inoltre, pertinente alla programmazione, dal momento che un programma è in realtà un insieme di asserzioni quasi logiche che vengono sottoposte a certi procedimenti in modo da generare una conclusione. All’interno della logica la nozione di «argomentazione vera» ha un significato preciso e ben definito: un’argomentazione è considerata vera se e solo se, qualora le sue premesse siano vere, le conclusioni tratte sono anch’esse vere. D’altronde la logica, dati i molti anni di sviluppo alle spalle , fornisce sia un formalismo ben definito e facilmente comprensibile per rappresentare dei fatti, sia regole per manipolarli.

All’interno del calcolo dei predicati i nomi delle relazioni vengono definiti «predicati» e gli oggetti vengono definiti «argomenti». Un oggetto può essere espresso o con una «costante» indicando così un particolare individuo o classe di individui, o con una «variabile», indicando che l’individuo o la sua classe di individui rimangono non specificati. Quando in una variabile si inserisce il nome di un oggetto (diviene, cioè, una «costante»), la variabile si dice «istanziata». Singole proposizioni, chiamate «atomiche», consistenti ognuna di un predicato e degli argomenti correlati, possono essere combinate per formare proposizioni composte mediante l’uso di «connettivi logici». Questi includono «e» (Ù ), «o» (Ú ), «non» (Ø ) e «implica» (® ).

Perché il calcolo dei predicati possa sottoporre a procedimento delle variabili, è necessaria una struttura supplementare nota come «quantificatore». Esistono due tipi di quantificatori: il «quantificatore universale», simboleggiato da «" », e il «quantificatore esistenziale», simboleggiato da «$ ». Un’ultima considerazione da fare è che la funzione dei connettivi logici e dei quantificatori nella costruzione di proposizioni composte da proposizioni semplici («atomiche») è governata da regole ben definite, denominate «regole di formazione». Queste mantengono il significato dell’insieme di proposizioni pur mutandone la struttura. Tali proposizioni composte, formate correttamente, vengono definite «formule ben formate» o in forma abbreviata «fbf».

Torna all'inizio

2. L’inferenza logica

Per elaborare la conoscenza utilizzando il calcolo dei predicati è essenziale che si sia in condizione di prendere un dato insieme di fatti e regole e di inferirne di nuovi.

Inoltre sarebbe desiderabile far questo in modo tale da poter essere sicuri della validità della nuova informazione. Si ha così bisogno di regole di livello superiore che all’interno della logica vengono definite «regole di inferenza».

La prima di queste è la regola «modus ponens»

A ® B , A |- B (« |- » è denominata «derivazione» e può venir letta come «PERCIO’»).

Un’altra regola è chiamata «specializzazione universale»

" (X) W(X), A |- W(A) afferma che se qualche classe di oggetti ha una proprietà, anche ogni individuo all’interno di quella classe avrà quella proprietà.

Esistono, all’interno del calcolo dei predicati, molte regole d’inferenza diverse che in questo ambito non menzioneremo.

Torna all'inizio

3. I problemi connessi al calcolo dei predicati nell’elaborazione della conoscenza

Il calcolo dei predicati è detto «monotono» intendendo con ciò che le conclusioni sono aggiuntive e non necessitano mai di essere riesaminate. Nella vita reale dobbiamo spesso modificare o ritrarre delle conclusioni quando si rendono disponibili dei fatti nuovi. I sistemi formali che ci pongono in condizione di farlo si dicono «non monotoni».

Per quanto riguarda l’automazione, un approccio non intelligente che non verrebbe mai adottato nella pratica, consisterebbe nell’applicare le regole d’inferenza alla cieca nella speranza che emerga alla fine una «dimostrazione». Tuttavia non sarebbe realistico, con un procedimento così semplicistico, aspettarsi che il programma funzioni in tempo reale.

Tanto per cominciare, molte delle dimostrazioni dipendono dall’adozione, a un certo punto, di nuovi assunti, in modo da rendere possibile l’applicazione di una regola in uno stadio successivo. Sarebbe pertanto necessario che l’elaboratore avesse delle aspettative sulle azioni future. Un secondo problema è dato dal fatto che l’applicazione cieca di alcune regole d’inferenza perfettamente valide porterebbe a una «esplosione combinatoria».

Apparirà pertanto evidente, allo scopo di adattare all’automazione dimostrazioni di calcolo dei predicati, la necessità di definire un procedimento, per decidere quali regole applicare, che impedisca un’esplosione combinatoria e comporti un ragionamento non combinatorio. Negli anni ’60, sia nel campo della logica che dell’Intelligenza Artificiale, è stata svolta un’intensa attività diretta alla scoperta di tali procedure efficaci, come vengono definite. Questi approcci presero due direzioni distinte:

Il primo approccio al problema del controllo, che fu adottato all’interno dell’Intelligenza Artificiale, abbandonò il principio di generalità e cercò delle tecniche d’elaborazione che fossero efficaci nei confronti di un determinato problema all’interno di un dominio specifico. Con queste tecniche, la capacità di elaborazione viene largamente derivata dalla grande quantità di specifica conoscenza di dominio codificata in un sistema e segue l’osservazione che gli esperti umani, quando risolvono dei problemi, utilizzano raramente procedimenti molto generali, ma raggiungono l’efficacia dal «sapere» di più in merito al problema. Si sono così sviluppati dei formalismi che sono più deboli in capacità espressiva, ma maggiormente suscettibili di essere sottoposti a computazione. Molti di questi approcci furono sviluppati usando il linguaggio Lisp.

Il secondo approccio si mantenne nella tradizione della logica in quanto cercò di conservare la generalità del calcolo dei predicati identificando delle procedure di dimostrazione che sono universali ma evitano il problema della selezione delle regole e dell’esplosione combinatoria. Questo approccio è stato soprattutto interessante nel campo della logica stessa, essendo l’investigazione dei metodi per l’automazione di dimostrazioni (definita «theorem proving») un oggetto degno a pieno diritto d’attenzione. Molti di questi approcci furono sviluppati usando il linguaggio Prolog che fornisce la combinazione di un metodo di «theorem proving» e una strategia di controllo particolarmente efficace.

Torna all'inizio

APPROCCI COMPUTAZIONALI ALLA RAPPRESENTAZIONE E AL CONTROLLO

1. Il passaggio a sistemi basati sulla conoscenza

L’approccio all’elaborazione della conoscenza da cui si sviluppò la tecnologia dei sistemi esperti differì da quello perseguito dai logici nel fatto che cercò delle tecniche per il controllo dell’inferenza che fossero specifiche ad un particolare dominio di conoscenza. Per avvicinarsi all’esecuzione umana, era necessario codificare in sistemi una considerevole parte di conoscenza del dominio.

Il fatto che si sia spostata l’enfasi dai problemi relativi alla costruzione di efficaci «motori inferenziali» d’uso generale a quelli relativi all’automazione della conoscenza umana ha portato inevitabilmente a un nuovo complesso di interessi.

La rappresentazione della conoscenza è solo uno dei problemi che sono alla base della programmazione della conoscenza. La facilità con cui un problema può essere risolto è in parte riferibile alla misura in cui può essere scomposto in un certo numero di sottoproblemi più semplicemente risolubili.

Torna all'inizio

2. Il Lisp, un linguaggio per programmare sistemi basati sulla conoscenza.

I progettisti necessitavano di un linguaggio che fosse più flessibile di quelli convenzionali; per sviluppare tale necessità fu sviluppato il Lisp, un nuovo e funzionale linguaggio di programmazione.

Il Lisp è basato sul lavoro svolto da McCarthy, nel corso degli anni ’60, sul calcolo non numerico. Da allora è stato soggetto a un notevole sviluppo ed ora è la lingua franca dell’Intelligenza Artificiale. L’acronimo Lisp sta per LISt Programming language.

Torna all'inizio

3. La rappresentazione del dominio di conoscenza

3.1. Le reti semantiche

La rappresentazione di una rete semantica è basata sull’idea antica e molto semplice che la «memoria» sia composta di associazioni tra concetti.

L’unità funzionale di base di una rete semantica è una struttura consistente di due punti, o «nodi», collegati da un «arco». Ogni nodo rappresenta un concetto e l’arco rappresenta una relazione tra coppie di concetti. Tali coppie di concetti posti in relazione possono considerarsi come rappresentanti un semplice fatto. Gli archi vengono etichettati col nome della relazione relativa.

L’arco è orientato preservando in tal modo la relazione «soggetto/oggetto» tra i concetti all’interno del fatto. Inoltre ogni nodo può essere collegato ad un numero qualsiasi di altri nodi, dando così origine alla formazione di una rete di fatti.

La scelta assennata di etichette di relazione permette di esprimere gruppi di fatti molto complessi . Un’etichetta di particolare importanza pratica nello sviluppo della rappresentazione per mezzo di reti semantiche è il collegamento di tipo «is-a» («è-un»), che è usato per indicare la qualità di essere membro di qualche classe di oggetti. Altri collegamenti di uso particolare per descrivere concetti di oggetti (normalmente dati come nomi e frasi nominali) sono «ha», che indica che un concetto è una parte dell’altro, e «è», che indica che un concetto è un attributo dell’altro. Utilizzando tali relazioni, è possibile rappresentare complessi insiemi di fatti.

Non era possibile, nelle notazioni base di rete semantica, rappresentare situazioni in cui un certo numero di oggetti separati fossero istanze dello stesso concetto generale. La distinzione tra oggetti specifici e concetti generali è fondamentale nell’uso di reti semantiche. Ai due differenti tipi di oggetti sono stati dati, perciò, nomi diversi. Un oggetto specifico è definito come «marcatura» («token») usando la notazione di Norman e Rumelhart, impiegando parentesi angolari - < > - per identificare nodi di marcatura; un concetto generale è definito come «tipo» e non ha nulla che lo identifichi in modo particolare. Gran parte della popolarità quasi immediata delle reti semantiche derivò dalla capacità d’elaborazione, procurata dal collegamento di tipo «is-a», nel costruire gerarchie di concetti. Le gerarchie di eredità forniscono un mezzo efficace per semplificare la nostra rappresentazione e per ridurre l’informazione che ci è necessario immagazzinare ad ogni nodo particolare. Ciò accelera considerevolmente l’elaborazione e la facoltà di recupero dell’informazione, dati dei quesiti generali.

Molti dei fatti che si può aver bisogno d’utilizzare in un programma basato sulla conoscenza riguarderanno degli «eventi», i quali sono spesso limitati dal tempo e dallo spazio. Ciò che si richiede è di sviluppare delle rappresentazioni di verbi in aggiunta a nomi. Mantenendo ancora la nostra distinzione tra tipi e marcature, un nodo verbale di marcatura viene a rappresentare l’evento specifico, mentre un nodo verbale di tipo rappresenta un «prototipo» d’evento. Sono stati sviluppati insiemi coerenti e comprensivi di relazioni verbali per singoli sistemi. Questi vengono solitamente definiti «relazioni di caso», secondo la relazione teoria della «grammatica dei casi» sviluppata da Fillmore. In breve, questa teoria tenta di render conto della struttura superficiale di una frase in termini di un insieme piccolo e chiuso di relazioni - «casi» - tra nomi (o frasi nominali) e verbi che si ritiene esistano all’interno della struttura profonda di frase.

Torna all'inizio

3.2. I frame

L’idea di organizzare le proprietà di qualche oggetto o evento in modo da formare un prototipo è formalizzata nella nozione di frame.

La forza dei sistemi di frame è nel fatto che quegli elementi presenti nella descrizione di un oggetto o di un evento sono raggruppati insieme; ad essi si può così accedere ed elaborarli come un’unità.

Il frame ha un nome che identifica il concetto descritto. La descrizione stessa è costituita da un insieme di descrizioni che vengono definite «caselle» e identificano gli elementi strutturali di base del concetto. Accanto a queste caselle vi sono degli spazi, i quali possono essere riempiti da un oggetto che rappresenti il valore corrente della casella. La casella «specializzazione-di» viene usata per costruire una gerarchia d’eredità in modo simile al collegamento di tipo «is-a» nelle reti semantiche. Un riempitivo di una casella può essere una costante o il nome di un altro frame. I più semplici sono quelli dati in lettere maiuscole che si riferiscono ad altri frame all’interno di un sistema di frame. Vi sono inoltre le etichette «unità» e «campo».

Le etichette «unità» e «campo» forniscono restrizioni standard: «unità» specifica che è necessario dare certi oggetti; «campo» specifica l’insieme di oggetti dal quale ne deve essere selezionato uno. Infine, vengono attribuiti ai riempitivi di unità e campo dei valori di default. Le etichette di frame «unità», «campo» e «default» vengono chiamate le «facce» della casella. Procedure inserite vengono richiamate dal riempitivo di faccia «calcola».

I frame sono solitamente organizzati in reti che rappresentano la struttura dei concetti generali all’interno dell’area del soggetto di interesse. La tecnica standard è di prendere una copia delle parti pertinenti del sistema e di istanziarle dando dei valori alle caselle attinenti ad individui. E’ da notare che, quando un frame viene istanziato con l’informazione relativa a un individuo, è dato un unico nome che identifica l’individuo in questione.

Torna all'inizio

3.3. Regole di produzione

La forma più popolare di rappresentazione della conoscenza in modo tale da mantenere il carattere procedurale è la «regola di produzione», che è semplicemente un programma consistente in una singola affermazione del tipo:

« SE condizione ALLORA azione»

I sistemi di produzione hanno tre componenti:

una di conoscenza consistente in un insieme di regole di produzione

una base dati che rappresenta lo stato attuale di qualche problema

una struttura di controllo che decide quali regole di produzione applicare

Chiaramente, in ogni sistema realistico, è verosimile che un certo numero di regole possa essere applicabile contemporaneamente in qualsiasi momento. Sarà così necessaria qualche struttura di controllo per decidere quale regola attivare.

Torna all'inizio

4. Problemi di controllo

I problemi del controllo nel campo dell’Intelligenza Artificiale vengono solitamente espressi in riferimento al concetto di ciò che viene definito come una «ricerca nello spazio degli eventi». Nella risoluzione di problemi basati sulla conoscenza non si ha, di solito, un metodo unico ed evidente per raggiungere una soluzione. Sarà così necessario esplorare diversi possibili percorsi, cercando di valutare ad ogni stadio le possibilità di successo. La struttura di controllo di un sistema di risoluzione di un problema definisce la strategia generale per scegliere dei percorsi.

L’approccio del tipo «ricerca nello spazio degli stati» deve molto a un precoce interesse nel gioco automatico. L’insieme di tutte le scelte possibili può venir rappresentato come un albero che si estende da una radice, lo stato iniziale, fino a un insieme di stati finali che rappresenta l’obiettivo. Persiste un problema potenzialmente serio nel risolvere un problema conducendo una ricerca esaustiva dello spazio degli stati. Nella maggior parte delle situazioni d’elaborazione della conoscenza spesso non è possibile trovare delle regole che garantiscano il successo. Frequentemente è possibile, tuttavia, trovare delle regole che aumentino le probabilità di successo. Tali regole si chiamano «euristiche», e una ricerca che ne comporti l’uso si chiama una «ricerca euristica».

Normalmente, una ricerca euristica ha bisogno d’accedere a un’informazione che le dica se e quanto stia agendo bene. Quest’informazione viene ricavata da una «funzione di valutazione».

Molta parte dell’attività svolta sulle strutture di controllo nel campo dell’Intelligenza Artificiale è stata dedicata a far fronte a queste complesse situazioni. Due strategie generali applicate con notevole successo ai sistemi esperti sono:

organizzare lo spazio del problema in modo che sia possibile, in uno stadio non avanzato della soluzione, dire se sia possibile che questa abbia successo, nel qual caso può essere evitata la necessità di compiere una ricerca sull’intero insieme di percorsi;

organizzare lo spazio del problema in un certo numero di sottospazi che abbiano poca, o nessuna interazione tra loro. Si può così risolvere ogni sottoproblema senza modificare la soluzione di problemi successivi.

L’applicabilità di strategie di controllo diverse è legata in grandissima misura alla struttura del dominio di conoscenza e può così essere meglio considerata nel contesto di un problema specifico.

Il processo di progettazione di sistemi basati sulla conoscenza può essere visto come un esercizio nell'identificare delle caratteristiche del dominio che porranno il problema in condizione di essere organizzato in modo tale da minimizzare il calcolo.

Torna all'inizio

SISTEMI ESPERTI ED ESPERTI RISOLUTORI DI PROBLEMI

1. Risoluzione di problemi basata sulla conoscenza

Passaggio dall’obiettivo di trovare alcuni metodi efficaci e di scopo generale per risolvere problemi a quello di meccanizzare la conoscenza di dominio effettivamente usata da esperti umani per risolvere problemi complessi.

Il progetto che aprì la strada a questo mutamento fu Dendral. Il gruppo di ricerca Dendral si costituì all’università di Stanford nel 1965 per lavorare sulla progettazione di un sistema con lo scopo di aiutare i chimici ad inferire la struttura di composti chimici da dati spettrali di massa. L’incorporazione di un esplicito dominio di conoscenza in programmi di risoluzione di problemi si dimostrò di grande importanza pratica e teorica. Benchè la programmazione della conoscenza sia apparsa sin dal 1965 di grande importanza per una gamma molto ampia d’applicazioni, l’approccio ha continuato ad avere successo soprattutto per la risoluzione di problemi in campi che richiedono una notevole quantità di conoscenza personale da esperti. I sistemi d’elaborazione che meccanizzano tale conoscenza da esperti sono divenuti generalmente noti come «sistemi esperti».

I punti principali della saggezza convenzionale sono stati elencati da Davis, uno studioso eminente in questo campo, come:

separare il motore inferenziale dalla base di conoscenza;

usare una rappresentazione il più possibile uniforme (la forma preferita di rappresentazione sono le regole di produzione);

mantenere semplice il motore inferenziale (la struttura di controllo);

fornire qualche forma di strumento per mezzo del quale il sistema possa spiegare le sue conclusioni all’utente;

accordare la preferenza a problemi che richiedono l’uso di quantità sostanziose di conoscenza associativa empirica piuttosto di quelli che possono essere risolti utilizzando una conoscenza casuale o matematica.

I principi di cui sopra forniscono un efficace punto di partenza per la progettazione di sistemi esperti.

Esistono tra l’altro alcuni criteri che identificano le tecniche esistenti e derivanti dal gruppo Dendral.

La concentrazione su un campo ristretto con caratteristiche specifiche non comporta una grande quantità di conoscenza di senso comune.

Selezionare un compito che non sia né troppo facile né troppo difficile per esperti umani.

Troppo facile = alcuni minuti; troppo difficile = alcune ore. Non si miri ad un programma che sia un esperto nel dominio D, ma si miri a un esperto che svolga il compito C all’interno del dominio D.

Definire chiaramente il compito.

Il progettista dovrebbe essere in grado di descrivere la natura dei dati in ingresso e in uscita in modo piuttosto preciso, e l’esperto dovrebbe essere in grado di specificare molti dei concetti e delle relazioni importanti.

L’impiego da parte di un esperto con facoltà di parola è essenziale.

L’ingegnerizzazione della conoscenza non è possibile a meno che non vi sia un impegno a lungo termine di un esperto.

Esistono altri due criteri, discendenti dai precedenti, per la scelta dei compiti.

Si ha un netto vantaggio se l’area di interesse è già stata in parte formalizzata.

Scegliere domini che siano suscettibili di espressione verbale.

Torna all'inizio

2. Uno schema di classificazione per i sistemi esperti

Una relazione di Stefik e dei suoi colleghi presenta uno schema per la classificazione dei sistemi esperti. Si tratta di un ampio schema che organizza i sistemi in base al grado di capacità nell’affrontare problemi che non siano «ben strutturati», cioè che non sia adatto ad un’efficace risoluzione automatica. Data la rappresentazione di problemi in forma di spazio degli stati:

lo spazio di ricerca deve essere piccolo;

la conoscenza del dominio deve essere attendibile (non deve contenere errori e dev’essere coerente);

i dati forniti dall’utente devono essere attendibili e statici nel tempo ( i dati relativi a una risoluzione non devono perdere di validità man mano che la risoluzione procede).

Vantaggi:

1. In presenza di uno spazio piccolo non servono strategie di controllo complesse per mettere i programmi in condizione di funzionare nei limiti delle risorse della macchina. La soluzione potrebbe essere ottenuta conducendo una ricerca esaustiva nello spazio.

2. Se la conoscenza e i dati sono attendibili non dovrebbe mai essere necessario riesaminare una soluzione una volta data un’ulteriore informazione. La risoluzione dovrebbe procedere in «modo monotono» con le conclusioni che si aggiungono l’una all’altra man mano che vengono poste a disposizione nuove informazioni. Inoltre la soluzione sarà allo stesso tempo corretta e precisa; una conclusione non sarà mai approssimata in nessun senso e non sarà mai falsa. I dati statici garantiscono che quelle conclusioni che fanno affidamento su certi dati immessi rimarranno vere per tutta la durata della risoluzione.

Torna all'inizio

3. Il trattamento dell’evidenza incerta – Mycin

3.1. Introduzione

Fu sviluppato all’università di Stanford per assistere i medici con consigli sulla diagnosi e sul trattamento delle malattie infettive. I suoi obiettivi riguardano perciò l’identificazione degli organismi dannosi e il trattamento della malattia.

Opera su una base dati ben organizzata: la conoscenza delle malattie infettive.

La conoscenza tuttavia è spesso inesatta, si ha quindi la necessità di usare una forma di ragionamento plausibile. Al centro del sistema vi è quindi una tecnica per esprimere metri di credibilità, vale a dire il «carattere indicativo» o meno dell’evidenza in favore d’una conclusione data. I metri di credibilità vengono denominati «fattori di certezza» influenzati dalla teoria della conferma.

Il sistema è stato progettato con una struttura di controllo relativamente semplice la cui architettura è basata sull’approccio al sistema di produzione:

una raccolta di fatti;

un insieme di regole di produzione;

un motore inferenziale concatenato in avanti o a ritroso, in unione con una struttura di conoscenza che pone la struttura di controllo in condizione di decidere quale fra le aspiranti regole dovrebbe prender parte al meccanismo d’inferenza;

un meccanismo per trarre l’inferenza da un’evidenza incerta o incompleta.

Torna all'inizio

3.2. Fatti

I fatti sono memorizzati nella forma CONTESTO-PARAMETRO-VALORE.

Un contesto è un’entità reale come un paziente. Un parametro è un attributo del contesto come l’età ed il valore è un’istanza del parametro come 25 anni.

Ad ogni terna di fatti è associato un fattore di certezza (FC) con un valore tra –1 (negazione) e +1 (certezza).

Esempio: ORGANISMO1-IDENTITA’-PSEUDOMONADE .8 che significa "l’identità dell’organismo 1 è pseudomonade con fattore di certezza di .8".

All’inizio di una consultazione vi sarà un gran numero di tali terne e alcune di queste saranno incomplete.

Certe terne rappresentano gli obiettivi della consultazione e saranno ovviamente vuote all’inizio.

Torna all'inizio

3.3. Regole di produzione

Il ragionamento sul dominio si ottiene codificando la conoscenza di un esperto come un insieme di regole del tipo:

SE premessa ALLORA azione (FC)

La premessa è una congiunzione di terne e l’azione comporta di solito l’istanziazione di una terna. Il fattore di certezza FC della regola è usato in unione agli FC delle terne relative e in modo da calcolare fattori di certezza per la terna che rappresenta l’azione.

Una regola può essere applicata sia

a partire da premesse note per istanziare terne rappresentanti l’azione (concatenata in avanti, guidata dai dati);

a partire da una terna nota rappresentante l’azione per determinare quali terne rappresentanti la premessa necessitano di venir istanziate (concatenata a ritroso, diretta dall’obiettivo).

Le regole vengono ripetutamente applicate, dal momento che la conoscenza dipendente dal dominio è utilizzata per decidere quali regole considerare, finché la terna che rappresenta l’obiettivo viene istanziata. In qualche caso le regole istanzieranno la terna ponendo domande al medico.

Torna all'inizio

3.4. Calcolo del fattore di certezza

Quando si aggiunge alla base dati una terna vi si aggiunge anche il suo fattore di certezza. Questo fattore viene calcolato dal fattore di certezza della premessa, dal fattore di certezza della regola e dal fattore di certezza originale della terna se già esisteva.

Dapprima si calcola il fattore di certezza della premessa come quello minimo tra le sue clausole. Questo viene poi moltiplicato per il fattore di certezza della regola (della parte che ne rappresenta l’azione) in modo da fare un fattore di certezza CR. Se la terna non esisteva in precedenza, allora CR gli verrebbe assegnato come fattore di certezza. Se, invece, esisteva già con un fattore di certezza CI, il nuovo fattore di certezza FC viene calcolato come segue.

FC = CI + CR ( 1 – CI ) se CR, CI > 0

FC= - ( |CI| + |CR| ( 1 - |CI| ) ) se CR, CI < 0

FC = ( CI + CR) / ( 1 – min ( |CI| , |CR|)) se CI * CR < 0

Quest’approccio, relativo al fattore di certezza, permette al sistema di affrontare il ragionamento giudiziale. Fu progettato per essere naturalmente e facilmente comprensibile sia dagli esperti che hanno contribuito alla base dati sia agli utenti del sistema.

Torna all'inizio

3.5. Struttura di controllo dipendente dal dominio

La struttura di controllo consiste di un motore inferenziale per il concatenamento in avanti o a ritroso insieme a una struttura di conoscenza che pone il sistema in condizione di decidere quali regole applicare successivamente. L’ordine in cui le regole sono applicate non ha importanza. Tutte le regole pertinenti vengono applicate finché una regola particolare non giunge ad una conclusione certa, nel qual caso le regole restanti vengono ignorate.

La pertinenza di una regola viene definita dalla struttura di controllo dipendente dal dominio. Mycin fa uso principalmente del concatenamento a ritroso, benché alcune regole siano definite per essere applicate solo mediante concatenamento in avanti.

La conoscenza del controllo dipendente dal dominio è memorizzata come un albero di contesto. Quest’albero organizza le terne nella base di conoscenza in una gerarchia ed è utilizzato per dirigere il flusso della consultazione. La radice dell’albero è il punto di partenza per la scelta di obiettivi iniziali che il sistema tenterà di soddisfare.

L’albero è una gerarchia di tipi di contesto (o schemi), e le terne reali che esistono o vengono create durante la consultazione formano una struttura che imita quella dell’albero di contesto.

Una regola si riferisce sempre ad un tipo di contesto e le regole vengono raggruppate insieme in gruppi di regole definiti da un insieme di tipi di contesto applicabili. Tutte le regole che appartengono a un gruppo di regole che si riferisce a un contesto d’interesse sono prese in considerazione per essere attivate.

L’albero di contesto, col definire relazioni gerarchiche tra raggruppamenti di contesti e di parametro, guida in tal modo l’interprete delle regole durante la consultazione. Inoltre, dal momento che l’albero di contesto riflette la relazione esistente tra gli oggetti nel dominio, è d’aiuto nel fornire un sistema di consultazione che sia familiare all’utente.

Torna all'inizio

3.6. L’informazione che si ottiene dall’utente

La sequenza di domande poste al medico utente dipenderà dalle istanziazioni correnti della base dati.

Le domande vengono poste quando la regola fallisce, allo scopo di determinare dell’informazione necessaria, o quando l’informazione viene definita come proveniente da necessità dell’utente (cioè dati di laboratorio). Il progettista ha un certo controllo sul modo in cui l’informazione viene estratta. Una domanda, se non è stata compresa, può essere elaborata, permettendo così la creazione di gruppi diversi di domande per gli utenti esperti o inesperti.

Il progettista del sistema deve provvedere a un’accettabile interfaccia utente. Questo aspetto di Mycin non risulta essere interamente soddisfacente.

Torna all'inizio

3.7. Strumenti di spiegazione a disposizione

Mycin ha uno strumento per spiegare e giustificare la propria esecuzione; tale strumento è anche utile in situazioni educative. In qualsiasi momento l’utente può interrogare il sistema su COME o PERCHE’ abbia raggiunto una decisione, il compito di fornire tali «spiegazioni» viene semplificato sfruttando l’architettura basata su regole.

Quando gli viene chiesto PERCHE’ elenca dapprima la parte della regola contenete l’azione. Quindi elenca le premesse già istanziate e infine le premesse che si richiede siano istanziate dalla domanda. L’uso ripetuto di PERCHE’ viene interpretato come una richiesta di mostrare la regola successiva nella catena di ragionamento corrente. COME agisce nella direzione opposta.

Pur essendo uno strumento efficace è limitato ad esaminare le immediate vicinanze dello stato di ragionamento di Mycin durante la consultazione. Non vi è alcuna esplicita conoscenza causale del dominio di interesse.

Torna all'inizio

3.8. Conclusioni

La forma di rappresentazione basata su regole di produzione è ideale per un’area d’interesse in cui vi sia un’importante conoscenza empirica che debba ancora essere codificata in una struttura formale e di principi. Questo è sicuramente il caso del campo della diagnosi e del trattamento di infezioni di cui si occupa Mycin.

Oltre alla possibilità d’integrare tipi diversi di conoscenza , si può elaborare una miscela «povera» di fatti mediante l’aggiunta di un componente numerico, il quale esprime il grado di relazione che si crede esista tra loro (fattore di certezza).

L’architettura del sistema di produzione e il sistema di considerazione probabilistica si è dimostrata di notevole successo per quanto riguarda il suo utilizzo nella risoluzione di problemi diagnostici all’interno di aree d’interesse in cui predomini la conoscenza empirica.

Vi sono tuttavia dei punti deboli.

In primo luogo, ad esclusione dell’albero di contesto, ogni struttura causale o tassonomica all’interno della conoscenza codificata nelle regole di produzione non viene esplicitamente rappresentata, e così non è né visibile all’utente né direttamente disponibile per l’elaborazione.

Un secondo problema è che, mentre il semplice processo di ragionamento è progettato per essere comprensibile ad un utente, non è finalizzato a modellare i processi realmente adottati dagli esperti umani.

Il risultato è che un approccio di questo tipo sono efficacissimi per delle diagnosi all’interno di aree d’interesse ristrette e ben definite dove l’utente abbia già un’idea ragionevole della soluzione. Sono meno efficaci nei casi in cui le soluzioni siano molto complesse o l’utente sta lavorando con una relativa ignoranza delle soluzioni possibili.

Torna all'inizio

dolphin.gif (5307 byte)

 
"Le cose importanti non si trovano mai negli incartamenti"
J. W. Goethe

 

Inviare a dolphin group un messaggio di posta elettronica contenente domande o commenti su questo sito Web.
Aggiornato il 17-02-00.