Introduzione ai sistemi ad Intelligenza Artificiale

Analogia tra neuroni umani e reti neurali artificiali

 

Introduzione ai sistemi ad Intelligenza Artificiale

di Salvatore Poma

Il concetto di intelligenza non è mai stato ben definito. La maggior parte dei tentativi per chiarirlo usano espressioni a loro volta imprecise ed ambigue. Molti non ritengono di poter attribuire il predicato "intelligente" ad alcuna macchina e limitano tale proprietà - per lo più per definizione - solo all'uomo. Tale definizione, comunque, non getta alcuna luce sul problema. Più utile è la seguente definizione: l'intelligenza è la facoltà di adattarsi ad un mondo che cambia. Quanto più questa facoltà di adattamento è spiccata e molteplice, tanto più il sistema è intelligente.

Secondo questa definizione sono intelligenti non solo gli uomini, ma tutti gli esseri viventi ed anche alcune macchine.

I sistemi di intelligenza artificiale vengono spesso messi a confronto con le facoltà intellettuali dell'uomo. E così i critici giungono soddisfatti alla conclusione che il computer è una macchina stupida che sa calcolare in modo eccezionalmente veloce, incapace però di creare o realizzare alcunché.

Quando si verifica il contrario si pongono allora nuove mete e quelle raggiunte non vengono più considerate. Così si era affermato che il computer non avrebbe mai imparato a giocare decentemente a scacchi. Poiché invece l'ha fatto, si dice allora che non saprà mai comporre una sinfonia. Se poi ciò un giorno accadesse, si pretenderà che sappia ridere ad una battuta...

Effettivamente, le prime realizzazioni di intelligenza artificiale si erano poste degli obiettivi troppo elevati per le limitate capacità dei nostri computer: per esempio si credeva che per fare una traduzione bastasse fornire i vocabolari della lingua sorgente e di quella di destinazione e fissare quindi la corrispondenza tra i vocaboli equivalenti delle due lingue, oltre a impostare in un programma delle semplici regole di costruzione delle frasi.

I risultati furono piuttosto deludenti. E' famosa la frase "lo spirito è forte, ma la carne è debole" che, tradotta in russo e ritradotta nella lingua originale, suonò all'incirca "la vodka è buona, ma la bistecca è immangiabile".

Queste considerazioni possono anche essere divertenti ma non vanno certo al cuore del problema. Non si vuole infatti creare una macchina "ad immagine e somiglianza" dell'uomo, ma più semplicemente aumentare le capacità dello strumento computer.

Di conseguenza è del tutto irrilevante che la macchina non sia capace di imitare l'uomo in una sua determinata attività.

La velocità dei moderni computer é misurabile in nanosecondi mentre quella dei nostri neuroni lo é in millisecondi. Dal nostro tempo di reazione, valutabile in circa mezzo secondo, per riconoscere un'immagine o un testo, si può dedurre un numero di circa 100 passi di elaborazione che coinvolgono però un numero enorme di cellule neurali. Perciò, l'efficacia del sistema biologico è chiaramente attribuibile all'elaborazione parallela. Non sappiamo però nulla sulle leggi di concatenamento, di elaborazione e di riduzione dell'informazione.

Se si esclude quindi l'imitazione del comportamento umano e si limita il campo applicativo a particolari settori specialistici già oggi si può attribuire allo strumento computer un comportamento intelligente.

Considerato che il computer può essere usato non solo per l'elaborazione numerica ma anche per quella simbolica, si sono poste infatti sin dagli anni '50 le due seguenti domande fondamentali:

 può uscire da un computer di più di quanto ci si è messo in termini di programma?

 può una macchina in qualche modo "pensare"?

Alla prima domanda si rispose affermativamente già nel 1960. Si era scritto un programma per computer che dopo un certo periodo di addestramento giocava a dama meglio dei suoi creatori e che ancora oggi riesce a non farsi battere dai migliori giocatori.

