Ricordo di Piero Slocovich
Come il lavoro con il Prof. Sce influenzò i miei interessi di ricerca
Nella primavera del 1961 lavoravo presso il Laboratorio di Ricerche Elettroniche della Olivetti di Borgolombardo in un team costituito da progettisti di primo ordine (tra i quali Simone Fubini, Vittore Vittorelli, Ermanno Maccario, Renato Betti, Mauro Caprara). Dopo aver sviluppato una unità logico aritmetica con ben 48 bits di parallelismo, riuscii ad essere inserito nel laboratorio diretto da Piergiorgio Perotto nel quale venivano sviluppati progetti di cibernetica avanzata e nel settembre del 1962 divenni un assistente di Michele Sce.
Ricordo Sce come persona gentile, curiosa e disponibile ad ascoltare gli altri e a ragionare con loro, di carattere mite e riservato, ma anche pronto a critiche sarcastiche. Al mattino arrivava in laboratorio con il giornale “l’Unità” che teneva ben visibile nella tasca della giacca; si sedeva alla scrivania ed iniziava subito le sue attività mentre altri facevano capannello attorno all’omino del caffè. Sebbene fossimo vicini di scrivania, normalmente scambiavamo ben poche parole, sia per il suo carattere sia per il mio.
Sce, in quel periodo, stava studiando sistemi per classificare i segni della scrittura; una macchina prototipale, completamente realizzata in hardware, era già in funzione. Giorgio Sacerdoti, allora direttore del Laboratorio di Ricerche Elettroniche, aveva appena chiesto a Sce di compiere un notevole passo verso il futuro: progettare una macchina in grado di riconoscere, dopo una fase di apprendimento, qualsivoglia alfabeto di grafemi e non più solo di riconoscere i grafemi in base alla descrizione topologica di ciascun segno.
L’ipotesi di progetto era ambiziosa e io, che vi fui coinvolto, affrontai con vera passione tale lavoro. Michele Sce trascorse alcuni giorni in biblioteca a documentarsi. Di 14 articoli ne scartò la maggior parte, anzi tutti meno uno, l’unico, secondo lui, degno di essere preso in considerazione. Si trattava della descrizione della macchina PAPA, scritto da Antonio Gamba e pubblicato sulla rivista Il Nuovo Cimento nel numero di febbraio del 1959.
PAPA non era una macchina orientata a riconoscere forme, bensì schemi; più esattamente era stata progettata per riconoscere la traccia lasciata su una scacchiera da mosse consecutive di pezzi degli scacchi di cui aveva registrato in precedenza diverse sequenze di mosse casuali. Si capisce meglio il funzionamento della macchina seguendo l’illustrazione fornitane da Gamba, che qui sintetizzo.
La macchina è costituita da una sorgente di luce e da una cellula fotoelettrica collegata a un amperometro; tra la sorgente di luce e la cellula vengono frapposte delle maschere di cartone opportunamente traforate. Le maschere riportano il disegno di una scacchiera e sono di due tipi: maschere F “di filtro” (300 in tutto) e maschere P caratteristiche di ciascuno dei pezzi degli scacchi presi in esame (50 per ogni pezzo); per semplicità si utilizzano solo due pezzi: torre e cavallo. Le maschere F hanno 4 o 5 fori determinati a caso, mentre sulle maschere P i fori (in numero variabile tra 6 e 9) sono traccia di alcune mosse consecutive del pezzo degli scacchi a cui si riferiscono. Le maschere vanno usate sempre in sovrapposizione, una maschera F giustapposta a una P, di modo tale che la luce passi solo se i fori praticati nelle maschere sono coincidenti.
Per il funzionamento bisogna distinguere due fasi: apprendimento e riconoscimento. Nella fase di apprendimento, per ciascuna maschera P del pezzo “torre” viene ripetuto questo processo: la maschera viene successivamente sovrapposta (in un ordine costante al variare di P) a ciascuna delle maschere F e vengono annotati in un vettore con 300 celle i valori di luminosità di volta in volta indicati dall’amperometro; quindi si effettua la media aritmetica delle celle omologhe di tutti i vettori, ottenendo un unico vettore: tale vettore è caratteristico del pezzo “torre”. Si itera tutto il processo con le 50 maschere del pezzo “cavallo”, generando un secondo vettore, caratteristico di tale pezzo. A questo punto, asseriva Gamba, la macchina ha terminato la fase di apprendimento e si può procedere alla fase di riconoscimento.
Per riconoscere se una maschera di tipo P è di torre o di cavallo, le si giustappongono ordinatamente le 300 maschere F annotando i valori di luminosità in un vettore; tale vettore viene poi cross-correlato con ciascuno dei due vettori caratteristici delle mosse ottenuti dall’apprendimento (cioè si fa la sommatoria dei valori assoluti delle differenze tra celle omologhe) e se uno dei due valori della cross-correlazione è prossimo allo zero si classifica la maschera P come maschera del pezzo di cui il vettore che realizza la cross-relazione prossima a zero è caratteristico. Nel suo articolo Gamba aggiungeva che non sempre si ha un riconoscimento, ma che il più delle volte la procedura funziona correttamente.
Michele Sce osservò dunque che, tra tutti gli articoli letti, gli pareva che questo fosse l’unico degno di essere preso in considerazione. Non riuscendo a stabilire i pro e i contro di tale algoritmo, per capire di più propose un viaggio a Genova per dialogare con Gamba. Da tale incontro non emerse alcunché di nuovo: ricordo Sce sorridere garbatamente quando Gamba gli disse che i numeri casuali presenti sulle maschere di filtro erano stati scelti dal suo figlioletto di 4 anni. Sce comunque non si scoraggiò e concluse che per capire meglio era bene riprodurre tale processo, provare a variare alcuni parametri, ad esempio la quantità di fori sulle maschere o altro ancora. Per aggirare la “macchinosità” del modello propose di simulare mediante un programma tale modello, e mi incaricò di procedere alla programmazione sull’ELEA 9003. Venni però fermato dalla burocrazia: in pratica un tecnico di un laboratorio hardware non doveva/poteva accedere al centro di calcolo. Fui costretto a stendere delle specifiche e passarle al servizio di sviluppo programmi del centro di calcolo. Il 16 novembre 1962 pubblicai il documento di specifica e mi trovai senza occupazione. Chiesi a Sce cosa avrei dovuto fare nell’attesa che fosse disponibile il modello per cominciare le sperimentazioni. Il mio rammarico cessò subito quando Sce mi disse: “Slocovich, nel frattempo, cerchi di capire se e come faccia a funzionare codesto modello”. Sce aggiunse anche: “È possibile che tale modello serva a riconoscere mosse di torre da mosse di cavallo, ma non a riconoscere dei grafemi”.
Dopo questa osservazione mi proposi di pensare con tutta libertà. Gli strumenti di calcolo di cui potevo disporre erano unicamente carta e matita, visto tra l’altro che mi era negato l’accesso all’ELEA; pensandoci oggi non era una grave perdita: l’ELEA era in grado di processare 5700 istruzioni al secondo, potenza di calcolo che oggi ci farebbe sorridere; inoltre non erano disponibili dei compilatori, si programmava in linguaggio base. Armato di tanta buona volontà iniziai a ragionare.
Raccogliere quanto diceva Sce significava lasciar stare le mosse degli scacchi e passare subito a lavorare con simboli grafici: lo scopo ultimo era quello di studiare una macchina in grado di leggere la scrittura. Per poter condurre una sperimentazione senza l’ausilio di un calcolatore, pur mantenendone la metodologia, ossia l’uso di matrici di zeri ed uni, ridussi l’ordine delle dimensioni delle scacchiere e passai a lavorare su piccole matrici: le problematiche non dovevano poi essere molto diverse!
Dopo alcuni giorni di lavoro, mi resi conto che i simboli che potevo descrivere in quelle piccole matrici, erano ben pochi: anche tenendo conto di tutti i simboli, ancora validi, che potevo generare con un errore di lettura, tutti gli altri erano spazzatura. Questo sciocco e pedissequo lavoro fu utile a farmi notare una cosa banale e ovvia: tutte le celle delle matrici (grafemi traslati in zeri e uni su delle matrici) godevano di una proprietà che emerge degli stessi grafemi: è assai probabile che un punto nero sia adiacente ad altro punto nero (che rappresentavo con un 1); analoga cosa per i punti bianchi (rappresentati con 0). Alla ricerca di una convalida della mia congettura, cercai di capire quanto fosse generale. Osservai che tutti i grafemi appartenenti a qualsivoglia alfabeto (latino, greco, cirillico, arabo, …), grazie anche ai meccanismi necessari alla loro generazione (penna, pennello, cuneo, scalpello) necessariamente sono costituiti da una buona quantità di punti contigui. Quindi era possibile ipotizzare l’esistenza di una correlazione locale tra i punti che compongono un grafema. Dalle mie ricerche emergeva un’altra cosa ovvia: alcuni simboli erano più semplici ed altri più complessi. Decisi di parlarne con Sce, anche alla ricerca di una formalizzazione sia della omogeneità che della complessità.
Sce condivise le mie osservazioni, ma non la mia valutazione che avessero scarsa rilevanza. Con spirito indagatorio si mise a ragionare, propose di cercare un metodo che consentisse di valutare la complessità [1] dei grafemi, magari applicando una misura dell’entropia. Ma dopo alcuni giorni di ipotesi e tentativi non si approdò ad alcunché di concreto. Comunque avendo a disposizione tutto il tempo che volevo, continuai io da solo a cercare qualche generalizzazione, perché in cuor mio ero convinto che le regole che consentivano la classificazione dovessero essere semplici.
Ritornando sulla congettura della presenza di correlazione locale tra i punti che costituivano un grafema, mi imposi di ricercare un formalismo generale che la regolasse. A questa correlazione diedi nome “entropia locale”. Ampliai lo sguardo e feci l’ipotesi che non fosse unicamente una proprietà dei segni della scrittura, ma fosse una proprietà della natura delle cose, una proprietà statistica ma pervasiva. Osservai che se avessi preso una qualunque immagine tratta dal mondo reale e ne avessi misurato la luminosità in due punti scelti in modo arbitrario, la correlazione tra la luminosità di questi punti sarebbe sicuramente diminuita con l’aumento della distanza tra i due punti. Imbastii una sperimentazione: presi alcune immagini fotografiche di soggetti disparati e due regoli, uno corto e l’altro più lungo; feci cadere parecchie volte, in modo casuale, i regoli, misurai mediante un luxometro la luce riflessa dalle immagini nei punti agli estremi dei regoli, annotai il valore assoluto della differenza tra i due estremi. Infine feci la media aritmetica dei valori assoluti ottenuti con ciascuno dei due regoli: quella dei valori relativi al regolo più lungo era maggiore dell’altra.
Quindi avanzai la seguente congettura: “presi due punti a caso nel cronotopo e scelta una qualsivoglia misurazione (radiazione, temperatura, densità, ecc.), i valori delle due misurazioni sono correlate secondo una funzione monotona decrescente in ragione della distanza tra i due punti”.
Avrei voluto conoscere il grafico di questa funzione: mi sarebbe bastato costruire un regolo più lungo, provvisto di più tacche, replicare la sperimentazione precedente, quindi disporre i valori mediati su di un grafico, che mi avrebbe rappresentato per punti la funzione ricercata. Però considerai che questa conoscenza aveva un puro valore accademico, ciò che importava era che la funzione esisteva ed era monotona decrescente.
Passai a un altro esperimento, che ritenevo più interessante: quello di sfruttare l’entropia locale, posseduta dalle cose della natura, per ricostruire la struttura di una telecamera che mediante una scansione arbitraria delle immagini, costruisse un segnale video. Chiaro che una qualunque telecamera oltre a trasmettere il segnale video, trasmette anche i trigger di riga, di quadro e di intrallacciamento, però riuscire a ricostruire la struttura di codifica del segnale sfruttando l’esistenza dell’entropia locale delle immagini sarebbe stata una interessante dimostrazione dell’esistenza dell’entropia locale.
Mentalmente l’esperimento non faceva una piega. Quando vengono trasmesse immagini rumorose o bianche nulla funziona, ma non appena vengono trasmesse immagini di una scena reale, allora può essere ricostruita, alias ‘conosciuta’, la struttura di codifica del segnale.
Non disponendo degli strumenti necessari all’esperimento, ridussi assai le dimensioni del campo sperimentale. Presi una maschera di cartone, praticai alcuni fori, secondo una geometria prestabilita, presi delle immagini del mondo reale, posizionai a caso la maschera sulle immagini scelte (facendola cadere dall’alto), misurai le luminosità che trasparivano dai fori, ed annotai tutti i valori assoluti delle differenze di tutte le coppie di fori. Infine, dopo ripetute applicazioni della maschera forata su più immagini, feci la media delle differenze tra coppie di punti. Costruii quindi un grafo i cui punti corrispondevano ai fori facendo in modo che le distanze tra questi rispettassero il più possibile la media delle differenze tra le coppie di punti. Il risultato finale fu quello di ottenere il disegno di un grafo avente una geometria assai prossima alla geometria con cui avevo disposto i fori della maschera.
Dopo l’ultimo esperimento ritenni certificata l’osservazione dell’esistenza dell’entropia locale come da me definita. Alla ricerca di ulteriori conferme, mi imbattei nella legge di Benford [2] sulla distribuzione dei numeri che vidi in consonanza con quanto osservato. Questa legge divenne uno stimolo per studiare l’eziologia della distribuzione dell’entropia e se da tale distribuzione fosse possibile ricavare induttivamente le strutture soggiacenti.
Ciò che avevo osservato non era sufficiente a costruire la struttura degli oggetti osservati da un trasduttore, ma solo a ricostruire la struttura del trasduttore. Il mio intuito giocava un ruolo assai importante e mi spingeva a ricercare nella entropia locale quello che poi definii algoritmo atomico della conoscenza. La mia ricerca mi portò alla formulazione di una domanda: “Quale è il confine tra il trasduttore ed il mondo osservato?”. Mi spiego con un esempio. Una telecamera inquadra un paesaggio, il sole che sorge, illumina la scena e infine tramonta. Il sole fa parte del trasduttore o della scena? Orbene, dopo alcune riflessioni, la mia risposta fu: non è decidibile, ovvero, non si può definire un confine tra trasduttore e mondo osservato. Conclusi che utilizzando in modo ricorsivo il metodo sarei riuscito a ricavare sia le relazioni che permettono di ricostruire la struttura del trasduttore, sia le relazioni insite negli oggetti osservati. Il risultato fu la costruzione di un grafo strutturato in modo gerarchico.
Eravamo ormai a fine febbraio 1963; entusiasta della struttura della rete che si stava concretizzando nella mia mente, tornai a parlarne con Sce che seguì i miei ragionamenti con disponibilità ed apertura, ma si mostrò dubbioso che la costruzione di un secondo livello di rete potesse evincere delle conoscenze. Mi invitò a pazientare, attendendo almeno i risultati delle sperimentazioni con il modello della macchina PAPA, prima di tentarne altre. Mi spiacque tale conclusione, ma non insistetti oltre. Sce era assai impegnato; se non ricordo male, era assorbito nell’ottimizzazione di un algoritmo per le stringhe di Čebyšëv collegato alla progettazione della P101 (detta poi Perottina).
La mia ricerca terminò qui per motivi personali. Dopo mesi di assenza fui reinserito nel LRE, ma col compito di stendere programmi diagnostici in una sede distaccata a Ponte Lambro. Ho potuto riprendere a lavorare in quest’ambito dopo circa 30 anni, ma solo nei ritagli di tempo, essendo divenuto amministratore di una società di informatica [3]. Soltanto nel 2007, come pensionato, ho ripreso attivamente a lavorare ottenendo significativi progressi. Il 28 novembre 2015 ho presentato al Circolo Filologico Milanese una conferenza in cui esponevo il progetto SAI – Sistema Autopoietico Induttivo [4], progetto attualmente in sviluppo.
Termino rivolgendo un pensiero al Professor Michele Sce, a cui devo un ringraziamento per avermi sollecitato e guidato verso un filone di ricerche che ha condizionato la mia vita di studioso, ricerche che mi hanno portato a risultati interessanti, anche se da pochi condivisi ed apprezzati.
[1] La ricerca della definizione della complessità era matura in quel periodo; proprio nel 1963 Kolmogorov pubblicò una definizione di complessità di una stringa di bits.
[2] Benford sperimentò, su di una vasta collezione di numeri ricavati da dati reali, che la distribuzione di probabilità della prima cifra è logaritmica.
[3] Sistemi Informatici Industriali Srl
[4] https://www.youtube.com/results?search_query=sai+piero+slocovich