Didattica

Didattica di Tutanum

Logica e architettura

Neumann e Hebb

Nella pagina dedicata alla memoria, ai bus e all'ingresso/uscita abbiamo completato la costruzione della macchina, perché dopo aver visto le gerarchie di memoria che tengono vicini i dati più usati, la cache che anticipa i desideri del processore, i bus che fanno viaggiare le parole come strade di una città, gli interrupt che suonano il campanello per chiedere attenzione e il DMA che scarica dal processore i trasporti pesanti, sotto i nostri occhi è rimasto un artigiano obbediente che preleva, decodifica ed esegue, preleva, decodifica ed esegue, senza mai stancarsi e senza mai stupirsi. La domanda che questa pagina vuole metterti in testa è semplice da formulare e strana da rispondere, ed è la seguente, questo modo di calcolare, così preciso, così esplicito e così letterale, è l'unico possibile? Per rispondere facciamo una cosa che un manuale di architettura raramente concede, e cioè allontaniamoci dal banco di lavoro, usciamo dal laboratorio e portiamo sul tavolo un secondo calcolatore, quello che ognuno di noi porta in testa da quando nasce.

Il confronto di oggi mette di fronte due macchine molto diverse, la macchina di von Neumann, che abbiamo già costruito pezzo per pezzo nelle pagine precedenti e che esegue istruzioni scritte una a una da un programmatore, e il cervello biologico, che impara da solo modellando le proprie connessioni secondo la regola che Donald Hebb descrisse nel 1949. Entrambe prendono informazioni, le trasformano e restituiscono risultati, dunque entrambe calcolano, eppure lo fanno in modi così lontani che a prima vista sembrano appartenere a universi diversi. La prospettiva della Fisica Ontologica, che considera questi due sistemi due strati diversi della stessa realtà fisica, materia che organizza il calcolo con leggi identiche ma architetture opposte, ci aiuta a guardare il confronto con curiosità serena anziché con spirito di gara, e ci ricorda che lo scopo del nostro manuale resta quello di permetterti di capire la macchina fino in fondo e un giorno di ricostruirla, pezzo dopo pezzo, con le tue mani.

Torniamo per un attimo indietro, fino agli anni quaranta del secolo scorso, quando i primi calcolatori come l'ENIAC venivano programmati a mano azionando interruttori e inserendo cavi nei pannelli, un lavoro lento e delicato come impiombare una nave, e il matematico John von Neumann, genio capace di citare a memoria libri letti anni prima, capì che quei cablaggi potevano sparire, perché le istruzioni di un programma possono essere scritte in forma numerica e depositate nella stessa memoria che ospita i dati. Su questa intuizione nacque la macchina IAS dell'Institute for Advanced Studies di Princeton, descritta nel report dell'EDVAC, e nacque l'architettura che Tanenbaum chiama macchina di von Neumann e che ancora oggi, a ottant'anni di distanza, soggiace a quasi tutti i calcolatori digitali, dal microscopico chip della tua lavatrice ai server che reggono le nuvole di dati.

La scelta rivoluzionaria, quella da cui tutto il resto discende, è il programma memorizzato, cioè la decisione di tenere istruzioni e dati dentro celle della stessa natura, numerate in sequenza e perfettamente intercambiabili. Il ragionamento dietro questa scelta è artigianale più che matematico, e suona in sostanza così, se una memoria funziona per conservare numeri allora funziona altrettanto bene per conservare numeri che significano comandi, e un unico magazzino con cassetti identici basta per le materie prime e per i fogli di istruzione, così il capofficina non deve riscrivere gli scaffali ogni volta che cambia lavoro. La conseguenza pratica è immensa, perché la macchina può trattare i programmi come dati, caricarli da disco, copiarli, spostarli e modificarli, e può perfino riscrivere se stessa, capacità che ritroverai quando studierai i sistemi operativi e che distingue il calcolatore da ogni macchina a programma fisico mai costruita.

