Può un computer pensare?

Quando un computer gioca a scacchi sta realmente pensando? Esiste un computer in grado di colloquiare alla pari con un essere umano su argomenti scientifici o filosofici? Per farlo esso dovrebbe superare il cosiddetto "Test di Turing". Se mai venisse realizzato un computer pensante esso sarebbe capace di  emulare una mente umana?

 
 


di Ugo Spezza


Questo articolo è in fase di revisione...

Vogliamo discutere in questo testo le implicazioni relative alla possibilità di creare un computer pensante, ossia una Intelligenza Artificiale di tipo "forte" che sia in grado di interagire con esseri umani a pari o superiore livello. Inoltre vogliamo qui verificare se è possibile ipotizzare, pur con la limitazione delle attuali tecnologie, una metodologia per ideare un "trasferimento di coscienza" del tipo di quello immaginato dal famoso scrittore di fantascienza Arthur Clarck (2001 Odissea nello Spazio). Prima di procedere però bisogna cercare di capire come è se un computer possa essere definito intelligente. Affinché ciò sia possibile un tale computer dovrebbe superare il cosidetto “Test di Turing”.

Questo test è stato ideato dallo scienziato Alan Turing (1912-1954) considerato da molti, e non a torto, “padre dell’informatica moderna”, alla quale ha dato le sue basi matematiche. La mente di questo brillante scienziato si spense nel 1954 all’età di soli 42 anni, causa suicidio. Turing infatti morì mordendo una mela che lui stesso aveva avvelenato con cianuro di potassio. Da questo evento si dice che abbia poi tratto vita il logo della Apple computer, che evidenzia appunto una mela morsicata.

Lo scienziato venne portato al suicidio a seguito dell’accusa di omosessualità, “reato” per cui negli U.S.A. venne addirittura arrestato nel 1931. Egli si giustificò dicendo che non aveva mai fatto niente di male a nessuno.

Chissà di cosa sarebbe stata capace una delle menti matematiche più brillanti del ventesimo secolo se l’oscurantismo di una società viziata da pregiudizi non avesse posto fine alla sua esistenza.

Ma torniamo al test in questione, in modo semplificato si può dire che un computer che superi il Test di Turing debba, a tutti gli effetti, essere considerato un essere pensante. Ecco in cosa consiste il test: 

  • Un essere umano (A) posto in una stanza isolata prende contatto, solo in forma dattiloscritta, con due personalità presenti in due stanze attigue non potendo osservare, in quanto nascosti, i suoi due interlocutori.
  • In una delle due stanze attigue vi è un essere umano di media intelligenza (B), nell’altra un computer (C). Essi non possono comunicare tra loro.
  • L’essere umano (A) deve conversare di svariati argomenti, ad esempio filosofia, medicina, politica, attualità, facendo addirittura pettegolezzi o battute di spirito con entrambi gli interlocutori senza riuscire a distinguere minimamente chi tra (B) e (C) sia l’essere umano e chi il computer.

 

Inutile dire che allo stato attuale della tecnologia non esiste un computer capace di superare questo test, inclusi i mastodontici mainframe della IBM o della Cray. I vari programmi di simulazione del comportamento umano creati fino ad ora, ad esempio Mad, Eliza… sono facilmente aggirabili. Tuttavia il neofita potrebbe a questo punto pensare che, essendo stati costruiti dei computer capaci di giocare a scacchi essi possano essere definiti macchine intelligenti in quanto tale gioco è riservato solo ad esseri umani dotati di grande intelligenza e sagacia tattica. In effetti il giorno 11 Maggio del 1997 il super-computer DeepBlue della IBM riuscì, per la prima volta nella storia, a battere un campione mondiale di scacchi. Gary Kasparov venne sconfitto dal gigantesco elaboratore il quale, delle sei partite in tabellone se ne aggiudicò due, ne perse una e tre finirono pari.

Tuttavia questo non deve portare a credere che la macchina abbia “pensato” nell’eseguire le sue mosse; DeepBlue stava semplicemente elaborando un programma software. I suoi 24 processori in parallelo erano in grado di calcolare fino a 200.000 posizioni di scacchi al secondo.

Per fare un esempio pratico ammettiamo che degli istruttori addestrino a giocare uno scimpanzé affinché impari a fare una apertura a scacchi, diciamo le prime dieci mosse di seguito, anche data la limitata capacità cerebrale del primate ciò sarebbe assolutamente possibile. Certo lo scimpanzé non capirebbe nulla del gioco degli scacchi in sé ma saprebbe solo che se fa quelle cose gli viene dato un premio, diciamo una banana.

Ebbene, un giocatore umano che prendesse i pezzi neri e non potesse vedere il suo avversario, di fronte alla sequenza delle prime dieci mosse (il giocatore coi bianchi muove per primo…) sarebbe portato a pensare che dall’altra parte vi sia un giocatore di scacchi umano. Dalla undicesima mossa però la scimmia inizierebbe a mettere giù i pezzi a caso perdendo irrimediabilmente. Immaginiamo però che si addestri una seconda scimmia per fare altre dieci mosse, una terza, una quarta e cosi via, che subentrino quando si verifica una determinata situazione di gioco, ebbene in questo caso la partita proseguirebbe e l’essere umano verrebbe impegnato severamente. Super-Computer come DeepBlue semplicemente hanno registrate in memoria (una grande memoria) milioni di possibili combinazioni, anche riprendendo informazioni da situazioni di “master chess”, ossia intere partite dei maestri di scacchi memorizzate mossa per mossa.

