Sommario

 

 

 

 

1.0 Definizioni *

1.1 Brevi cenni storici *

1.2 Fondamenti teorici dell’Intelligenza Artificiale *

2.0 La macchina e il test di Turing *

2.1 I primi programmi di Intelligenza Artificiale *

2.2 L’analisi del linguaggio naturale in A.I. *

2.3 I moderni bots *

2.4 I sistemi esperti *

3.0 Le reti neurali *

3.1 A. L.: Artificial Life *

3.2 Automi cellulari *

3.3 Algoritmi genetici *

 

 

 

1.0 Definizioni

Non esiste una definizione univoca di ‘Intelligenza Artificiale’. Usualmente con questo termine, spesso abbreviato con l’acronimo A.I. (Artificial Intelligence), si designa una branca della scienza informatica e ingegneristica che studia i meccanismi soggiacenti alle facoltà cognitive degli esseri umani e la loro riproduzione mediante computer opportunamente programmati. L’obiettivo primario dell’A.I. è creare macchine in grado di pensare e agire come gli esseri umani.

La disciplina dell’A.I. è divisa in due aree fondamentali: la prima è la cosiddetta Intelligenza Artificiale forte che ritiene che un computer correttamente programmato possa essere veramente dotato di una intelligenza pura, non distinguibile in nessun senso importante dall’intelligenza umana, una sorta di macchina dotata di mente in senso pieno e letterale. L’idea alla base di questa teoria è il concetto che risale al filosofo empirista inglese Thomas Hobbes, il quale sosteneva che ‘ragionare non è nient’altro che calcolare’: la mente umana sarebbe dunque il prodotto di un complesso insieme di calcoli eseguiti dal cervello.

La seconda area, in netta contrapposizione con la prima, è detta Intelligenza Artificiale debole e sostiene che un computer non sarà mai in grado di essere equivalente a una mente umana ma potrà solo arrivare a simulare alcuni processi cognitivi umani senza riuscire a riprodurli nella loro totale complessità.

Le due declinazioni di A.I. convogliano le proprie teorie nella comprovata necessità di elaborare l’informazione che sta alla base dei processi cerebrali (rappresentata da simboli discreti) attraverso dei programmi informatici: questo è il punto di partenza della cosiddetta Intelligenza Artificiale classica.

 

 

1.1 Brevi cenni storici

 

L’espressione ‘Artificial Intelligence’ è stata utilizzata per la prima volta in ambito scientifico da John McCarthy durante uno storico convegno tenutosi nella città statunitense di Dartmouth nel 1956.

Già nel 1952 Marvin Minski parlava di ‘intelligenza artificiale’ nella sua tesi di oltre mille pagine presentata per il dottorato di Matematica presso l’Università di Princeton. Minski sarebbe poi diventato uno dei massimi studiosi dei processi mentali e delle loro applicazioni nei sistemi computerizzati (sono suoi gli studi sui ‘frames’, strutture che riproducono il concetto di ‘stereotipo’ per le macchine intelligenti).

Alla base dei moderni studi sull’intelligenza artificiale si colloca però un’altra disciplina fondamentale, la scienza cognitiva. Si tratta di un’area di studi sviluppatasi negli ultimi trent’anni e intersecante diverse materie (linguistica, filosofia, psicologia e neuroscienze) e il cui oggetto è lo studio dei sistemi intelligenti, sia naturali che artificiali. Essi vengono trattati come sistemi di elaborazione dell’informazione che interagiscono con un ambiente complesso.

Un’altra area di ricerca fondamentale per un’analisi esaustiva dell’intelligenza artificiale è il moderno connessionismo: esso sostiene che per ottenere un comportamento intelligente da parte di una macchina occorre riprodurre o perlomeno simulare il funzionamento del cervello a livello cellulare. Poiché il cervello è costituito da un numero di neuroni che varia tra 10 e 100 bilioni, e ciascuno di essi è connesso a un numero variabile tra 10 e 10.000 altri neuroni attraverso sinapsi, secondo i teorici del connessionismo è necessario ricostruire con strumenti informatici la fitta rete di connessioni che legano tra loro le cellule neuronali per riuscire a creare una macchina realmente pensante.

 

1.2 Fondamenti teorici dell’Intelligenza Artificiale

 

Sono stati enucleati alcuni fondamenti teorici unanimemente considerati alla base della moderna A.I.:

Le rappresentazioni, inoltre, sono definite analogiche se vi è un rapporto di somiglianza o analogia con l’oggetto che rappresentano, oppure analitiche se vengono effettuate mediante formule matematiche.