La macchina descritta da von Neumann si compone di cinque organi, la memoria, che abbiamo analizzato pagina per pagina, l'unità aritmetico-logica, che somma, confronta e decide manipolando segnali elettrici, l'unità di controllo, che tiene il ritmo e ordina gli altri organi, e infine le apparecchiature di ingresso e di uscita, che parlano col mondo esterno. Nelle macchine moderne le due unità centrali vivono fuse dentro un unico chip chiamato CPU, cioè unità di elaborazione centrale, e la macchina IAS originale aveva una memoria di 4096 parole da 40 bit ciascuna, con la possibilità di conservare due istruzioni da 20 bit in una parola sola, otto bit per dire il tipo di comando e dodici per indicare quale delle 4096 celle toccare, e custodiva al centro dell'unità aritmetico-logica un registro speciale, l'accumulatore, che raccoglieva i risultati come il piano di lavoro raccoglie le miscele di un pasticciere.

Il cuore pulsante di tutta questa architettura è il ciclo di prelievo, decodifica ed esecuzione, che in inglese viene detto fetch-decode-execute e che abbiamo già visto all'opera dentro la Mic-1. Il contatore di programma, un registro chiamato PC, segnala ogni volta la cella dell'istruzione successiva, l'unità di controllo la preleva e la depone in un registro d'appoggio, il puntatore avanza, i circuiti decodificano il tipo di comando e la destinazione degli operandi, e infine l'azione vera viene compiuta, una somma, una copia, un salto, prima che il tutto ricominci, istruzione dopo istruzione, col ritmo regolare di un orologio che scandisce miliardi di passi al secondo. Come osserva Tanenbaum, questa sequenza ha un'importanza centrale nel funzionamento di qualunque calcolatore, perché definisce che cosa la macchina sia in grado di fare, e più il ciclo è veloce più il calcolatore è veloce.

Osserva con attenzione una scelta di progetto che spesso passa inosservata, e cioè la separazione fra memoria e processore, due organi distinti collegati da bus, costruiti con tecnologie diverse e ottimizzati per compiti opposti. La memoria deve custodire miliardi di celle ed essere capiente ed economica, il processore deve essere rapidissimo e per questo resta piccolo e costoso, e il collo di bottiglia fra i due è il prezzo che si paga per averli entrambi al meglio. C'è di più, perché in questa architettura ogni istruzione eseguita è stata scritta esplicitamente da un essere umano, il programmatore ha deciso ogni ramo, ogni ciclo e ogni soglia, e la macchina li esegue con precisione assoluta, né più né meno di quanto ordinato, il che è la sua forza quando il programma è giusto e la sua vulnerabilità quando il programma sbaglia.

Ora spostiamo il tavolo da lavoro dentro il cranio, con la stessa curiosità con cui smontiamo un circuito. A controllare il corpo umano e di altri animali pensa il sistema nervoso, che si divide in sistema nervoso centrale, fatto di cervello e midollo spinale, e sistema nervoso periferico, fatto dei nervi che si diramano ovunque come cavi in una città, con una sezione autonoma che regola cuore, respirazione e digestione senza chiedere il permesso alla coscienza. Persino l'intestino possiede una rete di neuroni chiamata sistema nervoso enterico, descritta nella letteratura come un secondo cervello capace di coordinare la digestione da solo, e anche questa è materia del capitolo sull'inconscio neurologico del libro di Psicologia Ontologica a cui questa pagina attinge. Nota bene fin da subito tre assenze sorprendenti, nessun orologio scandisce i passi, nessun programma è scritto da nessuna parte, e nessun progettista ha mai disegnato lo schema elettrico.

L'unità fondamentale di tutto questo sistema è il neurone, una cellula specializzata che riceve, decide e trasmette. Immaginiamolo come un piccolo borgo fra due città, i dendriti sono le strade di campagna che portano i messaggi al centro del borgo, rami sottili che si dividono in rami sempre più sottili per raccogliere il traffico da ogni direzione, il soma, cioè il corpo cellulare, è la piazza dove gli arrivi convergono e dove la somma dei messaggi viene calcolata di continuo, e l'assone è la strada statale, un unico lungo tracciato isolato e rivestito come una galleria che collega il borgo al borgo successivo, capace di portare il messaggio lontano senza che l'intensità vada perduta nel viaggio. Ogni neurone è dunque un incrocio fra ricezione diffusa e trasmissione concentrata, ed è questa forma affusolata a renderlo adatto alla sua funzione.

