Computer e cervello

John von Neumann
Computer e cervello
Traduzione di Paolo Bartesaghi
Sito & eStore – www.ilsaggiatore.com
Twitter – twitter.com/ilSaggiatoreED
Facebook – www.facebook.com/ilSaggiatore
© 1958 by Yale University Press
© renewed 1986 by Marina V.N. Whitman
Foreword to the Second Edition © 2000 by Yale University
Foreword to the Third Edition © 2012 by Ray Kurzweil
Originally published by Yale University Press
© il Saggiatore S.r.l., Milano 2014
Titolo originale: The Computer & the Brain
L’OPERA – Le analogie tra macchina e uomo, artificio e natura, computer e cervello, in un saggio pionieristico che, a metà degli anni cinquanta, ha anticipato
e condizionato gli sviluppi delle scienze informatiche,
biologiche e filosofiche. Una frattura, lo spartiacque
tra due ere. Con la visione e l’approccio del matematico, John von Neumann, l’autore della Teoria dei giochi (1944), mette a confronto le capacità computazionali
delle macchine e quelle del più affascinante e misterioso organo umano. I termini costitutivi del suo discorso
sono transistor e neuroni, rapidità di trasmissione delle
informazioni, velocità di elaborazione dei dati, porte logiche e sinapsi. In Computer e cervello von Neumann dà
concretezza al modello di Turing, progettando macchine universali, «computer» in grado di plasmare le proprie attività in funzione dei compiti che sono chiamati
a risolvere. Si delinea così quella che verrà chiamata
«architettura di von Neumann» su cui si basano tutte le moderne macchine di calcolo, si introduce per la
prima volta nella storia il concetto di programma memorizzato e si aprono le porte agli studi sull’intelligenza artificiale.
Con le lectures raccolte in questo volume si avvia quella rivoluzione che continua a modellare e rimodellare
tutti gli aspetti della nostra vita.
L’AUTORE – John von Neumann (Budapest, 1903 Washington, 1957), matematico, fisico e informatico
ungherese naturalizzato statunitense.
Le lezioni raccolte in Computer e cervello furono commissionate dall’Università di Yale nel 1955.
COMPUTER E CERVELLO
Prefazione alla terza edizione
Le tecnologie dell’informazione hanno già trasformato
ogni aspetto della vita umana, dagli affari alla politica,
alle arti. Alla luce della corrispondente crescita esponenziale del rapporto prestazioni-prezzo e della capacità di
qualunque forma di tecnologia informatica, l’era dell’informazione sta costantemente allargando la propria sfera di influenza. Molto probabilmente, il più importante
processo informatico da comprendere è proprio l’intelligenza umana e questo libro rappresenta forse il primo
serio esame della relazione tra il modo di operare del nostro pensiero e quello di un computer, esame condotto
dal matematico che per primo concepì l’architettura fondamentale dell’era informatica.
Entro il grande progetto di comprensione del funzionamento del cervello umano, stiamo facendo progressi sempre più rapidi nella decodifica dei paradigmi del
pensiero e stiamo applicando questi metodi ispirati alla biologia alla creazione di macchine sempre più intelligenti. L’intelligenza artificiale (ai) così concepita si
eleverà alla fine oltre i limiti del pensiero umano. La mia
opinione in proposito è che lo scopo di questo sforzo non
sia quello di sostituirci ma di espandere la portata della
9
simbiosi uomo-macchina già in atto nella nostra civiltà.
È questo a rendere unica la nostra specie.
Quali sono le idee chiave che stanno alla base dell’era dell’informazione? La mia opinione è che ve ne siano
cinque. John von Neumann è in gran parte responsabile
di almeno tre di esse e ha dato un fondamentale contributo alla quarta. Claude Shannon ha risolto il problema
fondamentale di come rendere affidabile un’informazione. Alan Turing, influenzato da una conferenza giovanile
di von Neumann, ha quindi dimostrato e definito l’universalità del calcolo. Basandosi sui lavori di Turing e
Shannon, von Neumann ha a sua volta creato la macchina di von Neumann, che è diventata – e resta ancora oggi – l’architettura fondamentale del calcolo.
Nel volume apparentemente modesto che tenete fra
le mani, von Neumann espone il suo modello di calcolo e procede a definire la sostanziale equivalenza tra un
computer e un cervello umano. Von Neumann riconosce differenze strutturali apparentemente profonde ma,
applicando il principio di Turing di equivalenza del calcolo, concepisce una strategia per interpretare in termini di calcolo i metodi utilizzati dal cervello, per ricreare
tali metodi e in definitiva per ampliarne le potenzialità. Questo libro appare tanto più profetico quanto più si
consideri che è stato scritto oltre mezzo secolo fa, quando le neuroscienze avevano a disposizione solo strumenti tra i più primitivi. Infine, von Neumann preconizza
la necessaria accelerazione della tecnologia e le sue inevitabili conseguenze sull’incipiente e singolare trasformazione dell’esistenza umana. Ma consideriamo queste
cinque idee chiave con un po’ più di dettaglio.
Intorno agli anni quaranta, quando si usava la parola «computer», la gente riteneva che si stesse parlando
10
di un calcolatore analogico. I numeri venivano rappresentati da livelli diversi di una data tensione elettrica e
componenti specifici potevano eseguire operazioni aritmetiche come l’addizione e la moltiplicazione. Una grossa limitazione, tuttavia, era data dagli enormi problemi
di precisione dei calcolatori analogici. I numeri potevano essere rappresentati con una precisione approssimativa di solo una parte su cento e, poiché i livelli di tensione
venivano elaborati mediante un numero via via crescente di operatori aritmetici, questi errori potevano accumularsi. Se si voleva eseguire qualcosa di più che una
manciata di calcoli, i risultati sarebbero diventati così imprecisi da essere privi di significato.
Chiunque possa ricordare i tempi in cui si copiava
musica utilizzando i nastri analogici, ricorderà senz’altro questo effetto. Si aveva già una sensibile degradazione della qualità sulla prima copia, la quale risultava un
po’ più rumorosa dell’originale (il «rumore» altro non è
che l’effetto di imprecisioni casuali), la copia della copia
era ancora più rumorosa, e dalla decima generazione la
copia era quasi interamente rumore.
Si era ipotizzato che lo stesso problema avrebbe afflitto l’emergente mondo dei computer digitali. Se consideriamo la comunicazione di informazioni digitali
attraverso un canale, possiamo intuire meglio la questione. Nessun canale è perfetto e presenterà inevitabilmente
un certo tasso di errore intrinseco. Supponiamo di avere un canale che abbia una probabilità di 0,9 di trasmettere correttamente ogni bit di informazione. Se inviamo
un messaggio lungo un bit, la probabilità che venga trasmesso in modo accurato attraverso quel canale sarà ovviamente pari a 0,9. Supponiamo di mandare due bit.
Ora, la probabilità che venga trasmesso in modo accura11
to risulterà di 0,92 = 0,81. E cosa accadrebbe se mandassimo un byte (cioè otto bit)? Avremmo una probabilità
bassissima (0,43 per la precisione) di inviarlo correttamente. La probabilità di inviare con precisione cinque
byte risulterebbe intorno all’1%.
Un approccio piuttosto scontato per aggirare questo problema è quello di rendere il canale più accurato.
Supponiamo che il canale faccia un solo errore per ogni
milione di bit trasmessi. Se inviamo un file di mezzo milione di byte (circa la dimensione di un programma o
di un modesto database), la probabilità di una corretta
trasmissione risulta minore del 2%, nonostante l’elevata
precisione intrinseca del canale. Considerato che un errore di un singolo bit può invalidare un programma per
computer o altre forme di dati digitali, la situazione appare del tutto insoddisfacente. Quindi, a prescindere dalla precisione del canale, poiché la probabilità di produrre
un errore in una trasmissione cresce rapidamente con la
dimensione del messaggio, sembrerebbe che ci troviamo
di fronte a un problema insormontabile.
I calcolatori analogici affrontano questo problema
accettando la lieve degradazione dell’informazione. Va
aggiunto che possono anche accumulare imprecisioni
dovute all’uso continuo, ma se ci limitiamo a un insieme ben delimitato di calcoli si dimostrano piuttosto utili.
Dall’altra parte, i computer digitali richiedono una continua comunicazione non solo tra un computer e un altro
ma anche all’interno dello stesso computer. Esiste una
comunicazione tra la sua memoria e il processore centrale. All’interno del processore, esiste una comunicazione tra un registro e l’altro e una comunicazione reciproca
con l’unità aritmetica e così via. Anche all’interno della stessa unità aritmetica esiste una comunicazione tra
12
un registro di bit e un altro. In un computer digitale la
comunicazione è qualcosa di pervasivo a tutti i livelli.
Quindi, se si considera che i tassi di errore crescono rapidamente con l’incrementarsi dei livelli di comunicazione
e che un errore di un singolo bit può distruggere l’integrità di un processo, il calcolo digitale ne risulta condannato o almeno così sembrava all’epoca.
Era questo il punto di vista comune fino a quando,
sorprendentemente, Shannon non propose la prima idea
chiave dell’era dell’informazione. Egli dimostrò come
fosse possibile creare una comunicazione arbitrariamente accurata anche utilizzando canali di comunicazione
tra i più inaffidabili. Ciò che Shannon dimostrò in «Una
teoria matematica della comunicazione», il suo articolo
ormai divenuto punto di riferimento, pubblicato nel Bell
System Technical Journal del luglio e ottobre 1948, e in particolare nel suo teorema della codifica di canale, fu l’affermazione seguente: se si ha a disposizione un canale
affetto da un qualsiasi tasso di errore (a eccezione esattamente del 50% per bit, il che significherebbe che il canale
sta trasmettendo rumore puro), si è in grado di trasmettere un messaggio con una probabilità di errore piccola
a piacere. In altre parole, il tasso di errore può essere ridotto a un bit per ogni n bit trasmessi, dove n può essere
reso grande quanto si desideri. Così, per fare un esempio estremo, se si dispone di un canale che trasmette bit
di informazione correttamente solo per il 51% delle volte (cioè, che trasmette un bit corretto con una frequenza
solo leggermente superiore a quella con cui trasmette un
bit sbagliato), si possono comunque trasmettere messaggi tali che solo un bit su un milione non risulti corretto,
oppure un bit su un miliardo oppure un bit su un miliardo di miliardi e così via.
13
Come è possibile tutto ciò? La risposta sta nel concetto di ridondanza. Questo concetto oggi può sembrare ovvio ma allora non lo era affatto. Consideriamo un
semplice esempio: se trasmettiamo ogni bit tre volte e
scegliamo il bit ricevuto a maggioranza, aumentiamo notevolmente l’affidabilità del risultato. Se questo non dovesse bastare, possiamo aumentare la ridondanza fino a
ottenere l’affidabilità desiderata. L’idea di ripetere semplicemente l’informazione è il modo più elementare per
capire come possiamo ottenere valori di precisione arbitrariamente alti da canali a bassa precisione, non è però
l’approccio più efficiente. L’articolo di Shannon ha fondato il campo della teoria dell’informazione e ha presentato alcuni metodi ottimali di rilevamento degli errori e
codici di correzione che possono raggiungere una qualsiasi precisione prefissata attraverso un qualsiasi canale non casuale.
I lettori più anziani ricorderanno i modem telefonici
che trasmettevano informazioni attraverso linee telefoniche analogiche rumorose e l’annessa produzione di sonori fischi e schiocchi e molte altre forme di distorsione.
Ebbene, nonostante tutto erano in grado di trasmettere
dati digitali con livelli di accuratezza molto elevati, proprio grazie al teorema di Shannon sui canali rumorosi.
Lo stesso problema e la stessa soluzione esistono per
le memorie digitali. Vi siete mai chiesti come cd, dvd
e dischi di programma possano continuare a fornire risultati affidabili anche dopo che sono caduti e si sono
graffiati? Ancora una volta, dobbiamo ringraziare Shannon. Il calcolo consiste di tre elementi: la comunicazione (che, come ho già detto, è pervasiva sia all’interno di
un computer sia tra computer), la memoria e le porte logiche (che svolgono le funzioni aritmetiche e logiche).
14
Come per i canali, anche l’accuratezza delle porte logiche può essere resa arbitrariamente elevata utilizzando
rilevamento degli errori e codici di correzione. È grazie
al teorema di Shannon che possiamo gestire moli di dati digitali arbitrariamente grandi e algoritmi complessi
senza che i processi siano disturbati o distrutti da errori.
La seconda idea chiave su cui si basa l’era dell’informazione è l’universalità del calcolo. Nel 1936 Alan
Turing descrisse per la prima volta la sua «macchina di
Turing», che non è una macchina reale ma un esperimento mentale. Il suo computer teorico è costituito da un nastro di memoria infinitamente lungo suddiviso in caselle
che la macchina legge una per volta. Ognuna di esse contiene un 1 o uno 0, la cui successione rappresenta l’input
della macchina. La macchina contiene anche una tabella
di regole, in sostanza un programma memorizzato, questo insieme di regole consiste in una serie di stati numerati. Ogni regola specifica un’azione se la casella in fase
di lettura contiene uno 0 e un’azione differente se la casella contiene un 1. Tra le azioni possibili è inclusa anche la scrittura di uno 0 o di un 1 sul nastro, spostando
il nastro di una casella verso destra o verso sinistra o arrestandolo. Ogni stato specifica poi il numero dello stato successivo in cui la macchina dovrà venire a trovarsi.
Quando la macchina si ferma, ha completato il proprio
algoritmo e l’output del processo è trascritto sul nastro.
Anche se il nastro è teoricamente di lunghezza infinita,
qualsiasi programma reale (che non entri in un ciclo infinito) utilizza solo una porzione finita del nastro, quindi,
se ci si limita a una porzione finita di memoria, la macchina può ancora risolvere un utile set di problemi.
Se la macchina di Turing sembra semplice, è perché
l’obiettivo di Turing era che lo fosse. Voleva che la
15
sua macchina fosse il più semplice possibile (ma non
più semplice, parafrasando Einstein). Turing e Alonzo
Church, già suo professore, continuarono a sviluppare
la tesi, poi chiamata di Church-Turing, il cui enunciato
si può così esprimere: se un problema presentabile a una
macchina di Turing non è risolubile da una macchina di
Turing, allora non è risolubile da alcuna macchina che
segua le leggi naturali. Anche se la macchina di Turing è
dotata solo di una manciata di comandi e processa un bit
alla volta, essa può calcolare qualsiasi cosa un qualsiasi
computer possa calcolare.
Le interpretazioni «forti» della tesi di Church-Turing
propongono poi l’essenziale equivalenza tra ciò che un
essere umano può pensare o sapere e ciò che è calcolabile da una macchina. Il presupposto è che il cervello
umano sia sottoposto alle leggi naturali e quindi la sua
capacità di elaborazione di informazioni non possa superare quella di una macchina (e quindi di una macchina di Turing).
Attribuiamo giustamente a Turing il merito di avere istituito la fondazione teorica del calcolo con il suo articolo del 1936, ma è altrettanto importante sottolineare
che Turing fu fortemente influenzato da una conferenza
che John von Neumann tenne nel 1935 a Cambridge, in
Inghilterra, sul suo concetto di programma memorizzato, un concetto che verrà definitivamente consacrato con
la macchina di Turing. A sua volta, von Neumann venne influenzato dall’articolo di Turing del 1936, nel quale
venivano elegantemente delineati i princìpi del calcolo,
tanto da renderlo lettura obbligatoria per i suoi colleghi
alla fine degli anni trenta e nei primi anni quaranta.
Nello stesso articolo, Turing presenta un’altra scoperta inaspettata, quella dei problemi irresolubili. Si tratta
16
di problemi ben definiti e che hanno ben precise soluzioni delle quali si può dimostrare l’esistenza; ma si può
anche dimostrare che tali soluzioni non possono essere calcolate da una macchina di Turing, vale a dire da
qualsiasi macchina. Si tratta in fondo del capovolgimento della fiducia ottocentesca per la quale problemi che
possono essere posti possono in definitiva anche essere
risolti. Turing dimostrò che ci sono tanti problemi irresolubili quanti problemi risolubili. Kurt Gödel giunse a una
conclusione simile nel suo teorema di incompletezza del
1931. Rimaniamo quindi nella situazione imbarazzante
di essere in grado di definire un problema, saper dimostrare che una risposta univoca esiste e di sapere tuttavia
che la risposta non può mai essere scoperta.
Si potrebbe discutere ulteriormente sulle implicazioni
filosofiche del lavoro di Turing, Church e Gödel ma, agli
scopi di questa prefazione, è sufficiente dire che Turing
dimostrò che il calcolo si basa essenzialmente su un meccanismo semplicissimo: poiché la macchina di Turing (e,
quindi, qualsiasi computer) è in grado di orientare il corso futuro delle sue azioni su risultati che ha già calcolato, è in grado di prendere decisioni e modellare gerarchie
arbitrariamente complesse di informazioni.
Nel dicembre 1943, Turing completò e realizzò il progetto di quello che è probabilmente il primo computer
della storia, chiamato Colossus, allo scopo di decifrare i
messaggi crittografati dai nazisti con la macchina di codificazione Enigma. Venne progettato per un compito
ben preciso e non poteva essere riprogrammato per fini
diversi. Ma eseguì questo compito brillantemente e a esso viene attribuito il merito di aver posto gli Alleati nella
condizione di poter superare il vantaggio di 3 a 1 di cui
godeva la Luftwaffe tedesca rispetto alla Royal Air Force
17
britannica, consentendo loro di vincere la fondamentale
Battaglia d’Inghilterra.
Fu su queste basi che John von Neumann creò l’architettura del computer moderno, la macchina di von Neumann, che essenzialmente è rimasta la struttura centrale
di ogni computer costruito negli ultimi sessantasei anni,
dal microcontrollore della vostra lavatrice ai più grandi
supercomputer. Ed è qui che entra in gioco la terza idea
chiave dell’era dell’informazione. In un articolo datato
30 giugno 1945, dal titolo «First Draft of a Report on the
edvac», von Neumann presentò i concetti fondamentali
che da allora dominano il calcolo. Il modello di von Neumann include un’unità di elaborazione centrale (processore) dove vengono svolte le operazioni aritmetiche e
logiche, un’unità di memoria nella quale sono memorizzati il programma e i dati, una memoria di massa, un
contatore di programma e canali di input e output. Questo schema è descritto nella prima metà di questo libro.
Anche se il documento redatto da von Neumann era stato concepito come materiale interno al progetto, divenne
la Bibbia dei progettisti di computer degli anni quaranta
e cinquanta e di fatto, da allora, ha influenzato la costruzione di ogni computer fino a oggi.
La macchina di Turing non era stata concepita per essere realizzata nella pratica. I teoremi di Turing non riguardavano l’efficienza nella risoluzione di problemi ma
piuttosto esaminavano la gamma di problemi che possono essere risolti con il calcolo. L’obiettivo di von Neumann era invece quello di dar vita a un progetto pratico
di costruzione di una macchina di calcolo. Nella sua concezione i calcoli di Turing a un solo bit venivano sostituiti
da parole a più bit (generalmente un multiplo di otto bit).
Il nastro della memoria di Turing è sequenziale e quindi i
18
programmi della macchina di Turing impiegano un tempo notevole per muovere il nastro avanti e indietro e per
memorizzare e recuperare risultati intermedi. Al contrario, la macchina di von Neumann presenta una memoria
ad accesso casuale,* in modo tale che qualunque dato possa essere recuperato immediatamente.
Una delle idee chiave di von Neumann è il concetto
di programma memorizzato, introdotto circa un decennio prima: l’idea cioè che il programma venga memorizzato nella stessa tipologia di memoria ad accesso casuale
in cui sono immagazzinati i dati (e spesso entro lo stesso blocco di memoria). Questo fatto consente al computer di poter essere riprogrammato per svolgere compiti
differenti e di poter operare in base a codici automodificanti (nel caso in cui il programma in memoria sia riscrivibile), ossia programmi in grado di modificare il
proprio codice durante l’esecuzione, aprendo in tal modo la strada a potenti forme di ricorsività. Fino a quel
momento, praticamente tutti i computer, compreso lo
stesso Colossus di Turing, erano stati costruiti per svolgere un compito specifico. Il programma memorizzato
permette a un computer di essere veramente universale, dando così compimento all’idea di Turing di universalità del calcolo.
Un altro dei concetti chiave introdotti da von Neumann consiste nell’includere in ogni istruzione un codice di operazione che specifichi l’operazione aritmetica o
logica da eseguire e l’indirizzo in memoria dell’elemento su cui essa deve agire. Tale architettura venne proposta da von Neumann nella pubblicazione del progetto
dell’edvac a cui lavorarono, come suoi collaboratori, an* Random Access Memory, ram. [N.d.T.]
19
che J. Presper Eckert e John Mauchly. L’edvac in realtà
non entrò in funzione fino al 1951, quando erano già operativi altri computer a memoria programmabile, quali il
Manchester Small-Scale Experimental Machine, eniac,
edsac e binac, tutti profondamente influenzati dall’articolo di von Neumann e che videro coinvolti Eckert e
Mauchly come progettisti. Von Neumann collaborò direttamente alla progettazione di un gran numero di queste macchine, compresa una versione successiva di eniac
in grado di supportare un programma memorizzato.
Vi furono alcuni antesignani dell’architettura di von
Neumann, anche se nessuno di essi poteva veramente
dirsi una macchina di von Neumann. Con un’eccezione sorprendente: il Mark i di Howard Aiken, costruito nel 1944, il quale conteneva in sé alcuni elementi di
programmabilità ma non usava un programma memorizzato. Leggeva le istruzioni da un nastro di carta perforato ed eseguiva ogni comando immediatamente. Non
vi era alcuna istruzione di salto condizionato quindi non
può essere considerato un esempio di architettura di von
Neumann.
In realtà, la costruzione del Mark i venne preceduta, nel 1941, dalla creazione del computer Z-3 da parte
di Konrad Zuse. Anche lo Z-3 leggeva il programma da
un nastro (in questo caso, codificato su film) e non aveva istruzioni di salto condizionato. È interessante notare
che Zuse ebbe il supporto dell’Istituto di ricerca dell’Aeronautica tedesca che utilizzò lo Z-3 per effettuare un’analisi statistica delle vibrazioni di un’ala d’aereo. In
seguito però la sua proposta al governo nazista di un finanziamento per sostituire i relè con valvole termoioniche venne respinta: il calcolo era «non importante per
la guerra».
20
L’unico vero precursore del concetto di macchina di
von Neumann risale a un secolo prima, si tratta della
macchina analitica di Charles Babbage. Egli la descrisse
per la prima volta nel 1837: includeva l’idea di un programma memorizzato, fornito alla macchina tramite
schede perforate prese in prestito da un telaio Jacquard.
La sua memoria ad accesso casuale includeva un migliaio di parole di cifre decimali ciascuna (l’equivalente di
circa 21 kilobyte). Ogni istruzione includeva un codice
di operazione e un numero operando, proprio come i
moderni linguaggi macchina, nonché salti condizionati
e cicli. Si trattava quindi di una vera e propria macchina
di von Neumann. Sembra però che la macchina analitica
fosse al di là delle capacità meccaniche e organizzative
di Babbage e non entrò mai in funzione. Non è chiaro se
i pionieri dei computer del ventesimo secolo, tra cui von
Neumann, fossero a conoscenza del lavoro di Babbage.
Nonostante non sia mai entrato in funzione, il computer di Babbage ebbe il merito di fondare quel settore
dell’informatica che oggi chiamiamo programmazione.
Ada Byron, contessa di Lovelace e unica figlia legittima
del poeta Lord Byron, scrisse programmi per la macchina analitica sui quali eseguiva un debug mentale, una
pratica ben nota ai creatori di software di oggi e chiamata «table checking». Ella tradusse un articolo del matematico italiano Luigi Menabrea dedicato alla macchina
analitica, aggiungendovi di proprio pugno ampie note.
Scrisse che «la macchina analitica tesse modelli algebrici proprio come il telaio Jacquard tesse fiori e foglie». E
proseguì fornendo forse le prime vere speculazioni sulla
realizzabilità di una intelligenza artificiale, concludendo
però che la macchina analitica «non aveva la pretesa di
originare alcunché».
21
L’invenzione di Babbage ha qualcosa di miracoloso se​​
si considera l’epoca in cui egli ha vissuto e lavorato. Tuttavia, alla metà del xx secolo, il suo lavoro era perso nelle nebbie del tempo. Fu von Neumann a concettualizzare
e articolare i princìpi fondamentali del computer come
lo conosciamo oggi e il mondo gli riconosce questo fatto
continuando a riferirsi alla macchina di von Neumann
come al principale modello di calcolo.
Occorre tenere a mente che la macchina di von Neumann scambia continuamente dati tra ed entro le sue varie unità, quindi non sarebbe possibile costruirne una se
non fosse per i teoremi di Shannon e i metodi da lui ideati per la trasmissione e memorizzazione di informazioni digitali affidabili.
Questa osservazione ci conduce alla quarta idea
fondamentale: trovare un modo per dotare i computer di intelligenza e superare così la conclusione di Ada
Byron che un computer non possa pensare in modo creativo. Alan Turing aveva già introdotto questo obiettivo con il suo saggio del 1950, «Computing Machinery
and Intelligence», che comprende l’ormai famoso Test
di Turing per accertare se una intelligenza artificiale
abbia raggiunto o meno il livello dell’intelligenza umana. In queste pagine, dopo aver introdotto la propria
architettura, von Neumann passa a esaminare il cervello umano. Dopotutto, esso è il migliore esempio di sistema intelligente a nostra disposizione. Se potessimo
apprendere i suoi metodi, potremmo utilizzare questi
paradigmi ispirati alla biologia per costruire macchine più intelligenti. Questo libro rappresenta il primo
esame serio delle strutture del cervello umano dalla
prospettiva di un matematico e di un pioniere dei computer. Prima di von Neumann, i campi dell’informatica
22
e delle neuroscienze erano due isole senza alcun ponte che le collegasse.
Per ironia della sorte, l’ultimo lavoro di uno dei più
brillanti matematici del xx secolo e pioniere dell’era
dell’informazione è stato un esame dell’intelligenza stessa. Quest’opera è stata concepita come una serie di lezioni per la Yale University ma, a causa delle devastazioni
del cancro, von Neumann non consegnò mai il testo delle lezioni e non completò il manoscritto da cui sarebbero
state tratte. Rimane tuttavia una prefigurazione geniale
e profetica di ciò che io considero il più arduo e importante progetto mai concepito dall’umanità.
Von Neumann comincia con l’esporre le analogie e le
differenze tra il computer e il cervello umano. Considerando il fatto che egli scrisse fra il 1955 e il 1956, il manoscritto appare notevolmente accurato soprattutto nei
dettagli concernenti tale confronto. Von Neumann osserva innanzitutto che i neuroni producono un output digitale: un assone, per così dire, o si attiva o non si attiva.
Questo fatto era tutt’altro che scontato a quell’epoca poiché l’output avrebbe potuto anche essere un segnale analogico. L’analisi del segnale nei dendriti che conducono
al soma del neurone, tuttavia, è un processo analogico.
Egli descrive questo processo mediante una somma ponderata degli input con un valore limite di soglia. Questa
descrizione del modo in cui lavorano i neuroni portò allo
sviluppo del connessionismo, un modello per la costruzione e programmazione di hardware e software in cui
i sistemi si ispirano direttamente a questa rappresentazione del comportamento del neurone. Il primo sistema
connessionista è stato creato da Frank Rosenblatt come
programma software per un computer ibm 704 alla Cornell University nel 1957.
23
Oggi abbiamo modelli più sofisticati del modo in cui
i neuroni combinano i dati in ingresso, ma regge ancora l’idea essenziale che l’elaborazione analogica degli input in un dendrite si basi sull’utilizzo di concentrazioni
diverse di neurotrasmettitori. Non dobbiamo aspettarci
che von Neumann nel 1956 potesse avere tutti i dettagli
corretti sui processi di elaborazione delle informazioni
da parte dei neuroni, ma i punti chiave su cui si basano
le sue argomentazioni restano validi.
Von Neumann applica il concetto di universalità del
calcolo per concludere che, per quanto l’architettura e le
unità elementari costituenti un cervello e un computer
appaiano radicalmente differenti, si possa comunque affermare che una macchina di von Neumann sia in grado di simulare i processi di elaborazione del cervello.
Tuttavia non accade il viceversa perché il cervello non è
una macchina di von Neumann e non è dotata di un programma memorizzato. I suoi algoritmi, o i suoi metodi,
sono impliciti nella sua struttura.
Von Neumann conclude correttamente che i neuroni
possono apprendere modelli dai loro stessi input, che,
come oggi sappiamo, sono codificati tramite concentrazioni di neurotrasmettitori. Ciò che non era noto al tempo di von Neumann è che l’apprendimento ha luogo
anche attraverso la creazione e la distruzione di connessioni tra neuroni.
Von Neumann osserva poi che la velocità di elaborazione di un singolo neurone è estremamente bassa,
dell’ordine di un centinaio di calcoli al secondo, ma che
il cervello compensa questa lentezza ricorrendo a una
massiccia elaborazione in parallelo. Tutti i suoi 1010 neuroni processano contemporaneamente (e anche questo
numero è ragionevolmente accurato: le stime oggi dan24
no valori tra 1010 e 1011). Di fatto, ciascuna connessione
elabora simultaneamente alle altre e si consideri che si ha
una media di circa 103 connessioni per neurone.
Le stime e le descrizioni dei processi neurali fornite da von Neumann sono veramente notevoli, considerato lo stato primitivo delle neuroscienze al tempo della
stesura. C’è solo un aspetto su cui mi trovo in disaccordo con lui e riguarda la stima della capacità della memoria del cervello umano. Egli assume che il cervello possa
memorizzare ogni input e conservarlo per l’intera durata della vita. Sessant’anni sono circa 2 · 109 secondi. Assumendo per ipotesi circa quattordici input al secondo
per ciascun neurone (valore questo inferiore di almeno
tre ordini di grandezza rispetto al valore stimato reale)
e con una media di 1010 neuroni, egli ottiene una stima
di circa 1020 bit per la capacità della memoria del cervello umano. Di fatto però noi ricordiamo solo una piccola frazione dei nostri pensieri ed esperienze e questi
ricordi non vengono memorizzati come sequenze di bit a
basso livello (per esempio come un’immagine video) ma
piuttosto come sequenze di modelli di livello superiore.
La nostra corteccia cerebrale è organizzata come una gerarchia di riconoscitori di schemi. Alcuni di questi riconoscitori identificano certe forme topologiche, come la
barra trasversale nella lettera A o la sua concavità verso il basso. Questi sistemi di riconoscitori a basso livello
nella neocorteccia alimentano i processi di riconoscimento messi in atto da riconoscitori di schemi a livello superiore. A quel livello successivo, i riconoscitori possono
identificare specifiche lettere stampate quali la lettera A.
A un livello ancora più alto, possono essere riconosciute le parole, per esempio la parola «arancia». In un’altra
porzione della corteccia, un riconoscitore di livello com25
parabile può identificare l’oggetto corrispondente, un’arancia, e in un’altra parte ancora, un riconoscitore può
identificare la parola pronunciata «arancia». A un livello concettuale ancora più elevato, un riconoscitore può
concludere il processo con un «È stato divertente». La
nostra memoria di eventi e pensieri è codificata in termini di questi riconoscimenti di livello superiore. Se richiamiamo alla mente il ricordo di un’esperienza, nella
nostra testa non accade nulla di equivalente alla proiezione di un video. Piuttosto ricordiamo una sequenza di
questi modelli di alto livello. Dobbiamo re-immaginare
cioè ricostruire l’esperienza, poiché i dettagli non vengono esplicitamente memorizzati.
Possiamo dimostrare a noi stessi quanto detto cercando di richiamare alla mente un’esperienza recente, per
esempio l’ultima volta che abbiamo fatto una passeggiata. Quanto ricordiamo di quell’episodio? Chi è stata la
quinta persona che abbiamo incontrato? Abbiamo visto
una carrozzina? Una cassetta postale? Che cosa abbiamo
visto quando abbiamo svoltato al primo angolo? Se siamo passati accanto ad alcuni negozi, che cosa c’era nella seconda vetrina? Forse siamo in grado di ricostruire le
risposte a queste domande dai pochi indizi che ricordiamo ma la maggior parte di noi non è in grado di richiamare alla memoria in ogni dettaglio un’esperienza come
questa. Le macchine, invece, lo possono fare facilmente
e questo è uno dei vantaggi dell’intelligenza artificiale.
In questo volume, ci sono pochissime conclusioni che
trovo essere in significativo contrasto con ciò che noi oggi
comprendiamo. Oggi noi non siamo in grado di raffigurare il cervello perfettamente, quindi non è ragionevole aspettarsi che possa farlo un libro di retroingegneria
del cervello scritto nel 1956. Detto questo, le descrizio26
ni di von Neumann sono notevolmente aggiornate e i
dettagli su cui lui basa le sue conclusioni restano validi.
Quando prende in considerazione un qualsiasi meccanismo nel cervello mostra come, nonostante le apparenti differenze, un computer moderno potrebbe realizzare
la stessa operazione. I meccanismi analogici del cervello
possono essere simulati attraverso il calcolo digitale perché quest’ultimo può eguagliare valori analogici a qualsiasi grado di precisione desiderato (e la precisione delle
informazioni analogiche nel cervello è piuttosto bassa).
Anche il massiccio parallelismo del cervello umano può essere simulato, dato il significativo vantaggio
in velocità dei computer nel calcolo seriale (un vantaggio che si è notevolmente ampliato da quando il libro
è stato scritto). Inoltre, anche con i computer, possiamo
pensare di utilizzare processi di elaborazione simultanei,
utilizzando appunto più macchine di von Neumann in
parallelo. Ed è precisamente questo il modo in cui oggi
funzionano i supercomputer.
Considerando quanto velocemente siamo in grado di
prendere decisioni e quanto lentamente i nostri neuroni
sono in grado di effettuare calcoli, von Neumann conclude che i metodi del cervello non possono comportare lunghi algoritmi sequenziali. Quando un difensore di
baseball in terza base decide di lanciare alla prima e non
alla seconda base, prende una decisione in una frazione di secondo. C’è solo il tempo perché ciascun neurone
passi attraverso una manciata di cicli (il periodo di tempo necessario perché i circuiti neurali possano tornare a
recepire nuovi input). Von Neumann conclude correttamente che la notevole potenza del cervello umano proviene dai dieci miliardi di neuroni che sono in grado di
elaborare le informazioni tutti allo stesso tempo. Recenti
27
progressi di retroingegneria della corteccia visiva hanno
confermato che siamo in grado di operare sofisticati giudizi visivi con solo tre o quattro cicli neurali.
Vi è una notevole plasticità nel cervello ed è ciò che
ci consente di imparare. Ma vi è una plasticità anche superiore in un computer, che può completamente ristrutturare i propri metodi modificando il proprio software.
Quindi un computer sarà in grado di emulare il cervello
umano ma non potrà accadere il viceversa.
Quando von Neumann confrontò la capacità del nostro cervello di una massiccia elaborazione in parallelo
con quella dei (pochi) computer del suo tempo – siamo
intorno al 1956 – era chiaro che il cervello avesse capacità
di gran lunga superiore. Oggi sono in fase di costruzione i primi supercomputer che consentono una velocità
che, nelle stime più prudenti, è confrontabile con la velocità richiesta per simulare funzionalmente il cervello
umano (circa 1016 operazioni al secondo). Posso provare a stimare che, agli inizi degli anni venti del Duemila,
il costo per un hardware di questo livello di calcolo possa essere intorno ai mille dollari. Anche se, quando questo manoscritto è stato redatto, si era soltanto agli albori
della storia del computer, von Neumann aveva comunque fiducia che prima o poi sia l’hardware sia il software di un’intelligenza umana sarebbero stati disponibili.
Era il motivo per cui preparò queste lezioni.
Von Neumann era profondamente consapevole dei
ritmi accelerati del progresso e delle profonde implicazioni che questo progresso avrebbe avuto per il futuro dell’umanità. Arriviamo così alla quinta idea chiave
dell’era dell’informazione. Nel 1958, un anno dopo la
morte di von Neumann, un collega matematico, Stan
Ulam, riferendosi a una conversazione con lui, riportò
28
questo suo pensiero: «Il progresso sempre accelerante
della tecnologia e dei cambiamenti nei modi di vita degli esseri umani dà l’apparenza dell’avvicinarsi di una
qualche fondamentale singolarità della storia della razza
umana oltre la quale gli affanni degli esseri umani, come
li conosciamo, non potranno più continuare».
Si tratta del primo utilizzo noto della parola «singolarità» nel contesto della storia umana.
Ray Kurzweil, 2012
letture
Bochner S. (1958), A Biographical Memoir of John von Neumann, National Academy of Sciences, Washington D.C.
Turing A.M. (1936), «On Computable Numbers, with
an Application to the Entscheidungsproblem», in
Proceedings of the London Mathematical Society, n. 42,
pp. 230-65, doi:10.1112/plms/s2-42.1.230.
Turing A.M. (1938), «On Computable Numbers, with an
Application to the Entscheidungsproblem: A Correction», in Proceedings of the London Mathematical Society,
n. 43, pp. 544-46, doi:10.1112/plms/s2-43.6.544.
Turing A.M. (ottobre 1950), «Computing Machinery and
Intelligence», in Mind, n. 59 (236), pp. 433-60.
Ulam S. (maggio 1958), «Tribute to John von Neumann»,
in Bulletin of the American Mathematical Society, n. 64
(3, part 2), pp. 1-49.
29
von Neumann J. (30 giugno 1945), «First Draft of a Report on the edvac», Moore School of Electrical Engineering, University of Pennsylvania.
von Neumann J. (luglio e ottobre 1948), «A Mathematical Theory of Communication», in Bell System Technical Journal, n. 27.