4
da motivi di culto. Ne Ł conseguito che gli sviluppi teorici non sempre sono andati
di pari passo con i progressi nel campo delle applicazioni pratiche e l introduzione
di prodotti che avessero le caratteristiche di veri sistemi esperti Ł stata lenta. I
rivenditori di software hanno sfruttato il fascino che accompagna il concetto di
intelligenza artificiale per legittimare e promuo vere prodotti dalla portata e
utilit assai limitate. In effetti, il novero di si stemi esperti utili e incisivi rimane
relativamente basso nell uso comune.
Come anticipato gi all inizio sono molte le profes sioni che fanno utilizzo di
questi artefatti artificiali. Anche la psicologia clinica, nonostante i considerevoli
vantaggi apportati dall utilizzo di questi programmi, si muove con molta cautela.
Con lo svolgimento di questa tesi vorrei riuscire a portare un piccolo contributo a
favore delle possibilit concrete che tali software possono dare allo psicologo
clinico.
5
Capitolo 1
Struttura di un Sistema Esperto
1.1 Che cos Ł un Sistema Esperto
Uno dei settori piø evoluti dell Intelligenza Artificiale Ł quello dei sistemi esperti.
Qui e nel seguito si utilizzer il termine sistema esperto nell accezione meno
comune ma piø esatta di sistema basato sulla conos cenza . Per sistema basato
sulla conoscenza si individuano quei programmi in cui la conoscenza necessaria al
compito Ł esplicitamente rappresentata e manipolata (Iacono, 1991). In questo
senso i sistemi esperti si basano sulla manipolazione della conoscenza dell esperto
che si vuol clonare , e che viene rappresentata al l interno del sistema logico in
maniera esplicita.
Diversi sono i benefici che un sistema esperto pu fornire:
• consente di moltiplicare il numero degli esperti di un dato campo, supplendo
ad assenze temporanee (malattie) o definitive (dimissioni, pensionamento)
degli esperti umani;
• consente di standardizzare le prestazioni di un servizio in luoghi diversi e in
ogni situazione;
• consente di evitare agli esperti il trattamento dei casi semplici o standard, in
modo che essi possano concentrarsi su quelli piø delicati e difficili;
• consente di migliorare la prestazione nei casi di analisi di piø fattori
determinanti, con la considerazione di un numero anche alto di variabili in
gioco;
• consente di formare il personale non esperto evitando il costo iniziale di
inserimento e apprendimento, dovuto al fornimento di una prestazione
qualitativamente bassa e strettamente legata al grado di competenza
raggiunto.
In altri termini, un sistema esperto consente di migliorare il servizio perchØ rende
la conoscenza dei componenti nel settore disponibile a basso costo sia per altre
6
applicazioni sia per i meno competenti. Si pu affe rmare cioŁ che uno dei
maggiori vantaggi Ł la possibilit di condividere e diffondere conoscenza .
Tipici mansioni svolti da codesti programmi sono quelli di analisi finanziaria,
diagnosi, monitoraggio di apparecchiature, consulenza all investimento
finanziario, configurazione di componenti elettronici, etc
Schematizzando e riassumendo, i problemi che vengono solitamente affrontati
tramite sistemi esperti sono quindi:
• diagnosi;
• configurazione;
• interpretazione (di segnali, di eventi);
• previsione (costruzione di situazioni future);
• monitoraggio;
• pianificazione;
• controllo di processi;
• modifica di situazioni;
• training.
I ruoli che pu ricoprire un sistema esperto sono m olteplici e strettamente legati
alla delicatezza del compito (e quindi all entit d el rischio di un errore da parte del
sistema) e ai requisiti sui tempi di risposta. Quasi sempre la risposta finale del
sistema esperto non ha immediato effetto, ma viene mediata dall intervento
dell operatore umano. Un sistema esperto pu quindi essere:
• completamente autonomo: la risposta del sistema ha immediato effetto, e
modifica la situazione osservata;
• autonomo ma con controllo umano: vi Ł cioŁ un operatore che pu rettificare
il comportamento del sistema;
• di supporto ad un attivit , con funzione di consule nza;
• di supervisione ad una attivit , con funzione di tr aining.
7
1.2 Storia e applicazioni dei Sistemi Esperti
Le prime applicazioni dell IA ai sistemi esperti possono essere fatte risalire agli
anni 60. L ambiente di ricerca Ł quello delle universit statunitensi.
Il termine expertise (esperienza specifica) venne utilizzato per la prima volta nel
1967 da Joel Moses nella sua tesi di laurea sull Intelligenza Artificiale discussa al
MIT di Cambridge, ma gi nel 1961 aveva visto la luce il programma
MACSYMA, ancora basato su algoritmi tradizionali; seguito verso la met degli
anni 60 da DENDRAL, il primo classico esempio di generate and test, ovvero di
procedura euristica, destinato alla ricerca nel settore chimico.
I primi studi sulla comprensione e l elaborazione del linguaggio naturale
portarono nel 1967 alla nascita di HEARSAY, un programma concepito da
un equipe di ricercatori della Carnegie Mellon University per consentire il
colloquio fra esperti tramite una lavagna astratta costituita appunto dal computer.
Da DENDRAL in poi i Sistemi Esperti si orientarono in modo particolare alla
soluzione di problemi medici ed in questo settore una vera e propria pietra miliare
fu MYCIN che prese avvio come progetto nel 1972 all universit di Stanford.
EMYCIN fu nel 1979 il primo sistema inteso come strumento generale per lo
sviluppo specialistico di ulteriori programmi. Sul suo modello presero forma
programmi destinati a diagnosticare malattie polmonari (PUFF e CENTAUR),
per il cancro (ONCOCIN) ed anche per la diagnosi dei guasti industriali
(DART). Sempre per il settore medico fu realizzato, nei primi anni 70, CASNET,
caratterizzato dalla presenza al suo interno di uno schema generale utilizzabile
anche in sistemi con diversa specializzazione; mentre con ben diversa
specializzazione furono PROSPECTOR, realizzato nel 1979 da Peter Hart e
Richard Duda per la ricerca petrolifera; XCON poi divenuto R1, realizzato nel
1980 dal John Mc Dermott per progettare la configurazione hardware dei grandi
computer; e PLANT, realizzato nel 1981 da Ryszard Michalski dell Universit
dell Illinois per diagnosticare le malattie nelle coltivazioni di soia.
Attualmente, si pu disporre di una vasta letteratu ra a proposito dei sistemi esperti
e dei loro sviluppi. Vi sono anche, fortunatamente, un numero crescente di shell
affidabili e di facile impiego, utilizzabili con i personal computer.
8
Il ruolo dei sistemi esperti nel campo dell intelligenza artificiale Ł stato preso in
esame, a livello introduttivo, tra gli altri, da Garnham (1988) e Yazdani (1986).
Una buona introduzione a tali sistemi logici Ł fornita da Forsyth (1989) (benchØ
ve ne siano molte altre), mentre un testo piø tecnico Ł quello di Giarratano e Riley
(1989). Chi desidera acquisire una conoscenza meno teorica dei sistemi esperti
pu rivolgersi al manuale di Sawyer e Foster (1986) , che consente, attraverso
l uso di un insieme di procedure in linguaggio PASCAL, di realizzare
gradualmente un sistema esperto funzionante. Chi programma solo in BASIC pu
ottenere risultati analoghi servendosi del manuale di Naylor (1987). Un altro
metodo consiste nell acquistare una shell e lavorare con quella. Ancora una volta,
sono possibili numerose alternative ma Master Export (Thompson, Thompson,
1986) costituisce uno strumento di apprendimento utile e poco costoso.
1.3 Architettura generale di un Sistema Esperto
Ogni sistema esperto include tre elementi fondamentali: una base di conoscenza
(knowledge base), un motore inferenziale ( inference engine) e un sistema di
dialogo ( user interface).
La base di conoscenza comprende le informazioni, essenzialmente sotto due
forme: i fatti e le relazioni tra di essi. Piø semplicemente, la conoscenza includer
elenchi di fatti o osservazioni ci che generalme nte chiamiamo dati che,
nella terminologia dei sistemi esperti, sono chiamati valori .
La base di conoscenza includer anche i valori asse gnati a quelle che, nel senso
piø ampio del termine, sono dette variabili ma ch e, in questo contesto, sono
chiamate oggetti . Il risultato dell assegnazione di un particolare valore a una
variabile (come, per esempio, l attribuire il valore di 107 al QI di un paziente), Ł
una combinazione oggetto-valore . ¨ anche possibil e, naturalmente associare un
certo numero di valori (per esempio, l insieme delle registrazioni dell intensit
dell ansia nel corso di una mattinata) a un singolo oggetto (ad esempio, mattinata-
ansia) ottenendo cos una combinazione oggetto-val ori multipli .
9
Oltre ai fatti, la base di conoscenza pu includere altri tipi di informazioni, quali i
valori legali , utilizzati per delimitare il domi nio (cioŁ l area di informazioni
all interno della quale operer il sistema) e le d omande che possono essere
utilizzate dal sistema per ottenere dall utente i valori da assegnare a oggetti
particolari. Ma, ancora piø importante, la base di conoscenza contiene anche le
regole che costituiscono una rappresentazione sim bolica delle relazioni tra le
informazioni che rientrano nel dominio. Queste regole sono relazioni logiche e
nella loro forma piø semplice Se A allora B assegnano un valore a un
oggetto sulla base di un altra combinazione oggett o-valore .
Spesso Ł negativo che un sistema esperto diventi troppo meccanico e non riesca a
cogliere la finezza del ragionamento umano sul quale, in definitiva, si basa. Un
modo per evitare questo rischio consiste nell introdurre nella base di conoscenza
alcuni elementi probabilistici. Si pu procedere in questo modo: includendo
esplicitamente alcuni fattori che possono essere piø o meno precisi; inserendo una
gerarchia di probabilit ; introducendo implicazion i deboli e altre tecniche
logiche atte a gestire le informazioni probabilistiche.
Il motore inferenziale Ł piø semplicemente un sistema logico in grado di
interpretare le regole in relazione ai contenuti della base di conoscenza, al fine di
pervenire a conclusioni valide (dal punto di vista logico). Indipendentemente dal
contenuto delle regole e dei fatti compresi nella base di conoscenza, esso applica
le proprie regole logiche per compiere tutte le inferenze possibili. Il motore
inferenziale piø semplice opera per concatenamento in avanti ( forward
chaining): cioŁ, parte dalle prime regole e fatti della lista e quindi procede
nell esame di quest ultima valutando la verit o la falsit di alcune mete
prestabilite. La meta pu consistere, per esempio, nel valutare se il paziente ha
una demenza di tipo Alzheimer oppure no.
Gran parte del ragionamento logico che caratterizza gli esseri umani procede nello
stesso modo: parte, cioŁ, da assiomi e considerazioni e procede nella verifica delle
diverse deduzioni. Ci nonostante, questa strategia pu risultare decisamente
inefficiente. ¨ possibile che, in un caso specifico , siano necessari solo uno o due
fatti per arrivare alla meta ma che questi possano essere identificati solo molto
avanti nella lista, man mano che il sistema procede. Questo problema pu essere
10
risolto utilizzando un concatenamento all indietro ( backward chaining): cioŁ,
dando per scontato il risultato (la validit dell i potesi) e andando a cercare quelle
condizioni che devono verificarsi per confermarla. A questo punto, pu essere
necessario procedere, attraverso il sistema, alla ricerca di ulteriori precondizioni
che dimostrino la verit del risultato del quale si Ł postulata la validit . In pratica,
i sistemi attuali piø sofisticati si avvalgono di una combinazione di procedimenti
in avanti e all indietro, talvolta associati ad altri procedimenti euristici, al fine di
migliorare l efficienza logica del sistema esperto.
Il sistema di dialogo consente al sistema di comunicare con il programmatore
(knowledge engineer: ingegnere della conoscenza) e l utente finale. Esso permette
di creare e modificare la base di conoscenza tramite l introduzione e la modifica
delle regole e dei fatti; di porre all utente le domande necessarie ad assegnare i
valori agli oggetti; di comunicare le conclusioni ed esplicitare il procedimento
seguito. Il ruolo di queste esplicitazioni Ł cruciale per due motivi. Se il sistema
non Ł in grado di comunicare le inferenze logiche delle quali si Ł avvalso per
raggiungere una meta particolare Ł quasi impossibile verificare e affinare il suo
funzionamento. E altrettanto importante se il s istema non Ł in grado di
esplicitare all utente il percorso logico seguito, Ł improbabile che le sue
conclusioni vengano accettate. Il sistema deve essere capace di persuadere l utente
della validit delle proprie conclusioni se vuole e ssere considerato corretto.
Spesso, le componenti fondamentali di un sistema esperto sono fornite sotto forma
di shell. Quest ultima comprende un motore inferenziale e un sistema di dialogo
ed Ł dotata di una struttura gi predisposta per ricevere particolari regole e fatti.
A tutt oggi, la maggior parte dei sistemi esperti, commerciali o meno, viene
prodotta utilizzando una di queste shell.
Una caratteristica cruciale di ogni sistema esperto Ł il tipo di rappresentazione
della conoscenza che esso utilizza. I sistemi basati su un insieme di regole (rule-
based system) sono i piø comuni (soprattutto in campo medico), ma vi sono altre
modalit attraverso le quali Ł possibile rappresentare la conoscenza: script, frame,
lavagne, specifiche procedurali e cos via. Il fine Ł quello di fornire strutture
naturali di rappresentazione della conoscenza, ch e permettano di archiviare
l informazione secondo modalit efficienti e valide ecologicamente.