Alla fine dell'assone il messaggio deve saltare un piccolo fosso, la fessura fra un neurone e l'altro chiamata sinapsi, e qui avviene la magia più interessante di tutto il capitolo. Quando l'impulso arriva, il neurone che trasmette rilascia nella fessura delle sostanze chimiche chiamate neurotrasmettitori, piccoli messaggeri che attraversano il vuoto a nuoto e si appoggiano sui recettori del neurone ricevente, aprendo canali attraverso cui nasce una nuova eccitazione elettrica. Il neurone che riceve somma tutte queste eccitazioni che arrivano dai suoi tanti dendriti, e quando la somma supera una certa soglia scatta, scaricando lungo l'assone un impulso tutto d'un pezzo, un fenomeno descritto come tutto o niente, identico ogni volta, come il grilletto di una pistola giocattolo che scatta solo quando la leva supera una certa corsa. L'impulso in sé è sempre identico, e la forza del segnale risiede nella frequenza con cui gli impulsi si ripetono e nella larghezza del varco sinaptico.

I numeri aiutano a rispettare questa architettura, perché il cervello umano contiene circa ottantasei miliardi di neuroni, ciascuno collegato a migliaia di altri per un totale di connessioni che si contano a migliaia di miliardi, e il tutto funziona con una potenza intorno ai venti watt, quanto una lampadina di casa, il che ci dice che la natura ha trovato un modo di calcolare straordinariamente parsimonioso. Accanto ai neuroni lavorano cellule di sostegno chiamate glia, che nutrono, isolano e riparano i tracciati come gli operai che mantengono le strade in città, e ogni cosa avviene senza un ritmo unico, perché ogni neurone scatta al proprio passo, in un concerto asincrono dove i messaggi viaggiano a velocità diverse lungo assoni più o meno lunghi. Soprattutto, il comportamento del sistema non è scritto in alcun programma, e risiede interamente nella forza variabile delle connessioni, che rappresentano il suo unico deposito di sapere.

Qui entra in scena il secondo protagonista della pagina, il psicologo canadese Donald Hebb, che nel 1949 pubblicò un libro intitolato The Organization of Behavior dove propose una regola sorprendentemente semplice per spiegare come il cervello impari. La regola, oggi celebrata come regola di Hebb, dice in sostanza che quando un neurone partecipa ripetutamente a far scattare un altro neurone, il legame fra i due si rafforza, come una strada battuta ogni giorno che si allarga e si asfalta per il solo passaggio costante del traffico. In forma poetica la regola è diventata un detto inglese che vale la pena di conoscere nella sua lingua d'origine, fire together wire together, che potremmo tradurre con chi si attiva insieme si lega insieme, e nota il cambio di punto di vista rispetto alla macchina di von Neumann, perché qui nessuno scrive istruzioni e sono le connessioni stesse a registrare l'esperienza.

La regola di Hebb racconta un'esperienza che conosci intimamente, anche se probabilmente non l'avevi mai nominata con questo nome. Ricorda quando imparasti a legare le scarpe, ad andare in bicicletta oppure a suonare il primo accordo sulla chitarra, gesti all'inizio impacciati che richiedevano tutta la tua attenzione e uscivano storti a ogni tentativo, e ricorda come, dopo giorni e settimane di ripetizione, le dita cominciarono a muoversi da sole, finché un giorno eseguivi il gesto mentre pensavi ad altro. Quella trasformazione dall'impaccio alla scioltezza è la regola di Hebb al lavoro dentro di te, perché ogni ripetizione ha fatto scattare gli stessi neuroni nello stesso ordine, e ogni scatto coordinato ha rafforzato i legami fra loro, scavando un solco sempre più comodo nella materia del tuo cervello, finché il percorso è diventato la via preferenziale per quel gesto.

Anche il meccanismo molecolare che spiega la regola è stato riscoperto e studiato dai neuroscienziati, ed è chiamato plasticità sinaptica, con esperimenti che hanno mostrato come la stimolazione ripetuta di una sinapsi la renda più sensibile, un fenomeno noto come potenziamento a lungo termine, con più recettori che affiorano sulla membrana del neurone ricevente e più neurotrasmettitore liberato da quello trasmittente, come se il varco fra le due strade si allargasse ogni volta che il traffico lo attraversa. Vale anche il cammino in discesa, perché le connessioni trascurate si indeboliscono e possono scomparire, per cui il cervello dimentica ciò che non usa, e questa doppia legge, che rafforza ciò che ripeti e lascia sbiadire ciò che trascuri, è il motivo per cui la pratica rende perfetti e l'abbandono lascia la ruggine, e spiega come due persone con lo stesso cervello alla nascita possano diventare, una violinista e l'altra meccanico, semplicemente ripetendo giorno dopo giorno gesti diversi.