La seconda domanda portò ad una discussione senza fine sul concetto del pensare. Per evitare l'infruttuosa disputa il matematico inglese Turing propose nel 1950 il suo famoso test: un osservatore è collegato tramite un terminale ad altri due terminali, dei quali si sa soltanto che ad uno è addetto un uomo, all'altro una macchina. Se una persona, che intrattiene il dialogo sia con l'uomo che con la macchina attraverso il terminale non riesce a distinguerli, allora bisognerebbe concedere anche alla macchina la facoltà di "pensare".

 La realizzazione di una macchina che superi il test di Turing è un traguardo che non può essere mai raggiunto, perché il pensiero umano è improntato anche di relazioni sensitive e sociali che restano proscritte ad un computer. E così siamo di nuovo al punto di partenza: vale veramente la pena di confrontarne il comportamento con quello dell'uomo?

Mentre il gioco della dama o degli scacchi si svolge secondo regole fisse e perciò può essere ridotto, almeno in linea di principio, ad un programma, ciò non vale per la maggior parte dei settori della conoscenza di cui si occupa l'intelligenza artificiale. Uno dei suoi compiti principali è l'elaborazione della conoscenza, e cioè il ricavare delle conclusioni da determinati fatti. Ciò detto, si possono seguire due vie:

 l'approccio psicologico e cioè realizzando sul computer modelli del comportamento con cui l'uomo risolve i problemi, sperando così di capire il funzionamento del cervello (modello funzionale);

 l'approccio ingegneristico e cioè utilizzando qualsiasi metodo che produca risultati positivi (modello realizzativo).

 Si consideri l'esempio del volo: l'imitazione del volo degli uccelli è rimasto infruttuoso, mentre le ricerche sistematiche su modelli in gallerie a vento hanno portato alla teoria della aerodinamica e quindi sia alla spiegazione del meccanismo del volo degli uccelli che alla realizzazione delle macchine per volare.

Le prime realizzazioni dell'intelligenza artificiale irradiavano un grande ottimismo. I primi lavori importanti sono raccolti nel classico "Computers and Thought" di Feigenbaum e Feldman del 1963.

Vi si trovano il giocatore di dama, il dimostratore di teoremi geometrici; il programma SAINT per l'integrazione simbolica, la Logic Theory Machine ed il General Problem Solver. I limiti allora riconosciuti erano quelli della capacità di memoria e della velocità di elaborazione.

Il campo dell'intelligenza artificiale può dividersi nei seguenti settori principali:

- psicologia della conoscenza;
- giochi;
- dimostrazioni e programmazioni automatiche;
- robotica;
- comprensione delle immagini;
- sistemi linguistici naturali;
- Sistemi Esperti

Per operare nel settore dell'intelligenza artificiale è necessaria un'alta specializzazione in più aree di ricerca. C'è tuttavia un nucleo comune di metodi, tecniche e strumenti che viene utilizzato nelle varie specialità, cosi costituito:

- la logica;
- le strategie di ricerca euristica;
- la rappresentazione della conoscenza;
- la pianificazione e la soluzione dei problemi;
- l'apprendimento e l'acquisizione della conoscenza;
- l'hardware ed i linguaggi

 Una descrizione sia pure sommaria delle componenti di questo nucleo è un buon modo per rendere più evidenti e comprensibili le caratteristiche peculiari dell'intelligenza artifiiciale.

GIOCHI

I giochi, intesi come modelli teorici di problemi reali, costituiscono utili ambienti nei quali studiare la natura e la struttura dei processi di risoluzione dei problemi. Si spera tramite essi di ottenere delle soluzioni particolari da cui ricavare poi metodi generali.

Anche se i giochi costituiscono un microcosmo nel quale sperimentare i metodi dell'intelligenza artificiale, non debbono però restare fine a se stessi. Dice a proposito Feigenbaum: "l'intelligenza si è sviluppata in un mondo senz'ordine con il quale il mondo delle regole dei giochi ha ben poco a che fare".

RETI NEURALI
Le reti neurali offrono interessanti esempi di applicazione:

Quando, per esempio, si vogliono rilevare con dei sensori delle grandezze intangibili, queste vanno scomposte in grandezze tangibili e cioè rilevabili con i sensori esistenti. I dati forniti da questi sensori vanno poi opportunamente correlati fra loro. La correlazione esistente tra le grandezze rilevate è spesso ignota a priori, il che rende la rilevazione di una grandezza intangibile un problema generalmente difficile.

L'impiego di sensori elementari in unione ad un sistema a rete neurale rende possibile la determinazione della correlazione cercata e quindi possibile il controllo del sistema di automazione.

Il sistema a rete neurale, a somiglianza della mente umana, è in grado di elaborare grandi quantità di dati d'ingresso, apparentemente tra loro non correlati, e di produrre in uscita una decisione utilizzabile. La sua capacità di apprendimento è la caratteristica fondamentale che rende possibile scoprire nella massa dei dati la correlazione cercata.

La prima fase per creare il modello del sistema consiste nella raccolta di tutti i dati necessari e questa è certamente la fase che richiede più tempo perché vanno esplorate tutte le possibilità.

Ad esempio, nelle industrie alimentari, dove si vuole rilevare la grandezza intangibile costituita dal sapore, vanno raccolti innumerevoli campioni di caratteristiche diverse.

Da un lato i campioni vanno analizzati con i sensori tradizionali di grandezze tangibili, come il pH, gli ingredienti chimici, il colore ed altri parametri, e vanno raccolti i dati relativi al processo di produzione come il tempo di cottura, la temperatura, etc. Dall'altro lato i campioni vanno esaminati e valutati empiricamente sulla base del giudizio soggettivo di esperti umani. Infine ne va fatta una classifica in modo da definirne il limite di accettabilità.

La seconda fase consiste nel fare apprendere alla rete neurale, sulla base dei dati raccolti nella prima fase, le relazioni esistenti tra i dati d'ingresso forniti dai sensori e le uscite desiderate fornite dagli esperti umani. Anche questa fase di addestramento del sistema può richiedere molto tempo.

Se l'uscita richiesta è un sapore particolare, il sistema deve scoprire ed imparare la relazione che esiste tra tutti i dati d'ingresso relativi alle grandezze tangibili e l'uscita corrispondente a quel determinato sapore. In questa fase si scoprono anche quali ingressi non hanno alcuna influenza sul risultato d'uscita e si può cosi procedere alla loro eliminazione.

La terza ed ultima fase ha lo scopo di provare e convalidare il sistema completo. Una prova molto significativa consiste nel sottoporre all'esame del sistema campioni diversi da quelli usati nell'addestramento. È questo un criterio di verifica generale e fondamentale dell'apprendimento, sia di esseri umani che di macchine: si è davvero imparato se si sanno risolvere problemi diversi da quelli usati come esempi durante l'apprendimento.

Se le uscite del sistema non corrispondono ai risultati forniti dagli esperti umani, può darsi il caso che siano stati trascurati dei fattori d'influenza e quindi il sistema deve essere sottoposto ad un nuovo ciclo di addestramento. Solo quando i risultati del sistema e degli esperti umani risultano compatibili, il modello può essere sviluppato in un prodotto con i relativi hardware e software.

Nonostante questi spettacolari successi l'uomo deve restare conscio dei limiti. La rappresentazione del sapere degli esperti in una base di conoscenza comporta sempre, a causa della riduzione ad aspetti esclusivamente formali, una più o meno grande semplificazione.

DIMOSTRAZIONE AUTOMATICA 

Le applicazioni di quel ramo dell'intelligenza artificiale, che è detto della dimostrazione automatica e che è derivato storicamente dalla matematica, sono estremamente significative per tutta l'informatica.

La "verifica di programma" deve provare che un dato programma produce effettivamente, in tutte le circostanze possibili, i risultati voluti. La "sintesi di programma" deve al contrario produrre un programma corretto per i compiti assegnati.

Si può inoltre, con opportuni meccanismi di deduzione, applicati a sistemi di banche di dati, rendere disponibile all'utente conoscenze non esplicitamente immagazzinate, ma derivate da eventi. Le leggi della logica sono semplici, ma non altrettanto è la strategia per l'esecuzione delle dimostrazioni.