La nozione di calcolo intesa come manipolazione di simboli in base a regole esplicite descrive il funzionamento di quei sistemi che operano a partire da un insieme finito di elementi di base formalmente distinti e a un insieme finito di regole che specificano le possibili trasformazioni di quei simboli. I sistemi così definiti vengono denominati sistemi formali. Molti giochi (per esempio il backgammon, la dama o gli scacchi) sono sistemi formali. Secondo i teorici dell’A.I. anche il pensiero umano può essere descritto come un sistema formale.

 

2.0 La macchina e il test di Turing

 

Uno degli obiettivi dei primi studiosi di Intelligenza Artificiale è stato realizzare una macchina che funzionasse come un sistema formale.

Le caratteristiche di una macchina siffatta sono state definite rigorosamente dal grande matematico inglese Alan Turing (1912-1954) che diede un contributo fondamentale negli studi sull’A.I.

Nel suo saggio del 1936 ‘Sui numeri computabili con una applicazione al problema della decisione’ Turing immagina una macchina teorica in grado di compiere qualsiasi tipo di calcolo, di qualunque genere, facendo delle banali operazioni computazionali. Una macchina di Turing è costituita da un dispositivo che può scrivere e leggere simboli su un nastro. Il nastro è diviso in celle che possono contenere un solo simbolo ciascuna e può avere una lunghezza infinita. Il dispositivo, oltre a scrivere e leggere i simboli, può spostarsi a destra o sinistra, una cella alla volta. Si tratta di una macchina a stati finiti, un’automa, e può essere paragonato a un computer con memoria infinita. Il suo funzionamento avviene per passi successivi e ogni passo è determinato da regole precise che oltre a considerare il simbolo letto valutano anche il suo stato interno. Si può dimostrare che una macchina di Turing è in grado di simulare il funzionamento di qualsiasi sistema formale e che i moderni calcolatori sono equivalenti a una macchina di Turing.

La ‘testina’ di una macchina di Turing è quindi capace di tre sole azioni:

Una caratteristica fondamentale della macchina di Turing è che separa l’informazione in due elementi, il suo stato interno e ciò che ne deriva esternamente.

Le regole alla base di una macchina di Turing possono essere rappresentate attraverso un diagramma degli stati di transizione, quale potrebbe essere il seguente:

 

Stato | Lettura | Scrittura | Mossa | Stato successivo

S1 | 0 | 0 | Sinistra | S1

S1 | spazio vuoto | 1 | Sinistra | S2

S1 | 1 | spazio vuoto | Destra | S1

S2 | 0 | 1 | Destra | S2

S2 | spazio vuoto | 0 | Destra | S2

S2 | 1 | 1 | Sinistra | S1

 

Il potere di una macchina di Turing sta nella capacità di immagazzinamento del suo nastro. Supponendolo infinito, teoricamente l’output di una tal macchina sarebbe anch’esso infinito.

La macchina di Turing costituirebbe in pratica la rappresentazione meccanica di un algoritmo, ovvero di un insieme di istruzioni che specificano i passaggi tramite i quali si rende possibile la soluzione di un determinato problema. Il matematico Church ha inoltre espresso la congettura di Church: qualsiasi cosa sia calcolabile da un algoritmo, esso è calcolabile da una macchina di Turing. La macchina di Turing potrebbe eseguire tutti i procedimenti mentali trasformabili in un procedimento formale di passaggi, da uno stato all’altro. Senonché questa macchina, proprio perché basata su procedimenti formali, ne condividerebbe i limiti. Le proposizioni espresse nell’ambito di un sistema formale non sono infatti verificabili restando all’interno del sistema e ciò rappresenta un limite di incompletezza del sistema stesso.

Alcuni teorici dell’A. I. sostengono invece che il cervello è una specie di macchina di Turing e le operazioni che avvengono in esso sono una sorta di programmi. Questa teoria è detta teoria rappresentazionale della mente e in base a essa si potrebbero trovare le regola con cui il nostro cervello elabora i simboli, trasformarle in programmi e riprodurle artificialmente in un computer.

Per quanto riguarda il problema dell’arresto, cioè stabilire dall’osservazione della macchina di Turing se raggiungerà mai l’halt, è stato dimostrato che esso è indecidibile. A questo proposito è molto interessante quello che è noto come il problema del castoro industrioso (Busy Beaver problem): data una macchina di Turing con un certo numero di stati e un nastro vuoto, trovare la tavola di transizione che permette di scrivere il massimo numero di caratteri sul nastro ed eventualmente fermarsi senza andare oltre la fine del nastro. L’halt implica quindi che la macchina non deve finire in loop senza fine o oscillazioni. Lo studio del comportamento dei vari Busy Beaver risulta molto complesso anche a partire da pochi stati di una macchina di Turing e dà interessanti contributi sul problema dell’halt.