Per la trattazione di questi argomenti il percorso didattico di Tutanum attinge al libro Psicologia Ontologica di Cristian Rossi, dove il capitolo sull'inconscio neurologico descrive il sistema nervoso con le sue tipologie e il neurone come unità fondamentale dell'encefalo, e dove le leggi di Hebb compaiono anche quando si discute di come reti coerenti diano una psiche integrata invece che frammentata. Va detto con garbo, perché l'onestà è parte del mestiere, che al momento in cui scriviamo la sezione dedicata alle reti neuronali di quel capitolo è ancora in corso di scrittura, così come alcune sezioni vicine, e ti invitiamo lo stesso a visitare il libro, dove il materiale già presente offre oggi una mappa preziosa del sistema nervoso vista dalla prospettiva ontologica che questo sito condivide.

Mettiamo ora le due macchine una di fronte all'altra sul tavolo e osserviamole con la calma di chi compara due attrezzi da lavoro. La macchina di von Neumann calcola in modo esplicito, ogni passo è un'istruzione scritta da un programmatore e conservata in memoria, e l'esecuzione procede in sequenza, un comando dopo l'altro, col ritmo sicuro di un metronomo. Il cervello calcola in modo emergente, nessuno scrive le istruzioni e il comportamento nasce dalla cooperazione di miliardi di unità semplici che lavorano insieme, in parallelo e senza direttore d'orchestra. La macchina è precisa al singolo bit e ripete all'infinito senza annoiarsi, il cervello è tollerante ai guasti e continua a funzionare anche quando molte sue cellule vengono a mancare. La macchina è stata progettata da ingegneri, il cervello si è costruito da solo attraverso l'esperienza, e ognuna di queste affermazioni merita rispetto anziché vanto.

Rendiamo il contrasto con cura, usando proposizioni affermative come si conviene a un manuale paziente. La macchina deve la sua precisione al fatto che ogni comportamento le è stato comunicato parola per parola, il cervello deve la sua flessibilità al fatto che i suoi legami si accordano da soli sotto la pressione dell'esperienza, e ognuno paga il prezzo della propria virtù, perché alla macchina ogni nuovo comportamento costa ore di lavoro umano, mentre al cervello ogni nuovo comportamento costa ripetizioni, dati e tempo. Quando diciamo che il cervello impara anziché eseguire, oppure che la macchina esegue invece di apprendere, non stiamo decretando un vincitore, stiamo solo nominando due mestieri diversi, quello dell'esecutore impeccabile e quello dell'apprendista che si educa da solo.

La prospettiva della Fisica Ontologica, che questo sito abbraccia, guarda il confronto da un piano più alto e vede due strati diversi della stessa realtà fisica, materia che in un caso è silicio drogato e metallo e nell'altro caso è acqua, grassi e sali, e che in entrambi i casi organizza il calcolo rispettando le stesse leggi della natura. In questa visione non c'è guerra fra i modelli, e c'è invece una geologia di livelli sovrapposti, il calcolo considerato come proprietà della materia ben organizzata, e la domanda interessante diventa quale architettura si adatti meglio a quale compito, come chiedersi se per tagliare un albero convenga la sega a mano del boscaiolo esperto oppure la motosega del taglialegna industriale, con la risposta onesta che dipende dall'albero, dal tempo a disposizione e dalle mani che ci sono.

Anche il cervello ha le sue ragioni di progetto, anche se nessuno le progettò davvero, e confrontarle con quelle della macchina illumina entrambe. La macchina separa memoria e processore per ottimizzare ciascuno per la propria specialità, il cervello fonde le due funzioni dentro ogni neurone, che è insieme calcolatore e deposito di ricordi, ottenendo robustezza e risparmio energetico a prezzo di lentezza nei singoli passi. La macchina adotta un orologio per garantire il determinismo, cioè la certezza che ripetere lo stesso programma con gli stessi dati dia sempre lo stesso risultato, il cervello rinuncia volentieri a questa certezza, perché alla sopravvivenza contano reazioni rapide e flessibili anziché risposte identiche, e paga questa scelta con l'irripetibilità dei propri stati.