ROBOTICA

Foith osservò che la robotica è finora cresciuta in modo indipendente dall'intelligenza artificiale. Il mondo della produzione industriale si è infatti sviluppato, grazie a enormi investimenti, in modo da semplificare le condizioni di lavoro dei robot al punto tale da non richiedere intelligenza alle macchine.

Sulla scia dei robot Shakey, americano, e Freddy, inglese, ci si è invece orientati verso sistemi di manipolazione controllati da computer e dotati di intelligenza che possano eseguire lavori sgraditi o pesanti.

Una pietra miliare fu posta dal programma SHRDLU. Questo simula un robot ad un braccio che, in un mondo costituito dai pezzi di una scatola di costruzioni, può muovere cubetti, piramidi, scatole ed altri pezzi disposti su un piano.

Può eseguire comandi in lingua naturale, effettuando una serie complessa di manipolazioni, può rispondere alle domande "come, dove e perché", può immagazzinare informazioni, discutere i suoi piani ed eseguirli.

In questo caso si può parlare di comprensione perché la conoscenza del piccolo mondo in cui deve agire il robot è rappresentata internamente.

Le manipolazioni possibili corrispondono a procedure che, oltre a muovere i pezzi, traducono scopi ed azioni in strutture ad albero di cui ci si può servire secondo le richieste.

ELABORAZIONE DI IMMAGINI

L'"elaborazione delle immagini", con gli algoritmi di filtraggio, di "pulizia" e di aumento del contrasto, trasforma immagini in immagini. Il "riconoscimento degli oggetti" è un processo di classificazione di oggetti simili secondo determinati segni.

La "comprensione delle immagini" è ' basata sulla simulazione dei processi mentali di riconoscimento delle forme.