Alan Turing è inoltre l’autore di un test che è universalmente conosciuto come l’unico in grado di stabilire se una macchina è in grado di pensare o meno: viene infatti definita intelligente una macchina che riesce a superare il test di Turing. Si suppone di sottoporre un uomo e una donna a una serie di domande da parte di un interrogante che non ha contatti fisici con essi, per esempio attraverso una telescrivente o un computer. L’interrogante, in base alle risposte dei candidati che tenteranno di confonderlo, deve scoprire chi è l’uomo e chi è la donna. Se si sostituisce uno dei due candidati con una macchina e l’interrogante non riesce a distinguere l’essere umano dalla macchina, allora si può asserire che la macchina è intelligente. Finora nessuna macchina ha superato il test di Turing ma i sostenitori dell’A.I. forte ritengono che è solo questione di tempo.

 

2.1 I primi programmi di Intelligenza Artificiale

 

A partire dalla metà degli anni ’60, lo sviluppo della tecnologia dei circuiti integrati consentì il nascere di quella che viene definita la terza generazione dei computer. Con queste nuove macchine si rese possibile anche un salto qualitativo dei programmi ed una ricerca dell’A.I. applicata soprattutto alla comprensione del linguaggio umano, al calcolo simbolico ed alla rappresentazione semantica. Samuel nel 1963 scrisse un programma in grado di giocare a dama e di utilizzare l’esperienza acquisita durante le partite per migliorare le proprie prestazioni successive.

Uno dei primi programmi di A.I. ad avere successo fu Eliza, inventato nel 1964 da Joseph Weizenbaum, allora giovane ricercatore del MIT poi divenuto un prestigioso docente. Eliza (nome preso dall’omonima Eliza del ‘Pigmalione’ di G. B. Shaw) era in grado di sostenere una conversazione in inglese su ‘copioni’ prestabiliti di diverso argomento. La sua notorietà fu dovuta anche al ‘ruolo’ di psicanalista che Weizenbaum fece assumere ad Eliza, talmente realistico da far credere agli utilizzatori di essere davanti a un vero dottore.

Uno psichiatra, Kenneth Colby, realizzò poco dopo un programma simile ad Eliza che chiamò Parry, in grado di simulare il comportamento linguistico di un paranoico. Furono persino organizzate sedute di dialogo tra Parry ed Eliza, a detta di molti psichiatri estremamente realistiche.

 

2.2 L’analisi del linguaggio naturale in A.I.

 

Uno dei limiti caratteristici nel modo di procedere formale del computer è quello che la macchina ignora il significato dei simboli che va manipolando. E’ la distinzione esistente fra un procedimento sintattico, formato da proposizioni indecidibili, come possono essere le proprietà aritmetiche, ed uno semantico, ovvero connesso al significato di ciò che viene elaborato.

Il primo programma dotato di un modulo per la comprensione semantica del linguaggio umano fu SHRLDU sviluppato da T. Winograd fra il 1968 e il 1970. Il nome è ottenuto dalla sequenza di lettere dell’alfabeto inglese che va dalla settima alla dodicesima in ordine di frequenza decrescente.

Composto da un analizzatore sintattico, da un modulo semantico e da un risolutore di problemi, SHRDLU era in grado di comprendere il linguaggio naturale e di spostare a piacimento, tramite un braccio articolato, un gruppo di oggetti geometrici diversi per forma, misura e colore. La procedura di risposta ai comandi impartiti prevedeva una prima fase di riconoscimento della plausibilità sintattica della frase.

Quindi il computer passava all’interpretazione semantica ed infine alla fase operativa di constatazione circa l’effettiva esistenza degli oggetti e la possibilità di eseguire i movimenti indicati dall’operatore. SHRDLU, insomma, sperimentava la percezione del mondo esterno con rappresentazioni proprie di oggetti fisici. Sulla comprensione e la formulazione del linguaggio naturale furono iniziati a Yale da Roger Schank, alla fine degli anni ’60, studi particolari che portarono al programma ‘Margie’, proposto nel 1975 dallo stesso Schank. Il sistema, formato da tre moduli (un segmentatore di linguaggio, un modulo memorizzatore e di inferenza e un generatore di linguaggio) si basava su un modello di rappresentazione semantica chiamato dall’autore dipendenza concettuale. Sempre dalla scuola di Yale furono sviluppati altri programmi, come ‘Eli’, scritto da Riesbeck al fine di perfezionare la fase di segmentazione del linguaggio naturale, e ‘Babel’, scritto da Goldman per generare testi. I più recenti programmi elaborati a Yale, considerati come la terza generazione dei programmi di Intelligenza Artificiale, sono finalizzati come nel caso di ‘Sam’ (Script Applier Mechanism) alla comprensione testuale, ad esempio di pezzi giornalistici, oppure, come nel caso di ‘Pam’ (Plan Applier Mechanism) scritto da Wilensky, sono in grado di perfezionare l’informazione aggiungendovi significati non esplicitati nel testo in esame.