Esiste un ponte fra questi due mondi, e per costruirlo basta una domanda apparentemente innocente, e cioè cosa succede se proviamo a realizzare con i circuiti della macchina di von Neumann l'idea di Hebb. La risposta prese corpo nel 1943 con il modello matematico di McCulloch e Pitts, e soprattutto nel 1958 con il percettrone di Frank Rosenblatt, una rete neurale artificiale costruita con componenti elettronici e presentata alla stampa dell'epoca come l'inizio di macchine che avrebbero imparato a vedere e a ragionare. L'idea centrale era semplice e rivoluzionaria insieme, prendere il neurone biologico come modello, ridurlo a una formula aritmetica, e far sì che quella formula impari correggendo i propri errori, e da allora le reti neurali artificiali sono diventate uno dei rami più fecondi dell'informatica.

Il percettrone si spiega bene pensandolo come un comitato di votanti dentro un piccolo municipio. Ogni ingresso della rete è un cittadino che esprime il proprio voto, un numero, e ogni connessione fra cittadino e giudice porta un peso, cioè un numero che dice quanto quel voto conta, un po' come dare due voti al sindaco e mezzo voto all'ultimo arrivato. Il percettrone calcola la somma ponderata dei voti, moltiplicando ogni voto per il suo peso e aggiungendo i contributi, poi confronta la somma con una soglia prestabilita, e se la somma raggiunge la soglia l'uscita vale uno, come una lampadina che si accende, altrimenti vale zero e la lampadina resta spenta. Questo piccolo calcolo, per quanto modesto, è in grado di imparare, e il segreto sta nel modo in cui vengono scelti i pesi.

I pesi del percettrone sono la sua memoria e il suo sapere, esattamente come le sinapsi del cervello, e questa analogia è il cuore dell'idea, lontana da un semplice vezzo retorico. Un percettrone che deve riconoscere se in una fotografia c'è un gatto conserva tutta la sua conoscenza del gatto dentro i valori dei suoi pesi, numeri magari modesti ciascuno, ma miliardi di numeri che insieme descrivono la forma delle orecchie, la consistenza del pelo e l'inclinazione dei baffi. Cambiando i pesi cambia il comportamento della rete, il che significa che addestrare la rete e modificarne i pesi sono la stessa operazione vista da due angoli diversi, e questo risponde alla domanda che forse ti sei già posto, e cioè dove il programmatore scrive le istruzioni, con la risposta che il programmatore scrive solo la forma del calcolo, mentre i numeri che decidono il comportamento nascono dall'addestramento.

L'addestramento del percettrone è il punto in cui la regola di Hebb incontra il mondo della macchina. Il procedimento, detto apprendimento supervisionato, funziona così, si mostra alla rete un esempio, per esempio una fotografia con la risposta corretta scritta sopra, la rete calcola la sua uscita e l'addestratore confronta l'uscita con la risposta giusta, e se la rete si è sbagliata i pesi vengono spostati di poco nella direzione che avrebbe ridotto l'errore, abbassando i pesi dei voti che hanno spinto nella direzione sbagliata e alzando quelli dei voti che l'avrebbero corretta. Ripetuta migliaia o milioni di volte con esempi diversi, questa regolazione guidata dagli errori conduce la rete a comportamenti che nessuno ha programmato esplicitamente, e nelle reti profonde l'errore viene smistato all'indietro attraverso gli strati grazie a un algoritmo chiamato backpropagation, il contabile che distribuisce le colpe dei fallimenti.

E qui arriva il colpo di scena che chiude il cerchio della pagina. Tutta questa magia, i pesi, le soglie, l'addestramento e le reti profonde, gira alla fine sulla stessa macchina di von Neumann che abbiamo costruito nelle pagine precedenti, perché i pesi della rete sono numeri conservati nella memoria, i calcoli della somma ponderata sono somme e moltiplicazioni eseguite dall'unità aritmetico-logica, e ogni passo dell'addestramento è un'istruzione prelevata, decodificata ed eseguita una dopo l'altra, col solito ritmo del ciclo fetch-decode-execute. La rete neurale è in fondo un programma che imita il neurone, un interprete nel senso che Tanenbaum dà alla parola quando mostra come un programma possa simulare una macchina, e la macchina di von Neumann, che sa soltanto eseguire istruzioni esplicite, diventa così lo strumento con cui simuliamo un sistema che non ne ha alcuna.