Ma facciamo un altro esempio: chi scrive è un discreto giocatore di scacchi ed usa il programma gratuito Brutal Chess (http://brutalchess.sourceforge.net) riuscendo a battere il computer a livello di difficoltà “1” quasi sempre, vincendo di rado a livello “2” e perdendo praticamente tutte le partite a livello “3”. Ebbene è come se al livello “1” io mi trovassi a giocare da solo contro un migliaio di scimmie, contro cinquantamila al livello “2” e contro un milione al livello “3”. E’ chiaro che in quest’ultima situazione le possibilità di previsione del labirinto delle mosse della partita da parte del cervello umano è soverchiata dall’enorme numero di avversari “stupidi”. Ciò è dimostrato anche dal fatto che il computer impiega diversi secondi per elaborare una mossa al livello “3” in quanto cerca la soluzione in una grande base di dati, al contrario gli occorrono solo alcuni istanti per eseguire la mossa ai livelli “2” e “1”. Potete provarlo personalmente scaricando il programma in questione.

Un altro sistema che segnala in modo inequivocabile che gli attuali computer sono intelligenti quanto può esserlo un frigorifero è il test CAPTCHA, la cui sigla tradotta significa pressappoco questo: “Test di Turing pubblico e completamente automatico per distinguere computer ed esseri umani”; in pratica si tratta del test di Turing alla rovescia. In cosa consiste? Ecco, guardate questa immagine (tratta da wikipedia):

 

 

Ebbene qualunque essere umano, compreso un bambino delle elementari, saprebbe trarre da questa figura la seguente sequenza di lettere e numeri: 6138B. Al contrario un computer non sarebbe mai in grado di leggerne il contenuto. Infatti per l’interpretazione dei test i computer usano la tecnica OCR (Optical Caracter Recognition) la quale, sfruttando tecniche matematiche come l’interpolazione lineare e studiando le curve sinusoidali che compongono i singoli caratteri riescono a ricostruire, a partire dalla scansione bitmap della pagina scritta, il testo in essa contenuto. Ma è sufficiente che la pagina si presenti leggermente corrotta, ad esempio quella prodotta in uscita da un Fax a bassa definizione, perchè l’OCR inizi a generare almeno il 60% di errori nell’interpretazione dei caratteri. Se poi lo sfondo della pagina contiene rumore di fondo, con caratteri inclinati, di dimensione diversa e di diverso colore il computer impazzisce del tutto riuscendo ad interpretare una percentuale ridicola del testo.

Questa incapacità dei computer a leggere testi interpretabili solo dal cervello umano fu usata per la prima volta dai programmatori del motore di ricerca Altavista per impedire che programmi di ricerca automatica (Bot) inserissero indirizzi iniqui nel loro database. La tecnica CAPTCHA è attualmente usata da molti siti web per assicurarsi che chi sta compilando un modulo per la iscrizione ad una chat, ad un forum ecc. sia effettivamente un essere umano e non un Bot. Un altro esempio di come i computer non riescano a pensare sono i programmi di traduzione automatica. In particolare la traduzione dall’inglese all’italiano, che richiede spesso periodi a sintassi rovesciata, produce in certi casi risultati esilaranti.

Uno dei mondi ove l’intelligenza artificiale è applicata con maggior successo è nei videogiochi 3D. In questi casi l’avversario umano si trova a combattere con armi simulate contro pseudo-giocatori generati dal computer, anche qui chiamati Bot (abbreviazione incongrua di RoBot). Ebbene, quando si gioca in rete contro un essere umano, ad esempio in un game di guerra simulata, bisogna guardarsi sempre intorno per evitare di essere sorpresi dall’avversario. Al contrario quando si affronta un Bot basterà stimolarlo facendogli rilevare la propria presenza e poi nascondersi dietro l’angolo di un muro. Quindi si potrà  farlo fuori facilmente quando girerà l’angolo stesso nel tentativo di inseguirvi. Al contrario un giocatore umano non girerebbe mai quell’angolo, anzi vi ci piazzerebbe una mina, poi girerebbe dal lato opposto per prendervi alle spalle.

Una posizione estrema rispetto all’argomento è quella del filosofo John Searle (http://it.wikipedia.org/wiki/John_Searle) il quale afferma che l’esecuzione di un programma software in un elaboratore non potrebbe mai portare lo stesso a divenire un essere pensante. Ciò proprio a causa delle limitazioni intrinseche alla programmazione. A sostegno di questa tesi egli riporta un esperimento denominato stanza cinese la cui onerosa descrizione rimando ad un prossimo articolo.


IPOTESI: Sarebbe possibile inserire i contenuti di una mente umana in un computer?


Ma ammettiamo ora, anche senza avere prove, che in futuro si possano realizzare computer a parallelismo massiccio, in grado di apprendere dall’ambiente esterno ed autoprogrammarsi, in pratica di “imparare”. Si parla in questo caso di Intelligenza Artificiale (IA) di tipo “forte”. Queste macchine sarebbero dotate di almeno due dei sensi umani più importanti: vista ed udito. Percepirebbero quindi l’ambiente circostante e sarebbero in grado di interagire sia con gli esseri umani che con altre IA del loro livello e, ovviamente, di superare il Test di Turing senza il minimo problema. Da questa situazione scaturisce la

domanda (A): “sarebbe possibile trasferire i contenuti di un cervello umano in un elaboratore elettronico ad intelligenza artificiale in modo da realizzare un clone artificiale del cervello biologico?

Ad una analisi approfondita tale domanda risulta però fuorviante poiché devono essere soddisfatte alcune condizioni prima di porla. Ecco dunque che si genera un’altra questione:

domanda (B): “E’ possibile collegare un cervello umano, con un qualsiasi tipo di infrastruttura, biologica o elettronica che sia, ad un elaboratore elettronico?”

La risposta logica, con l’attuale tecnologia, è sicuramente un NO. Semplicemente per il fatto che, a differenza degli elaboratori elettronici, il cervello umano non dispone di porte di Output ossia non è in grado di inviare dati all’esterno. Consideriamo infatti che il suo scopo primario è condurre alla esplorazione dell’ambiente terrestre un organismo vivente, fargli cercare del cibo (energia) per sopravvivere e preservare la sua salute fisica affinché porti a termine un obiettivo: la preservazione della sua specie.

In altre parole, mentre un elaboratore elettronico dispone di porte di uscita (es. Usb, Lan ecc.) dal quale si può accedere ai suoi contenuti interni, un cervello biologico non ne dispone in quanto deve governare un sistema “chiuso” quale è un organismo vivente. Le interazioni esterne con le altre menti avvengono essenzialmente attraverso la parola o manifestazioni fisiche del corpo. Tuttavia potrebbe essere possibile, in futuro, innestare milioni di microcavi che si congiungano alle varie aree del cervello e ne raccolgano i flussi di dati. Da questa situazione si genera la

domanda (C): “se trasmettessimo un flusso di dati contenente la configurazione di una o più aree del cervello umano in un elaboratore elettronico dotato di IA, sarebbe esso in grado di interpretare i dati in tale flusso e, successivamente, sarebbe in grado di simularli?”

La risposta è quasi sicuramente un altro NO in quanto si tratta di sistemi di elaborazione profondamente diversi. In termini informatici si pensi ad esempio di dover collegare un attuale PC con Windows Vista, dotato di processore Core Quad e 4000 Megabyte di ram ad un Atari-ST, con sistema operativo Tos, processore Motolorola 68000 e dotato di 0.5 Megabyte di ram. Si tratta di sistemi diversificati sia nelle interfacce di Input/Output, sia nel tipo di processore, sia nel sistema operativo, sia nella codifica dei dati e sia nella potenza di elaborazione. La semplice trasmissione dei dati sarebbe possibile in questo caso realizzando un protocollo di comunicazione specifico unitamente ad un cavo di I/O progettato da zero. Ma anche così il computer Atari sicuramente non sarebbe in grado di elaborare i dati in arrivo dal PC. Invero, nemmeno il PC saprebbe come elaborare i dati presi dall’Atari-ST via cavo ma potrebbe però far funzionare i programmi dell’Atari-ST realizzando una macchina virtuale software che ricrei da zero il sistema operativo e simuli l'hardware del computer tecnologicamente più semplice. Si realizzerebbe così una emulazione dell’hardware del vecchio computer. Questo comporterebbe però il dover avere il codice sorgente del sistema operativo e del firmware dell’Atari-ST oltre che la conoscenza del modo di funzionare dei suoi chipset.

Volendo traslare questo problema al trasferimento dei dati tra un cervello umano ed una macchina ci troviamo in una situazione drammaticamente più complessa. In questo caso infatti non abbiamo la possibilità di interpretare i dati in ingresso, ossia quelli prelevati dal cervello umano, in quanto gli stessi non sono scritti nel linguaggio binario dei computer. Quindi un protocollo di comunicazione non sarebbe nemmeno implementabile se prima non si interpretano i sistemi di elaborazione del cervello e se ne comprende il funzionamento. In ingresso la mente artificiale riceverebbe dal cervello umano solo una serie di dati incongrui.

Per risolvere il problema si dovrebbero scrivere dei software che eseguano la “emulazione” dei contenuti cerebrali, sarebbe a dire che riproducano il funzionamento del sistema nervoso in quanto tale nella sua interezza. Ciò è estremamente complesso in quanto il sistema nervoso implementa meccanismi inconsci, quali quelli che ci consentono di far battere il cuore, respirare, digerire il cibo ecc. Anche questi sistemi, e non solo le funzioni cognitive superiori, andrebbero emulati.

Per semplificare il processo dovremmo quindi collegare un cervello umano ad un altro cervello umano e poi esaminare col metodo informatico del man in the middle (usato spesso in ambito hacker) il relativo flusso di dati in transito. In questo modo si potrebbe capire come operino i “software” di gestione del cervello. Da qui la macchina ad intelligenza artificiale, sondando i dati in transito, potrebbe produrre dei software di emulazione.  

Tale esperimento, al fine di ottenere una ulteriore semplificazione, potrebbe essere eseguito su gemelli identici in quanto disporrebbero dello stesso “hardware” di base. Da qui, partendo dall’analisi del flusso, o meglio, dall’insieme dei flussi potrebbe essere ricavato un sistema di programmazione che esegua la emulazione software completa del funzionamento delle varie aree del cervello (talamo, corteccia visiva, auditiva…) mentre un altro sistema di programmazione si occuperebbe di emulare le interazioni tra queste aree. Con questa metodologia si potrebbe (il condizionale è d’obbligo) ricostruire la struttura logica, anche se non fisica, di un cervello vivente dentro un elaboratore elettronico.

Quello che si è cercato di proporre in questo testo è dunque una scomposizione del problema del “trasferimento di coscienza” in sottoproblemi, in modo che possano essere analizzati più facilmente. Nei prossimi interventi cercherò di esaminare più approfonditamente i singoli sottoproblemi.