Da una enorme quantità di dati (ad esempio 500 000 punti per un'immagine video) si deve generare una rappresentazione condensata che possa descrivere il contenuto dell'immagine con una terminologia umana, come ad esempio "quell'albero a destra della casa". E ciò si può ottenere solo con metodi basati sulla conoscenza.

B. Neumann afferma che "anche se non esiste ancora un sistema per la comprensione delle immagini di impiego sufficientemente generale, le conoscenze ed i metodi finora acquisiti consentono tuttavia le prime applicazioni particolari, ad esempio nella robotica".

Quando cerchiamo un oggetto e non lo vediamo, pur avendolo sotto gli occhi, ci rendiamo conto che la visione non è solo un processo fotografìco.

SISTEMI LINGUISTICI

All'inizio dell'intelligenza artificiale si era tentata la comprensione dei testi con alcuni algoritmi. Si era creduto che per fare una traduzione bastasse fornire i vocabolari della lingua sorgente e di quella di destinazione e fissare quindi la corrispondenza tra i vocaboli equivalenti delle due lingue, oltre a impostare in un programma delle semplici regole di costruzione delle frasi. I risultati furono piuttosto deludenti. E' famosa la frase "lo spirito è forte, ma la carne è debole" che, tradotta in russo e ritradotta nella lingua originale, suona all'incirca "la vodka è buona, ma la bistecca è immangiabile".

L'esempio fatto ha mostrato chiaramente perchè questo tentativo fosse destinato a fallire. Anche l'uomo capisce solo quando il suo obbiettivo è situato in una certa "cornice" di conoscenza. La conoscenza memorizzata è pertanto una componente essenziale dell'intelligenza artificiale.

Vedere e parlare sono per l'uomo processi naturali ed è merito dell'intelligenza artificiale se la ricerca dei modelli di queste facoltà ci ha resi coscienti per la prima volta della loro enorme complessità.

La comprensione di una lingua richiede la comprensione del testo ed il riconoscimento della lingua. Un programma è in grado di "capire" se possiede una rappresentazione interna sia dell'espressione linguistica che dell'ambiente.

Si comprende così il carattere interdisciplinare dell'intelligenza artificiale. Senza utilizzare conoscenze linguistiche e psicologiche, i fenomeni dell'elaborazione linguistica umana non sono formalizzabili.

Uno dei primi e più noti programmi di questo tipo fu "Eliza", scritto da Weizenbaum nel 1966. Nella versione "II dottore" simula uno psicanalista ed è in grado di condurre con il paziente un dialogo impressionante.

Il programma in realtà non capisce; non possiede infatti una rappresentazione interna, ma utilizza delle parole chiave e delle regole "intelligenti" per generare da frasi in ingresso delle frasi in uscita.

Ad esempio alla parola "madre" risponde con "mi dica di più sulla sua famiglia". L'intelligenza del dialogo è un'illusione, ma non è forse lo stesso di molti discorsi che si tengono nei party?

PIANIFICAZIONE 

per pianificazione si intende il processo preliminare di scelta della sequenza di azioni e dei modi di agire che devono essere messi in atto per conseguire un obbiettivo. La pianificazione può essere quindi intesa come controllo del procedimento di soluzione di un problema. Nelle situazioni reali vi sono però da prendere decisioni anche sulla base di informazioni incomplete o difettose.

Storicamente significativo è il simulatore di comportamento umano "GPS: General Problem Solver", sviluppato da Newell, Shaw e Simon nel 1959, basato sul concetto della cosiddetta "Analisi mezzi-scopi" (Means-End Analysis).

Secondo tale metodo viene ricavata la "differenza" tra due posizioni, inizialmente quella di partenza e quella di arrivo, e si cerca quindi con opportuni operatori di raggiungere una posizione intermedia che diminuisce detta differenza.

I.'esempio di un viaggio da Piacenza a Roma, utilizzando treno ed aereo, potrà servire a chiarire le idee. Per le grandi distanze viene scelto l'operatore "Aereo": A(Milano-Roma)". Per le medie distanze si sceglie l'operatore "Treno": T(Piacenza-Milano).

Poiché l'impiego degli operatori presuppone determinate condizioni iniziali, come la stazione o l'aeroporto, le eventuali lacune vengono colmate dagli operatori "Autobus" o "Camminare".

È interessante notare che nell'esempio fatto l'impiego del primo operatore T(Piacenza-Milano) aumenta la distanza fisica ma diminuisce quella di problema. IL GPS funziona secondo un concetto di pianificazione gerarchico, secondo il quale viene prima considerata la struttura generale completa e poi vengono elaborate le soluzioni di dettaglio (top-down) secondo un affinamento progressivo.

Oltre alle strategie seriali aono importanti quelle parallele o "cooperative". Con queste si ricavano, contemporaneamente ed in dettaglio, da componenti particolari del sistema, delle soluzioni parziali e cioè delle ipotesi di soluzioni che sono riportate su una "lavagna" e messe a disposizione di tutte le altre componenti del sistema.

La "distanza di controllo" coordina il collegamento (bottom-up) dei risultati parziali. Questo modello a lavagna è alla base del sistema Hearsay II, sviluppato nel 1977 per la comprensione della lingua parlata.

APPRENDIMENTO
L'apprendimento è riconosciuto come uno degli aspetti fondamentali dell'intelligenza artificiale perché è grazie ad esso che la conoscenza e le capacità possono essere acquisite e migliorate. L'interesse per l'apprendimento è andato crescendo notevolmente in questi ultimi tempi.

Poiché il problema principale nella realizzazione di un sistema intelligente è l'implementazione della conoscenza del particolare campo di applicazione, è molto sentito il bisogno di utilizzare programmi di apprendimento.

È utile distinguere vari metodi di apprendimento:

- meccanico o ripetitivo
- per modifica dei parametri
- per istruzione
- per esempi
- per analogia
- per osservazione e scoperta.

Nella forma più semplice dell'apprendimento, quella meccanica, la conoscenza è messa a disposizione esattamente nella forma in cui è direttamente utilizzabile dal programma e cioè come conoscenza di fatti.

Ad esempio nel caso di giochi da scacchiera i manuali offrono le possibili mosse di apertura. Le posizioni con le loro valutazioni possono essere richiamate all'occasione.

Nel suo famoso giocatore di dama, Samuel ha fatto un uso intelligente, oltre che dell'apprendimento meccanico, anche di quello per parametri.

Ogni posizione viene caratterizzata in duplice modo: staticamente, con l'ausilio di funzioni di valutazione euristiche nelle quali i fatti salienti (il vantaggio di pezzi, il controllo del campo, etc.) sono pesati con parametri variabili; dinamicamente, tramite la ricerca, limitata in profondità, nell'albero del gioco delle possibili mosse e contromosse.

Se la caratterizzazione di una posizione che è più in basso nell'albero è in memoria, allora il relativo valore può essere richiamato ed utilizzato per una miglior valutazione della situazione in atto.

La strategia di Samuel per l'apprendimento per parametri consiste nell'esprimere la conoscenza dinamica, ottenuta tramite una ricerca, con una semplice funzione di valutazione statica, nella quale i parametri vengono adattati.

Questo complesso processo ricorsivo porta a generare ed immagazzinare migliaia di posizioni con le relative valutazioni statiche e dinamiche. Per non far crescere senza limiti il loro numero Samuel ha introdotto un procedimento di cancellazione selettiva.

Nel caso di situazioni ricordate spesso viene incrementato un apposito contatore; nel caso di situazioni raramente utilizzate il contatore viene decrementato al di sotto di un certo limite e le situazioni corrispondenti vengono cancellate.

I valori iniziali dei parametri furono ricavati dagli esempi contenuti nei manuali del gioco considerato. I valori numerici vennero poi variati finché le mosse del programma corrisposero a quelle degli esperti.

Per l'ottimizzazione dei parametri vennero giocate migliaia di partite dal programma contro copie di se stesso. Il programma imparò dai suoi errori: ogni volta la copia vincitrice veniva scelta per un'ulteriore evoluzione. Dopo breve tempo il programma giocava meglio di Samuel stesso ed oggi deve ancora essere battuto dai migliori giocatori del mondo.

IL programma di Samuel ha dimostrato quanto sia fruttuoso il modello di realizzazione: vengono realizzati obbiettivi pari a quelli conseguiti dall'uomo, ma con meccanismi del tutto diversi.

Nell'apprendimento per istruzione la conoscenza di casi particolari deve essere espressa in regole astratte e generali, i dettagli devono essere integrati (operazionalizzazione). Nell'apprendimento per esempi debbono essere ricavate da casi particolari regole per un più ampio campo di applicazione (generalizzazione).

Un importante metodo generale è costituito dalla Version-Space-Strategy introdotto da Mitchell nel 1977. Secondo questo si procede da esempi negativi e positivi per ricavare una descrizione particolare S ed una generale G. S e G sono coerenti con tutti gli esempi positivi ed escludono quelli negativi.

Ogni nuovo esempio positivo produce una più ampia generalizzazione ed ogni esempio negativo una ulteriore particolarizzazione, cosi che tutte le ipotesi possibili del concetto sono contenute negli spazi limitati S e G.

Nel corso dell'apprendimento si restringe il Version-Space fino a che resta un solo concetto, quello cercato.

Poiché la conoscenza è sempre incompleta, i programmi devono comprendere ipotesi su come le conoscenze di dettaglio possono essere integrate, specializzate o generalizzate tramite omissioni.

Risulta evidente che i programmi intelligenti presentano una struttura complessa e che debbono essere dotati di una conoscenza di base perché possano apprendere.

Si sono già citati i programmi di geologia applicata, usati soprattutto dalle grandi compagnie petrolifere. Un altro settore di grande interesse futuro è quello del diritto.

Negli USA si sta già sperimentando un sistema per usi fiscali. Sempre negli USA i clienti "più caldi" sembrano essere le compagnie di assicurazione ed i fabbricanti di automobili.

Molti professionisti che oggi non pensano neanche lontanamente che il computer possa eseguire del lavoro per loro (insegnanti, medici, avvocati) resteranno letteralmente senza parole se non si saranno preparati alla nuova situazione.