La scala raggiunta da questa simulazione supera ogni aspettativa dei pionieri, e oggi le reti profonde, chiamate deep learning in inglese, riconoscono volti e voci, traducono lingue, guidano automobili e conversano con noi, il tutto calcolato su processori che eseguono miliardi di operazioni semplici al secondo, spesso processori grafici nati per i videogiochi e ritrovati perfetti per le moltiplicazioni fra matrici che le reti richiedono. Resta il fatto, che troviamo rassicurante e che ci riporta alla visione ontologica del sito, che ogni lampo di intelligenza artificiale consuma energia attraverso lo stesso spostamento di elettroni che fa lampeggiare una somma nell'accumulatore, e che i due strati della realtà, quello biologico e quello artificiale, parlano la stessa lingua fisica.

Confrontiamo infine i consumi, perché un artigiano guarda sempre la bolletta. Il tuo cervello lavora con circa venti watt, la potenza di una lampadina, e impara da solo mentre cammini, mangi e dormi, raccogliendo esempi dal mondo e rafforzando le connessioni senza che tu debba scrivere una sola riga di codice. Un centro di calcolo che addestra una grande rete neurale consuma invece potenze da capogiro, dell'ordine dei megawatt, e richiede che interi team di persone preparino i dati, scrivano i programmi di addestramento e vigilino su ogni dettaglio, perché la macchina esegue con precisione assoluta ciò per cui è stata programmata e nulla più, e non apprende di sua iniziativa neppure quando sbaglia.

Il senso di questa pagina, riassunto con la calma di chi chiude la cassetta degli attrezzi, è che esistono due mestieri del calcolo, quello dell'esecutore perfetto che fa esattamente ciò che gli è stato scritto, e quello dell'apprendista autonomo che si costruisce il proprio comportamento modellando i propri legami. Per il percorso di Tutanum la scelta è dichiarata, e ci serve la macchina esplicita, quella che possiamo smontare, capire e ricostruire, perché nessuno ha ancora ricostruito un cervello, mentre tu, alla fine di questo manuale, potrai costruire la tua macchina di von Neumann con le tue mani, e sapendo come impara il cervello potrai anche decidere, con cognizione di causa, quando valga la pena insegnare al tuo costrutto l'una oppure l'altra delle due strade.

La teoria, per quanto raccontata con calma, lascia un velo di nebbia finché resta soltanto letta, quindi adesso appoggia la spiegazione e vieni a sporcarti le dita con sei esperimenti, tutti alla portata di un tavolo di casa e ordinati dal più semplice al più articolato, e ciascuno ti farà toccare con mano un pezzo di quanto hai letto, e per questi esperimenti il manuale si rivolge a te con il per tu, come si conviene al lavoro pratico.

Per il primo esperimento serve solo un foglio di carta, una matita e tre prove di cui fidarti, per esempio il termometro che leggi al mattino, l'ombrello appeso all'ingresso e il messaggio di un'amica che ti invita a una passeggiata. Decidi una piccola decisione da prendere ogni giorno, per esempio uscire oppure restare a casa, disegna tre frecce in ingresso che rappresentano le tre prove, assegna a ciascuna un peso da uno a tre in base all'importanza che le riconosci, stabilisci una soglia, per esempio quattro, e per una settimana calcola a mano la somma ponderata ogni mattina segnando scelta e risultato, poi a fine settimana chiediti se la soglia era giusta e ritocca i pesi se qualche prova si è rivelata più fedele delle altre, così avrai addestrato a mano il tuo primo percettrone.

Per il secondo esperimento apri un foglio di calcolo, per esempio quello libero che trovi cercando LibreOffice Calc in rete, e ricostruisci il percettrone del giorno prima dentro le celle, mettendo le prove in una colonna, i pesi in quella accanto e la somma ponderata in una formula che moltiplica e aggiunge per te, con una seconda formula che accende uno se la somma supera la soglia e zero altrimenti. Ora gioca, alza il peso della pioggia finché l'uscita diventa zero anche col sole, abbassa la soglia finché basti un messaggio qualsiasi, e osserva come ogni numero cambi il comportamento dell'intero foglio, perché quello che stai vedendo sono i pesi che guidano le decisioni, esattamente come nella rete artificiale.

