I pensieri del software.

Marco Giannini

La cartografia open source e la capacità di imparare.

Google Images offre da diversi anni la possibilità di effettuare ricerche di immagini tramite parole chiave, e di analizzare i risultati paragonandoli a immagini simili.

Una schermata di Terrapattern che segnala in rosso zone simili a quella selezionata e in basso a destra isola i risultati della ricerca; in alto a destra il riquadro di riferimento sulla mappa cittadina (di New York in questo caso) e la presenza sulla stessa di immagini simili

Una schermata di Terrapattern che segnala in rosso zone simili a quella selezionata e in basso a destra isola i risultati della ricerca; in alto a destra il riquadro di riferimento sulla mappa cittadina (di New York in questo caso) e la presenza sulla stessa di immagini simili

La sua evoluzione più recente è Terrapattern, un prototipo di motore di ricerca per immagini satellitari che permette agli utenti di effettuare ricerche per immagini simili a quella selezionata. In pratica si clicca un’immagine sulla mappa  fotografica e l’applicazione, tramite un complesso sistema di machine learning, trova entro un dato territorio porzioni simili per forma e colore da altre fotografie satellitari.

01 terrapattern

Anche se per ora copre soltanto il territorio di quattro grandi città negli Stati Uniti, si tratta del primo passo concreto verso uno strumento che si annuncia potentissimo, a disposizione di urbanisti, agenzie di intelligence, scienziati, giornalisti e chiunque abbia interesse nel confrontare dettagli (nascosti) in un territorio, dalla conformazione di un tratto costiero fino al particolare del cornicione di un palazzo, per esempio di come esso sia stato modificato nel tempo al fine di nascondere un abuso edilizio.

Rete convoluzionale neurale

Rete convoluzionale neurale

Terrapattern utilizza un insieme di algoritmi e funzioni (mutuato da Deep Dream di Google) che formano una rete neurale convoluzionale cioè un sistema di apprendimento automatico (ispirato dallo studio della corteccia cerebrale animale) basato su un griglia precondizionata, il quale ricorsivamente si interroga su cosa riconosce nell’immagine che gli viene fornita e ne costruisce una versione schematica caratterizzata da alcuni tratti salienti; successivamente si interroga su quello stesso schema appena prodotto al fine di restituirne uno schema ancora più essenziale, e così avanti all’infinito, perfezionando a ogni passaggio l’immagine stessa e arricchendo il proprio database grazie all’esperienza così incamerata.

05 rete convoluzionale 1 e mezzo

La rete neurale si occupa di cercare per esempio un occhio proprio là dove ci si aspetterebbe di trovare un occhio, una coppia di orecchie a punta sulla testa di quel che sembra proprio un cane di razza collie, un tris d’assi in mano al vincitore di una mano di poker (così imparando che una coppia forse non basterebbe) e a forza di rispondersi “sì, sembra proprio un occhio, e quello un orecchio” si convince di averci azzeccato e fa sua un’idea un pochino più precisa di che cos’è un cane. Magari potrebbe non capire perché un cane stia giocando a poker, ma ricordiamoci che si tratta pur sempre di un primo passo, filtrato dalle immagini e da deduzioni a esse collegate, e da esse scalate.

Perché un software dovrebbe capire? Semplicemente perché per cercare tra milioni di immagini, riconoscere una singola istanza che appartiene a una categoria già nota è il modo migliore per rendersi autonomo, ovvero capace di rispondere agli stimoli e prendere decisioni in proprio, ancorché sollecitato a farlo.

In poche parole per il software è il modo migliore di diventare intelligente.

Aristotele direbbe forse che in questo caso si tratta di causa efficiente e non di causa finale , cioè quel che distingue chi (o cosa) intelligente è da ciò che non lo è, ma abbandoniamo per il momento la questione filosofica, o meglio rimandiamola al finale.

Open data e open source.