Le ricerche sull’elaborazione del linguaggio naturale (natural language processing) costituiscono uno dei settori di punta dell’intelligenza artificiale e sono oggetto di una ulteriore disciplina che si chiama linguistica computazionale.

L’elaborazione automatica del linguaggio naturale prende le mosse dalla teoria linguistica di Noam Chomsky, una delle personalità scientifiche più rilevanti del nostro secolo. Secondo Chomsky la capacità che ogni essere umano ha di capire e produrre frasi e discorsi nella sua lingua è dovuta ad un insieme di conoscenze presenti nella sua mente: definiamo questo insieme di conoscenze implicite competenza linguistica. Tale competenza è almeno in parte inconsapevole, visto che la maggior parte delle persone sono in grado di produrre e capire le frasi corrette, così come di individuare immediatamente gli usi scorretti della loro lingua, pur senza sapere il modo in cui questo avviene. La competenza linguistica, a sua volta, si suddivide in tre componenti: competenza fonologica, competenza sintattica e competenza semantica. La prima riguarda la capacità di un essere parlante di produrre e capire i suoni della lingua parlata; la seconda riguarda la capacità di produrre o riconoscere frasi grammaticalmente corrette; la terza riguarda la capacità di assegnare o di estrarre significato dalle frasi. Tutte queste capacità derivano dalla presenza nella mente di un insieme di regole ben precise, che sono simili alle regole di un sistema formale. Uno dei formalismi per la rappresentazione delle conoscenze più diffusi nella IA sono le cosiddette reti semantiche. La prima formulazione del concetto di rete semantica si deve a Ross Quillian, che lo elaborò nel 1968 per costruire un modello dell’organizzazione dei significati delle parole nella memoria e della capacità di associare concetti. Successivamente molti altri studiosi hanno proposto evoluzioni e potenziamenti del modello originale, senza però distaccarsi delle primitive intuizioni di Quillian. Secondo Quillian i concetti (o significati delle parole, che per quanto ci concerne possono essere considerati la stessa cosa) nella nostra mente sono organizzati in una struttura reticolare. Solo che in questa rete esistono due tipi di nodi: i nodi tipo e i nodi occorrenza. I nodi tipo corrispondono ai significati delle singole parole. Da ogni nodo tipo si dipartono una serie di collegamenti o archi che terminano nei nodi occorrenza. Questi ultimi hanno la funzione di descrivere il significato della parola in questione. Tale descrizione, come avviene nei dizionari, si basa sull’uso di altre parole che sono il contenuto dei nodi occorrenza. A sua volta ciascun nodo occorrenza è collegato mediante un arco al nodo tipo che ne specifica il significato: nella rete ogni parola deriva il suo significato da un certo numero di altre parole. Le reti semantiche come quelle cui abbiamo accennato nel paragrafo precedente hanno due limiti. In primo luogo ogni singolo concetto è considerato come un elemento unitario. Sebbene gli archi che collegano un nodo ad un altro possano essere considerati una rappresentazione articolata del significato di un termine, questa articolazione sembra comunque troppo limitata per rendere conto di tutte le varie componenti di un concetto. In secondo luogo la specificazione del significato di un concetto è estrememante rigida: ogni concetto infatti viene descritto mediante una serie di componenti obbligatori, un po’ come avviene nelle definizioni di un dizionario.

Questo modo di rappresentare la conoscenza è inadeguato per rendere conto del modo assai rapido in cui un essere umano è in grado di accedere alle conoscenze immagazzinate nella sua memoria e di utilizzarle per ragionare, comprendere un discorso in lingua naturale o riconoscere gli oggetti e le situazioni che gli si presentano. Per rendere conto di queste caratteristiche della nostra memoria concettuale, e per riprodurla su un computer, Marvin Minsky, uno dei pionieri dell’intelligenza artificiale, ha elaborato la nozione di frame (cornice). Si tratta di una nozione molto simile a quella di stereotipo. Un frame è infatti una struttura che raccoglie e organizza secondo vari livelli di obbligatorietà tutte le informazioni che sembrano comporre un determinato concetto. Alcune informazioni sono considerate necessarie, altre probabili e altre solo opzionali. I frames sono inoltre interconnessi tra loro in un modo molto ricco e articolato: ogni componente di ciascun frame è collegata al frame che ne descrive la struttura. Minsky è anche l’autore di una teoria della Società delle Menti, secondo cui la mente sarebbe organizzata in più ‘agenti’ fra loro intercomunicanti tramite canali che egli chiama K-Lines ed ordinati gerarchicamente secondo regole precise.

Una nozione (e un formalismo) simile a quella di frame è la nozione di script o copione, elaborata da Roger Schank e dal suo collaboratore Abelson. A differenza dei frame (in cui si rappresentano oggetti o stati di cose), gli script servono a rappresentare eventi o sequenze di eventi tipici. Furono sviluppati da Schank per consentire ad un programma di comprendere o parafrasare delle storie o delle brevi narrazioni.

 

2.3 I moderni bots

 

Ultimamente stanno avendo una notevole diffusione i bots, programmi che si trovano in rete (soprattutto nelle ‘chat’, in cui si dialoga in tempo reale con altri utenti connessi) e che simulano dialoghi spesso semplici con esseri umani ma sovente hanno un ‘nickname’ cioè un nome virtuale indistinguibile da quello degli utenti reali. Sono spesso utilizzati per gestire canali di conversazione o fare da arbitri in giochi interattivi. Sulla rete Undernet è storicamente attivo da diversi anni robbot, un elaborato bot che fa da supervisore al canale #riskybus (un quiz con tabellone) ed è in funzione 24 ore su 24. Sul sito del nuovo film di Steven Spielberg, ‘A. I. Artificial Intelligence’, all’indirizzo www.aimovie.com si può chattare con Chatbot e Alice, due bot dell’ultima generazione che sanno conversare in tempo reale in inglese con notevole proprietà di linguaggio e sono in apparenza indistinguibile da utenti in carne e ossa. Il film è tratto da un soggetto di Stanley Kubrick che, tra l’altro, nel suo film ‘2001: Odissea nello Spazio’ (1968) dava voce al computer intelligente dall’inquietante occhio rosso Hal 9000 in grado di conversare amabilmente in linguaggio naturale e di esprimere giudizi su opere d’arte e governare da solo l’astronave Discovery. Hal batteva a scacchi il protagonista Dave Bowman ma anche nella realtà Deep Blue, un computer progettato nei laboratori di ricerca della IBM, riuscì a battere nel 1997 al secondo tentativo Gary Kasparov, campione del mondo di scacchi. Deep Blue è una cosiddetta macchina parallela, cioè con molteplici processori che lavorano tutti insieme: ogni singolo processore esegue una parte dei calcoli necessaria a risolvere un problema, raggiungendo così potenze di calcolo elevatissime. Infatti per ogni turno un giocatore di scacchi dispone in media di 35 alternative. Per valutare tutte le possibili conseguenze di una sola mossa occorre verificare 35 x 35 = 1225 possibilità. Questo significa che per valutare le conseguenze dopo due mosse bisogna analizzare più di un milione di possibilità.

 

2.4 I sistemi esperti

 

Una delle più importanti applicazioni dell’intelligenza artificiale soprattutto a livello commerciale è rappresentata dalla creazione dei sistemi esperti. In estrema sintesi, si intende per sistema esperto un programma che è in grado di risolvere problemi complessi che rientrano in un particolare dominio, con una efficienza paragonabile a quella di uno specialista umano di quel settore. Ad esempio un sistema esperto potrebbe essere capace di fare diagnosi mediche esaminando le cartelle cliniche (opportunamente formalizzate) di un paziente; o potrebbe valutare tutti i fattori di rischio e le prospettive di guadagno di un determinato investimento finanziario.

Di norma tutti i sistemi esperti hanno i seguenti componenti: una base di conoscenza specialistica su un determinato dominio, che rappresenta il sapere necessario ad affrontare e risolvere problemi in quel campo. Ovviamente la base di conoscenza dovrà essere opportunamente rappresentata nella memoria del calcolatore mediante uno dei formalismi (o altri simili) precedentemente analizzati. Un motore inferenziale che sia in grado di dedurre, a partire dalla base di conoscenza, le conclusioni che costituiscono la soluzione a un dato problema che rientra nel dominio. Il motore inferenziale, che è il vero cuore del programma, funziona applicando alla base di conoscenze una serie di procedure euristiche simili a quelle sviluppate nell’ambito del problem solving. Tuttavia nella maggior parte dei casi alle euristiche generali si affiancano delle euristiche specifiche per l’argomento di cui il sistema si occupa. Infatti in ogni campo specialistico un esperto umano è in grado di escludere immediatamente e senza valutarle una serie di opzioni che sono manifestamente improduttive; una interfaccia utente che è costituita da un insieme di moduli informatici grazie ai quali un essere umano è in grado di interagire con il programma ponendo domande e leggendo le risposte. In allcuni casi l’interfaccia utente può anche prevedere dei moduli di aggiornamento della conoscenza, che consentono agli utenti di aggiungere nuovi elementi alla base dati originale.

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.

MYCIN fu il primo programma ad applicare la procedura di backward chaining, ovvero di ricerca all’indietro entro l’albero degli stati, e dal suo modello presero spunto altri sottosistemi destinati all’ampliamento degli studi sulla "spiegazione" (GUIDON), sull’"acquisizione della conoscenza" (TEIRESIAS) e sul "motore inferenziale" (EMYCIN).

EMYCIN fu nel 1979 il primo sistema inteso come strumento generale (tool) 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 (EXPERT) 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. Sia presso le università che nelle aziende specializzate (software house) l’ambiente in cui in un primo tempo s’era coltivata la programmazione avanzata è andato trasformandosi in ambiente di sviluppo per Sistemi Esperti.

 

3.0 Le reti neurali

 

Le ricerche di impostazione connessionista hanno cercato di emulare il comportamento delle cellule neuronali facendo ricorso alle cosiddette reti neurali: una rete neurale è una struttura formata da un certo numero di unità collegate tra loro da connessioni. Attraverso le connessioni un’unità influenza fisicamente le altre unità con cui è collegata. Le singole unità hanno alcune caratteristiche essenziali delle cellule nervose, i neuroni del sistema nervoso reale, mentre le connessioni alcune delle caratteristiche essenziali dei collegamenti sinaptici tra neuroni.

Una rete neurale è costituita da un insieme di nodi collegati. Per ogni nodo vi sono dei collegamenti di input (da cui arrivano segnali) e dei collegamenti di output (attraverso cui la rete emette segnali). I nodi possono assumere due stati: stato di riposo e stato di attivazione. Quando un nodo è in stato di attivazione esso invia dei segnali ai nodi con cui è collegato. I collegamenti tra i nodi di una rete neurale sono di due tipi: collegamenti eccitatori e collegamenti inibitori. Ogni collegamento tra un nodo della rete e un altro, inoltre, è dotato di un peso che assegna diversi valori ai segnali che li attraversano. Ogni nodo diventa attivo e dunque manda un segnale ai nodi ad esso connessi solo se i messaggi che gli arrivano (nel computo tra segnali inibitori e segnali eccitatori) lo portano oltre una certa soglia di attivazione (misurata mediante una scala numerica).

Visto nel suo complesso, il comportamento di una rete neurale può essere descritto come un processo in cui, una volta fornita in ingresso alla rete una configurazione di segnali-stimolo (mediante l’attivazione di alcuni suoi nodi, detti nodi in input), la rete rilascia in uscita un’altra configurazione di segnali.

Le reti neurali hanno diverse interessanti proprietà: innanzitutto, a differenza dei computer digitali, funzionano in modalità parallela, nel senso che in ogni istante molti nodi cambiano il loro stato simultaneamente. Inoltre sanno apprendere, cioè possono imparare a svolgere dei compiti senza bisogno di essere programmate esplicitamente (le reti di Hopfield, dotate di memoria associativa, e quelle di Kohonen autoapprendenti, in cui l’apprendimento è non supervisionato, competitivo e cooperativo).

Nel sito Internet www.20q.net è possibile giocare a ‘Twenty Questions’, in realtà una rete neurale che migliora le proprie prestazioni ‘apprendendo’ dalle partite precedenti. Il gioco consiste in questo: il giocatore sceglie una ‘cosa’ (oggetto, animale, minerale o altro) da far indovinare al computer che, con al massimo 20 domande a cui il giocatore deve dare risposte veritiere, si propone di indovinare di che sostantivo si tratta. Il gioco dà risultati sorprendenti: spesso il computer indovina con meno di 20 domande.

TWENTY QUESTIONS – WWW. 20Q.NET

Da indovinare: PESCE ROSSO

DOMANDE:

  1. E’ classificato come animale, vegetale, minerale o altro? ANIMALE

  2. E’ marrone? NO

  3. Ha valore in denaro? SI’

  4. Ha artigli? NO

  5. Si ottiene dal latte? NO

  6. E’ a sangue caldo? NO

  7. E’ solitamente colorato? SI’

  8. Ha odore? SI’

  9. E’ nativo del Nord America? NO

    10) Si trova comunemente? SI’ (Probable Objects: a shrimp (152), an octopus (140), sushi (136), a fish (132), a cichlid (132), a goldfish (132), a siamese fighting fish (128), an oyster (124), a salmon (124), an angelfish (124), a trout (120), a tuna (120), a coral (116)

    © 1988-2001 Robin Burgener, all rights reserved

    20Q V5.3.0

  10. Vive nell’acqua fresca? SI

  11. Si può trovare in casa? SI

  12. Mangia pesce? NO

  13. E’ nativo dell’Oceano Pacifico? NO

Probable Objects: a goldfish (184), a shrimp (168), a siamese fighting fish (168), an angelfish (152), a rose (146), a shoe (142)

In 13 domande il computer ha individuato PESCE ROSSO.

Continuando il gioco, alla ventesima domanda, il computer dice: ‘Ritengo che sia un pesce rosso’

 

Da indovinare: ANELLO

  1. E’ classificato come animale, vegetale, minerale o altro? ALTRO

  2. Ha valore in denaro? SI’

  3. Tira su il morale? SI’

  4. Si usa con una mano? SI’

  5. Si usa per igiene personale? NO

  6. Puo’ essere ascoltato? NO

  7. E’ fatto di parti multiple? A volte

  8. E’ duro? SI’

  9. Può essere trovato in un’aula? Raramente

  10. Ci puoi mettere qualcosa dentro? SI’

  11. Lo tieni in mano quando lo usi? SI’

  12. E’ più pesante di una libbra di burro? Raramente

  13. Contiene un liquido? NO

  14. Ci si può affezionare? SI’

  15. Lo usi tutti i giorni? SI’

  16. E’ rettangolare? Raramente

  17. Rotola? SI’

  18. Lo puoi riciclare? SI’

  19. Ha valore? SI’

  20. Ritengo sia una bottiglia di vino. Lo è? NO

Probable Objects: a bottle of wine (226), a beer can (221), a wedding ring (213), a beer bottle (206), a diary (204), a coin (196), a book (194), a bicycle (194), a pop can (186), a motorcycle (184), the bible (183), a photo album (183), a pipe (179), something (177), a ring (176), an engagement ring (176), a cigar (175), a checkbook (174), a toy (170), rollerblades (170)

Il computer in questo caso sbaglia, indicando UNA BOTTIGLIA DI VINO. Tra gli oggetti probabili, al terzo posto, c’è la soluzione: UN ANELLO NUZIALE.

Continuando il gioco, il computer azzecca la soluzione alla 23a domanda.

Il processo di apprendimento delle reti neurali avviene in questo modo: per un dato periodo di tempo vengono forniti alla rete una serie di stimoli in entrata e i corrispondenti stimoli in uscita che essa dovrebbe generare. Ad esempio, in entrata vengono fornite le rappresentazioni in formato bitmap dei caratteri di un certo sistema di scrittura, e in uscita le corrispondenti posizioni della tavola ASCII. Durante questo periodo nella rete vengono modificati i pesi assegnati ai collegamenti tra nodi. Superata una certa soglia di autorganizzazione interna la rete è in grado di riconoscere da sola le configurazioni di input: essa ha cioè imparato a riconoscere i caratteri della scrittura.

Una delle prime applicazioni delle reti neurali fu il Perceptron di Rosenblatt (1958) che era una sorta di robot ‘tartaruga’ in grado di muoversi in un ambiente evitando gli ostacoli e individuando le fonti di energia necessarie al suo sostentamento.

Il canadese Hebb nel suo libro ‘Organisation of Behaviour’ scoprì una regola fondamentale, detta regola di Hebb: la connessione tra due neuroni si rafforza se entrambi sono eccitati.

 

3.1 A. L.: Artificial Life

 

Un’evoluzione negli studi sull’A.I. è rappresentata dall’A.L., acronimo di Artificial Life (detta anche Alife), cioè Vita Artificiale. Il suo obiettivo è simulare il comportamento di organismi ed ecosistemi reali attraverso il computer. La data ufficiale di nascita di questa disciplina, a cavallo tra biologia, genetica e informatica, risale al 1987 ed esattamente a una conferenza tenutasi all’Oppenheimer Study Center di Los Alamos (Nuovo Messico) in cui il biologo Christopher Langton riunì circa 160 studiosi provenienti da diverse aree scientifiche.

Se l’A.I. studia i principi e la natura dell’intelligenza cercando di riprodurne alcune caratteristiche mediante i computer, così la vita artificiale cerca di rispondere a domande sulla vita e i processi che caratterizzano un organismo vivente (o una popolazione di organismi), e di capire come si siano svolti i processi evolutivi che da forme di vita semplici hanno portato all’evoluzione di forme di vita sempre più complesse e intelligenti, mediante simulazioni realizzate al computer.

Allo stato attuale, comunque, la maggior parte delle ricerche in questa disciplina è rivolta allo studio di processi biologici elementari (assimilabili a quelli dei virus o degli esseri monocellulari) o alla simulazione del comportamento di esseri più complessi ma comunque assai in basso nella scala evolutiva, come gli insetti.

Come nell’A.I., anche nell’A.L. esistono una posizione ‘forte’ e una ‘debole’: i sostenitori della prima ritengono che sia possibile creare esseri artificiali ‘vivi’ al pari di quelli organici; i secondi, invece, sostengono che le forme di vita artificiali non possono e non potranno mai dirsi viventi in senso pieno.

 

3.2 Automi cellulari

 

I più noti enti artificiali studiati in A.L. sono gli automi cellulari, inizialmente studiati da John Von Neumann, Alan Turing e Stanislav Ulam. Un automa cellulare è una macchina software autodiretta che di norma ‘vive’ in ambienti simulati bidimensionali, è dotata di alcuni semplici comportamenti simili a basilari processi vitali (mangiare, spostarsi alla ricerca di cibo, difendersi da altri automi) ed è in grado di autoreplicarsi assemblando elementi inerti tratti dall’ambiente in base a regole semplicissime (come avviene nella mitosi cellulare, diretta dal DNA). In senso più astratto, un automa cellulare, anche elementare, ha le seguenti proprietà: è un sistema discreto nello spazio e nel tempo; è costituito da singole celle separate; è locale, cioè lo stato di ogni cella in un dato istante è determinato esclusivamente dagli stati assunti nell’istante precedente, dalle celle appartenenti all’intorno della cella; è omogeneo (la struttura dell’intorno è uguale per ogni cella) e parallelo, cioè ad ogni istante le celle sono aggiornate simultaneamente.

Uno degli esempi più interessanti di automa cellulare è costituito dall’ambiente artificiale conosciuto come Life – il gioco della vita, ideato dal grande matematico John Horton Conway nel 1960. L’ambiente del gioco è una scacchiera bidimensionale e gli organismi che vivono nell’ambiente sono rappresentati da celle piene, mentre quelle vuote sono considerate non occupate da organismi viventi oppure celle morte. Questi organismi si evolvono in base a tre semplici regole:

  1. ogni cella con nessuna o una sola cella adiacenti piene muore (morte per isolamento)

  2. ogni cella con quattro o più celle adiacenti piene muore (morte per sovraffollamento)

  3. ogni cella morta con tre celle adiacenti piene torna in vita alla generazione successiva (regola di nascita)

Il sistema si evolve da solo in maniera spesso sorprendente e questa evoluzione genera forme di vita sempre più complesse battezzate con strani nomi: gliders (alianti), eaters (divoratori), glider guns (cannoni di alianti), etc.

Un altro grande studioso, Stephen Wolfram, fisico inventore del programma di calcolo simbolico Mathematica, si occupò negli anni ’80 della meccanica statistica degli automi cellulari lineari.

Un automa cellulare lineare si può vedere come una stringa di celle estesa all’infinito in entrambe le direzioni (in ogni istante è attivo solo un numero finito di esse). Wolfram studiò e catalogò le regole (numerandole progressivamente) che ne governavano il comportamento. Nel 1984 individuò inoltre quattro classi di comportamento degli automi cellulari:

Classe 1

L’automa perviene ad uno stato stabile dopo un numero finito di passi.

Classe 2

L’automa entra in un ciclo di periodo non grande. Sono automi-filtro che possono essere usati per il trattamento delle immagini.

Classe 3

L’automa produce configurazioni aperiodiche. Di solito sono immagini auto-similari (frattali) oppure generatori pseudocasuali.

Classe 4

L’automa è assai sensibile alle condizioni iniziali. Molti degli stati iniziali portano alla quiescenza mentre alcuni di essi conducono a configurazioni complesse e persistenti. Sono capaci di computazione universale. ‘Life’ fa parte di questi.

 

3.3 Algoritmi genetici

 

Gli algoritmi genetici sono stati sviluppati inizialmente da John Holland, intorno alla metà degli anni ’70, come metodo per individuare e ottimizzare gli algoritmi usati nel calcolo di alcune funzioni. A tale fine Holland si è rifatto al meccanismo della selezione naturale: si generano in modo casuale alcuni algoritmi genitori, dotati di un certo ‘patrimonio genetico digitale’ espresso in termini di sequenze di bit. A questi algoritmi vengono applicati due tipi di processi evolutivi: la mutazione casuale di uno o più bit del patrimonio genetico originale e il crossing-over, ovvero la generazione di un individuo figlio il cui patrimonio genetico è costituito da parte del patrimonio di due algoritmi ‘genitori’ (come avviene nella riproduzione sessuata degli organismi viventi). Dopodiché, attraverso una funzione di decodifica (che dal genotipo permette di passare al fenotipo) e una di valutazione adattiva (funzione di fitness) si selezionano gli individui più adatti alla risoluzione del problema affidato loro mentre gli altri vengono eliminati. Il processo continua finché non si generano algoritmi in grado di giungere alla soluzione. L’evoluzione viene intesa quindi come un processo di ottimizzazione.