Per il terzo esperimento apri nel browser la pagina chiamata TensorFlow Playground, cercandola per nome in rete, che è un laboratorio visuale dove una rete neurale impara davanti ai tuoi occhi. Scegli uno dei problemi proposti, per esempio separare due nuvole di puntini di colore diverso, premi il tasto che avvia l'addestramento e osserva le linee che si muovono mentre l'errore scende, poi prova ad aggiungere uno strato di neuroni e vedi il confine di decisione diventare più sinuoso, e infine togli tutti gli strati nascosti per constatare che un percettrone singolo sa tracciare soltanto confini dritti. Nessuna riga di codice è richiesta, eppure stai assistendo alla regola di Hebb e all'addestramento guidato dall'errore tradotti in immagini che si muovono.

Per il quarto esperimento sei tu il soggetto della ricerca, perché ti proponiamo di imparare un gesto nuovo, per esempio giocolare con tre palline, battere un ritmo con le mani oppure suonare un accordo mai provato, riservandogli quindici minuti al giorno per sette giorni di fila. Tieni un diario con data, durata e numero di tentativi riusciti, e noterai una curva che prima scende lenta e poi all'improvviso sale, proprio la firma del passaggio dal gesto impacciato al gesto automatico, che è la regola di Hebb che scolpisce le tue sinapsi mentre insisti. Al termine rileggi il diario e prova a spiegare a voce alta, usando le parole di questa pagina, cosa è successo dentro il tuo sistema nervoso, perché saper raccontare un meccanismo è la prova più severa di averlo capito.

Per il quinto esperimento scambia i ruoli e diventa tu la macchina di von Neumann, usando per programma una ricetta di cucina scritta per esteso. Eseguila passo dopo passo tenendo un dito sulla riga corrente come fosse il contatore di programma, leggi ogni riga ad alta voce prima di eseguirla come avviene nel prelievo, interpreta il significato come avviene nella decodifica, compi l'azione come avviene nell'esecuzione, e segnati ogni volta che il programma è ambiguo, per esempio quando dice cuoci finché è pronto senza spiegare come riconoscere la prontezza. Quando avrai finito avrai sul tavolo una pietanza calda e una lista di difetti del programma, e capirai sul serio perché la macchina ha bisogno di istruzioni esplicite e cosa significa scrivere un programma che un esecutore letterale possa seguire senza fantasie.

Per il sesto e ultimo esperimento gira per casa con lo sguardo da tecnico e inventaria i calcolatori che vi abitano, distinguendo quelli che eseguono programmi espliciti, come il forno a microonde con i suoi tempi cablati, il router con le sue regole di rete e la lavatrice col suo ciclo prestabilito, da quelli che apprendono dai dati, come l'assistente vocale che migliora riconoscendoti la voce e il telefono che completa le tue frasi. Scrivi due colonne su un foglio e cerca almeno tre esempi per ciascuna, poi chiediti quale dei due mestieri del calcolo usi ciascun oggetto per renderti la vita comoda, e rifletti sul fatto che il confine fra le due colonne si sta muovendo velocemente proprio mentre studi, perché sempre più oggetti di casa stanno imparando invece di limitarsi a eseguire.

Il modulo attinge a due fonti principali, e cioè al volume Architettura dei calcolatori di Andrew S. Tanenbaum, in particolare al capitolo primo con la sezione sulla prima generazione di calcolatori dove nasce la macchina di von Neumann, e al capitolo secondo con le sezioni sull'organizzazione della CPU e sull'esecuzione dell'istruzione, dove il ciclo di prelievo, decodifica ed esecuzione riceve trattazione piena, e al libro Psicologia Ontologica di Cristian Rossi, disponibile all'indirizzo cristianrossi.dev/libro, in particolare al capitolo sull'inconscio neurologico per il sistema nervoso e il neurone, con la sezione dedicata alle reti neuronali ancora in corso di scrittura, e al capitolo sulla coscienza percettiva per il richiamo alle leggi di Hebb.

Con questo confronto fra il calcolo esplicito e il calcolo appreso si chiude anche il piano dell'hardware puro, perché d'ora in poi il nostro manuale sale sui propri gradini verso i programmi che governano la macchina, e ti invitiamo a proseguire verso la pagina successiva, dedicata ai sistemi operativi e allo sviluppo, dove scopriremo chi tiene il banco mentre tu scrivi, chi divide la memoria fra tanti programmi e chi fa sembrare una macchina sequenziale un mondo di attività simultanee.