sabato 3 settembre 2011

Intelligenza Meccanica

Molti anni fa mi capitò per puro divertimento di scrivere un programma che giocava a Master Mind. Mi era riuscito abbastanza bene, ricordo che arrivava alla sequenza nascosta in genere nel giro di due o tre tentativi (che sono poi quelli che normalmente servono). La cosa carina è che poteva giocare con se stesso "senza saperlo", ovvero si generava la sequenza nascosta, tentava di indovinarla "come se non la conoscesse", si dava i punteggi ad ogni tentativo "come se la conoscesse", infine la indovinava, tutto da solo. Non ricordo più come lo realizzai, e ho ormai da tempo perduto sia il codice sorgente che l'eseguibile. Un giorno forse mi divertirò a riscriverlo.

Quello che mi colpiva era che, a differenza di tutti gli altri programmini che facevo sempre per divertimento, questo mi sembrava dotare il computer di una qualche intelligenza. Il Master Mind è un gioco che richiede una certa dose di riflessione e una certa capacità di ragionamento logico e queste sono indubbiamente caratteristiche che classicamente attribuiamo al comportamento intelligente. Il programma, nella versione che prevedeva la sfida con un giocatore umano, era anche in grado di battermi, specialmente se non riflettevo abbastanza sulla formulazione dei tentativi (e se il punto di partenza era a suo favore). La capacità di giocare è una di quelle caratteristiche che da sempre si riescono ad implementare bene in un computer, si pensi al gioco degli scacchi, e che al contempo colpiscono di più, proprio in relazione all'impressione di "comportamento intelligente" che inducono nello spettatore.

Ricordo che alla fine archiviai la questione con una osservazione che più o meno ricalca un classico della critica all'intelligenza artificiale: il mio programma non faceva niente di più di quanto la mia intelligenza gli aveva detto di fare (questo risultava anche autolusinghiero). Effettivamente la caratteristica principale del computer relativamente al gioco era la capacità di eseguire un calcolo che gli era stato "insegnato" con formidabile precisione, una cosa innaturale per un essere intelligente (cioè per noi, in quanto l'unico modello di intelligenza evoluta di cui disponiamo siamo proprio noi stessi). E al contrario, sempre rispetto a ciò che gli era stato "insegnato" non era in grado di aggiungere assolutamente nulla di originale, una cosa altrettanto innaturale per un essere che si possa definire intelligente.

Poi c'era ovviamente la critica al fatto che l'intelligenza nella sua globalità è una cosa molto più complessa di quella che eventulamente poteva esprimere il computer programmato per giocare semplicemente a Master Mind. Ma questa è una di quelle affermazioni generali che hanno il solo scopo di scoraggiare qualunque indagine sull'intelligenza, e che risultano dunque osservazioni sterili. Pensare di ritagliare una qualche attività particolare e verificare se si riesce, solo nell'ambito di quella, a tirar fuori un comportamente intelligente, mi sembra già moltissimo. Il problema nel mio caso era che il gioco del Master Mind è talmente deterministico che non c'è spazio per fare cose in più o cose diverse rispetto a quello che stava facendo il programma. Si trattava di fare solo le cose bene, in modo preciso e senza sbagliare. Questo era richiesto alla macchina. Peraltro la caratteristica del gioco di essere deterministico è anche quella che facilita molto la stesura di un algoritmo e dunque l'implementazione di un programma in un qualche linguaggio.

Forse il punto chiave (o comunque un punto interessante) è proprio "quello che chiedo" alla macchina. Da qui nasce una delle osservazioni più divertenti e al contempo profonde che caratterizzano le molte riflessioni sull'intelligenza artificiale fatte da Alan Turing in alcuni suoi scritti a cavallo tra la fine degli anni quaranta e gli inizi degli anni cinquanta, raccolti in un volume dal titolo "Intelligenza Meccanica". Il punto è che fintantochè chiedo alla macchina di eseguire alla perfezione e senza errori degli algoritmi precostituiti (procedure perfettamente deterministiche) non posso sperare di osservare un comportamento veramente intelligente. Ad esempio si potrebbe prevedere (e tollerare) che la macchina in molte situazioni compia degli errori e faccia nuovi tentativi, perchè forse questo comportamento è essenziale per l'intelligenza molto più di quanto non si pensi. Dice Turing: "E' facile per noi considerare queste sviste [quelle umane] come non rilevanti e dare al ricercatore [all'essere umano] un'altra possibilità, ma alla macchina non viene riservata alcuna pietà. In altre parole, se si aspetta che la macchina sia infallibile, allora essa non può anche essere intelligente".

Un'altra caratteristica del mio computer che giocava a Master Mind, negativa dal punto di vista dell'eventualità di manifestare intelligenza, era il fatto che la macchina aveva "interagito" con l'esterno una sola volta, al momento dell'immissione del programma che le "insegnava" un certo comportamento e la induceva a seguire sempre e solo quello che l'algoritmo prevedeva. Ovviamente nella versione in cui giocava con un avversario il computer riceveva dall'esterno durante il gioco i punteggi delle sequenze "immaginate" ma questo tipo di interazione rimane "all'interno" dell'algoritmo e ne costituisce i dati in input. Anche questo aspetto è stato indagado da Turing, che effettivamente considerava essenziale la possibilità di far interagire la macchina con l'esterno, proprio nel senso di aggiungere istruzioni in memoria, di modificare gli algoritmi già memorizzati (addirittura di farli modificare direttamente dalla macchina stessa). Permettere in qualche misura una "esperienza con il mondo esterno" che consenta di modificare progressivamente i propri algoritmi interni (anche attraverso gli errori, vedi paragrafo precedente) può essere l'equivalente di quello che fa un qualunque cervello biologico. Secondo Turing l'elemento sostanziale non è tanto la struttura fisica di un cervello ma piuttosto i processi che costruiscono il suo comportamento intelligente. Questo giustificava la sua ricerca sui dispositivi elettronico-digitali.

Quando hai davanti una macchina che è in grado di giocare con te ed eventualmente di batterti ti puoi chiedere, anche solo per gioco, se la macchina in qualche modo e in quel particolare momento "stia pensando" (visto che per giocare un uomo ha certamente bisogno di pensare). Se sei in vena (o non lo sei, dipende dai punti di vista) puoi anche tentare di chiederti se in generale le macchine possono pensare. Se lo deve esser chiesto anche Turing, ed è interessante come abbia cercato di evitare la domanda diretta, e forse anch'essa sterile, rimpiazzandola con un gioco: ci sono un uomo, una donna e un terzo soggetto che li interroga; quest'ultimo deve indovinare chi è l'uomo e chi è la donna semplicemente ponendo domande (comunicando con mezzi che non rivelino le identità). Ad un certo punto una delle due persone interrogate viene sostituita da una macchina. La domanda (che rimpiazza quella originale "possono pensare le macchine?") è se la probabilità di indovinare per l'interrogante medio siano significativamente diverse prima e dopo la sostituzione. Questo, presentato da Turing in un suo scritto come "il gioco dell'imitazione" è maggiormente noto come "test di Turing", o meglio così sono note alcune versioni stravolte utilizzate nella letteratura di fantascienza. La caratteristica più interessante è come, attraverso questo gioco, Turing sposti volutamente l'attenzione dalla definizione oggettiva di un essere pensante alla sua percezione da parte dell'uomo che gli sta davanti.

Come ho letto in un saggio su di lui "[Turing] immaginava la macchina [quello che sarà poi il computer] non tanto, o non soltanto, come uno strumento di calcolo, ma come un'opportunità di sperimentare l'intelligenza meccanica" (Teresa Numerico, Macchine non organizzate e simulazione dell'intelligenza nell'opera di Alan Turing, 2004).

Nessun commento: