Leggendo l'articolo suggerito da Juan Carlos mi sono reso conto di quanto i diversi temi che trattiamo spesso in lista siano espressioni di uno stesso problema che incidentalmente è stato il tema della prima lezione di "informatica elementare" che ho tenuto alla classe di mia figlia (con risultati eccellenti! :-D) Dalla "proprietà intellettuale", ai software libero, ai commons, all'intelligenza artificiale, passando per i dati personali il problema fondamentale è l'informazione. In-formare, "costruire dentro", è una attività specifica del nostro cervello: un'informazione è una idea nata nella mente di un essere umano e comunicabile ad altri esseri umani attraverso il linguaggio (non tutte le idee sono comunicabili... come qualunque mistico può confermare ma non spiegare). Il dato, per contro, è una rappresentazione (fra le infinite possibili) di un informazione che possiamo dare, trasferire, registrare. Noi umani passiamo dall'informazione al dato ad esempio attraverso la scrittura, mentre passiamo dal dato all'informazione attraverso la interpretazione del dato (che è rappresentazione e dunque va interpretata). Per esempio, il dato personale non è rilevante in sé, ma perché può essere interpretato rivelando informazioni personali: anche se visibile pubblicamente, un dato personale cifrato con una chiave non disponibile, non risulta utile e non costituisce un problema di privacy, perché non può essere interpretato, non può in-formare. I dati possono essere conservati, trasmessi, rappresentati, trasformati (con o senza perdita di informazione) e naturalmente interpretati. I dati si possono quantificare (e.g. "1Gb"), le informazioni no (e.g. "mamma"). Un dato può veicolare molteplici informazioni. Quello che noi vogliamo tutelare, in realtà non sono i dati, ma le informazioni (che sono sempre e solo dentro la testa di chi le conosce). Da questa dicotomia deriva anche la differenza fra algoritmo (un'informazione) e programma (una rappresentazione): il numero di errori di un programma è sempre maggiore o uguale al numero di errori dell'algoritmo noto al programmatore. Un vecchio adagio degli hacker "Code is Data" è interessante qui perché "is" rappresenta una relazione bidirezionale: Data is Code. In un linguaggio omoiconico come Lisp questo è evidente, ma anche una rete neurale mostra questa evidenza calcolando statisticamente un programma il cui algoritmo è ignoto al programmatore. Questo è un punto importante che vedo spesso frainteso persino da "esperti" di IA: durante la calibrazione una rete neurale NON impara alcunché. La calibrazione di una rete neurale è un processo statistico del tutto analogo al calcolo di una media, ma invece che produrre un numero o un vettore che minimizza la distanza dai punti noti, questo processo statistico effettua una selezione casuale (o pseudocasuale) di una delle _infinite_ funzioni che passano in media entro una certa distanza dai punti noti. Parlare di "bias" di una rete neurale è dunque ridicolo. Si tratta di sempre di un errore di calibrazione. E' possibile calcolare grossolanamente la probabilità di azzeccare la funzione ignota che cerchiamo con una rete neurale mettendo a numeratore il numero di campioni che abbiamo per la calibrazione e a denominatore 2^(numero di bit in input) * 2^(numero di bit in output). Per contro la probabilità che la calibrazione produca un algoritmo bacato è 1 - [numero di campioni / (2^(numero di bit in input) * 2^(numero di bit in output))] Il "bias" è semplicemente l'errore implicito nel rinunciare a comprendere la materia trattata, ad interpretare i dati. La mia intuizione è che il numero di layer di una ANN determini la variabilità di questo errore (ovvero la distribuzione di probabilità della sua gravità), ma non ho idea di come calcolarla. Tuttavia parlare di "bias" come se questo banale ma evidente errore metodologico fosse una inevitabile proiezione della fallibilità umana è molto comodo da un punto di vista commerciale. Non si tratta però del bias in una intelligenza artificiale, si tratta semplicemente di un programma bacato prodotto da un programmatore letteralmente acefalo (il processo di calibrazione). E noi vogliamo affidargli dati di origine umana? O sottoporci al suo giudizio? O di fidarci dei suoi oracoli? O metterlo alla guida di un veicolo? Bene, non sappiamo cosa andrà storto, ma possiamo facilmente calcolare la probabilità che vada storto. Se fossimo un po' più curiosi cercheremmo di utilizzare le reti neurali come strumento di indagine statistica, per _interpretare_ i dati, ottenendo modelli (informazioni) utili alla _nostra_ conoscenza: non li useremmo per giocare a Go, ma per trovare nuove strategie; non le utilizzeremmo per guidare un auto ma per imparare a guidare meglio, a migliorare la segnaletica ed i controlli. Ma la gatta frettolosa fa gattini ciechi. Magari "eticamente ciechi", ma sempre ciechi. E cosa centra tutto questo con il software libero e i common? Il codice (binario o sorgente) è dato (persino dato personale, se è vero che ogni programmatore esperto è identificabile dal proprio stile), ovvero una rappresentazione di informazioni nella testa di chi l'ha programmato (l'algoritmo). Il software veicola conoscenza (è un dato) anche se non viene eseguito, anche se non viene mostrato da una CPU (non diversamente da come un DVD viene mostrato da un lettore DVD). Il diritto d'autore protegge il dato, la rappresentazione (in alcuni forme ed in alcuni modi), i brevetti software (non mi è ancora chiaro se in Europa esistano) proteggono l'informazione / idea. Possiamo pensare ad una regolamentazione unificata delle informazioni umane? Una regolamentazione che preveda, ad esempio, che i dati di origine umana siano un bene comune e che tutte le informazioni (inclusi i modelli e gli algoritmi) da esse dedotte debbano restare bene comune? Una specie di copyleft molto forte applicato ai dati umani e ai software prodotti dall'uomo? Possiamo pensare che la conoscenza condivisa abbia un valore intrinseco per l'umanità tutta, maggiore del capitale che può permettere di accumulare/tassare? Cioè né una tassa sui dati, ne una proprietà privata dei dati. Dobbiamo tutelare la noosfera, tutte le informazioni umane, collettive e personali. (prima che faccia la fine della biosfera...) Giacomo