Terrapattern è stato creato da un team di sviluppatori, a capo del quale c’è Golan Levin, un professore di computation arts al Carnegie Mellon College. L’industria satellitare negli Stati Uniti è all’avanguardia, e già nel 2013 Google (in collaborazione coll’US Geological Survey, la Nasa e Time) ha costituito uno spettacolare e gigantesco archivio di foto satellitari di quasi ogni luogo della Terra per osservarne i cambiamenti dal 1984 a oggi .

Opendata mappe e reti neurali

Google Earth come noto è open data, cioè mette gratuitamente a disposizione di chiunque vi acceda un repository sconfinato di immagini satellitari ad alta definizione del globo terrestre. Ma non è open source, cioè la tecnologia che motorizza il sito Google Maps e l’applicazione stessa Google Earth è “proprietaria” (cioè brevettata) e le immagini hanno delle restrizioni legali.

Terrapattern invece è basata su OpenStreetMap , un progetto di collaborazione attiva e raccolta di cartografie e dati geografici in tutto il mondo, basato su una licenza libera: l’archivio può essere riutilizzato per qualunque scopo (anche commerciale) purché la fonte sia citata. Anche il codice è open, nel senso che viene continuamente modificato e aggiornato da volontari diffusi nei cinque continenti; chiunque può ritoccarlo a proprio vantaggio, ed eventualmente pubblicare e diffondere la propria esperienza d’uso a beneficio comune. Esistono anche numerosi tutorial in rete per il fai-da-te, organizzati in forma enciclopedica secondo la nota struttura in stile wikipedia.

07 neural network

L’intelligenza è nella spontaneità?

La rete neurale alla base di questi software dotati di pattern di adattamento e autoapprendimento  è costituita da una sorta di “neuroni” cibernetici, connessi tra loro e in grado di scambiarsi messaggi contenenti dati qualora essi “ritengano” che quei dati siano rilevanti (cioè analizzabili secondo una griglia di partenza, ancora una volta). Alla rete viene chiesto poi di risolvere un problema (tradizionalmente proprio un problema di catalogazione di un dato), essa si cimenta e ottiene una serie di risultati: alcuni portano dritto al successo e altri al fallimento dell’operazione di catalogazione. i risultati positivi rinforzano le connessioni tra i neuroni, quelli negativi vengono esclusi dal processo esperienziale e la routine riparte, forte di quanto ha appena appreso.

Una divertente applicazione di questi concetti si trova in un’altra applicazione di Google, l’interactive learner , di Daniel Smilkov e Shan Carter. Impostando la tipologia dei dati in entrata e le caratteristiche di analisi, è possibile osservare come un numero (molto contenuto) di neuroni compie delle operazioni di riconoscimento e catalogazione dei dati stessi, e in base all’analisi fornisce un risultato più o meno omogeneo (che distingue graficamente i casi positivi, in arancione, da quelli negativi, in blu). I campi in cui i puntini colorati vengono distribuiti nel quadrante finale (output) rappresentano la previsione per altri risultati di là da venire, cioè la probabilità che nuovi dati analizzati, simili ai precedenti, siano classificati come casi positivi o negativi. Il campo di previsione può anche essere ulteriormente rastremato, aumentandone la precisione ma anche il rischio di falsi positivi e falsi negativi.

08 banana-fbGiocando con questa applicazione si ha la sensazione di vestire i panni di una scimmia che schiaccia un bottone e apprende come ottenere un premio (una banana per esempio), col vantaggio però di poter osservare come i nodi attraverso i quali passa l’informazione iniziale collaborino tra loro fornendo reazioni coerenti, altrimenti il sistema è destinato all’insuccesso. Si tratta insomma di un sistema di adattamento che spontaneamente propone nuove possibilità. Questo significa allora che un software può fidarsi della propria esperienza? È questo davvero un comportamento intelligente? Sì, è un comportamento intelligente, ma solo a patto che la matrice sia buona.

Tutto dipende dalle istruzioni iniziali.

Se sono sufficientemente duttili, l’automazione può usarle per comportarsi in maniera saggia, evitando di commettere errori. L’intelligenza viene quindi a definirsi come “buona educazione”, ovvero capacità di adattamento. Dalla cartografia elettronica che impara a riconoscere le forme del mondo siamo arrivati al problema di capire cos’è l’intelligenza. O meglio ci siamo tornati, perché esso sta alla base di ogni operazione di machine learning fin qui tentata. Dai primi, ingannevoli automi ottocenteschi che giocavano a scacchi a Deep Blue che nel 1996 riuscì a battere il campione del mondo di scacchi Gerry Kasparov, fino all’aspirapolvere intelligente che impara a muoversi a casa tua mentre non ci sei, quel che conta sembra essere la scorta iniziale di informazione in base alla quale un sistema di riferimento è orientato nelle scelte. In tutti questi casi è la programmazione degli sviluppatori, volta a ottenere un certo risultato anche di fronte a situazioni imprevedibili, a fare la differenza.

Gioco e istinto

Quando però abbiamo a che fare con reti neurali composte da migliaia di centri decisionali interdipendenti che si coordinano per produrre un comportamento coerente, l’impressione generale che ne deriva è quella di trovarsi di fronte a un essere senziente, alla cui base opera una sorta di istinto, come quello che osserviamo in azione e talvolta ammiriamo nel regno animale: con una certa dose di pigrizia imputiamo questo meccanismo all’evoluzione darwiniana e lo connotiamo come qualcosa di automatico, che non lascia alcuna possibilità di scelta. Pure nel senso comune l’intelligenza e l’istinto sono solitamente allontanati su poli opposti tra loro; d’altro canto certe volte risulta difficile parlare di istinto di fronte a certi comportamenti animali, come quello del gioco.

L’homunculus cartesiano e la finalità delle azioni.

Ora che abbiamo chiarito come funziona il modello della rete neurale, facciamo una breve visita al vecchio concetto ormai superato di intelligenza, che risale nientemeno che al dualismo cartesiano: esso consiste nel valutare l’intelligenza di un comportamento mediante l’intenzionalità. Se diamo per buona l’antica spiegazione che ciò che percepiamo (e in base al quale re-agiamo) viene convogliato in un organo centrale e da esso elaborato, finiamo per cadere in un ragionamento circolare che scambia le premesse con le conseguenze (https://it.wikipedia.org/wiki/Diallele) e miscela in forma di esperienza unitaria quel che in realtà sarebbe una rete di funzioni; è proprio quest’ultimo il modello teorico di riferimento per il machine learning che da Dennet in poi ha ricevuto una spinta enorme allo sviluppo.

Eppure il vecchio modello, specialmente quando chi lo propugnava se ne faceva forza per riportare ogni scopo umano a Dio, aveva il merito di misurare sotto un’unica luce finalità e mezzi. Oggi resta infatti irrisolto il problema di spiegare come una rete di funzioni, per quanto complessa, differisca da un semplice sistema che identifica un certo stimolo e si comporta di conseguenza, e che mai chiameremmo “intelligente”: ad esempio un autovelox che ci scatta una fotografia solo se lo superiamo a una velocità maggiore di un certo limite.

Le aziende produttrici di robot e software automatici non si curano del perché le loro creature fanno quel che fanno, e rintracciano nel ricavo commerciale la causa formale di tutto ciò (forse che il commercio altro non è che un caso rovesciato di eterogenesi dei fini ).

Aristotele

Un nuovo modo di pensare il pensiero.

Ma qui si ha anche a che fare con un nuovo modo di pensare il pensiero, mica roba da poco! Tornando finalmente all’aristotelica causa finale, lo stagirita sarebbe probabilmente in disaccordo con noi se gli proponessimo i risultati più maturi della semantica prototipica perché essi distaccano l’intenzione che muove un’azione dal modo di pensarla. Ma non potrebbe fare a meno di accettare la possibilità che nel nostro modo di comprendere e catalogare ci sia almeno un ricorso all’abitudine, che poi altro non è che un modello sfocato e impreciso di routine, una mente che si interroga e si conforta di quel che già sa, e che per questo risulta, appunto, funzionale.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *