Visualizzazione post con etichetta elaborazione. Mostra tutti i post
Visualizzazione post con etichetta elaborazione. Mostra tutti i post

sabato 20 ottobre 2018

Tutta colpa dell'Algoritmo

"Facebook cambia algoritmo", "Algoritmo impazzito", "Twitter sconfessa l'algoritmo": sono solo alcuni (estratti di) titoli di notizie recenti che hanno a che fare il mostro dei nostri tempi: l'algoritmo. Pochi giorni fa, ad un convegno in tema di privacy, una stimatissima professoressa di Diritto ha confessato che deve farsi aiutare dai tecnici a capire cosa vuol dire che "si è perso il controllo dell'algoritmo". Ne ha ben ragione: non ne ho idea neanch'io, di cosa vuol dire. Ma alla fine, cos'è 'sto algoritmo?
Dal Dizionario della lingua Italiana di De Mauro:
matematica: insieme di regole per la risoluzione di un calcolo numerico; gener., procedimento matematico
informatica: insieme di regole che forniscono una sequenza di operazioni atte a risolvere un particolare problema
Le parole su cui bisogna soffermarsi sono: regole, procedimento, risoluzione. Lo scopo di un algoritmo è trovare la soluzione di un problema; è composto da un procedimento e delle regole. Tutto qui; ma per capire meglio, guardiamolo un algoritmo (ho scelto quello che era mitico all'università, il bubble sort, che è il più efficiente tra i procedimenti di ordinamento):



In pratica, presa una sequenza di elementi, si procede a scambiare ripetutamente quelli che non rispettano l'ordinamento, finché non si arriva alla sequenza ordinata. Facile no?
In realtà, quello che mi preme sottolineare è che un algoritmo non è altro che un procedimento logico per risolvere un problema. Niente di più. Un frutto dell'ingegno umano. Che poi deve diventare qualcosa di realmente utilizzabile, tipicamente un programma software: il che vuole dire che qualcuno, che non è quasi mai chi ha "inventato" l'algoritmo, lo traduce in un linguaggio di programmazione, diventando, appunto, il programma (o parte di esso). In realtà, vale anche il viceversa: ogni programma non è altro che l'implementazione di uno o più algoritmi, che magari esistono solo nella testa del programmatore.
Ovviamente niente vieta che un algoritmo possa essere sbagliato (cioè non risolve correttamente il problema), o che lo sia il corrispondente programma (cioè il software non fa quello che prevede l'algoritmo); ma se si effettuano i dovuti controlli, la questione è marginale.
Che c'azzecca tutto ciò con gli algoritmi che impazziscono? Niente, appunto. Un algoritmo (o il computer attraverso il programma) fa ciò che gli viene detto. Il risultato è sbagliato se l'algoritmo (o il corrispondente programma) è sbagliato. Punto. A parte questo, non esistono algoritmi buoni o cattivi: buono o cattivo è lo scopo, o il risultato, dell'algoritmo.

Fin qui la teoria; la pratica è un po' più complicata. Perché gli algoritmi che, secondo alcuni, impazziscono, sono enormemente più complessi dell'esempio che ho proposto; ed è piuttosto comune (mi rifiuto comunque di considerarlo normale) che i suoi errori siano evidenziati in situazioni estreme, tipicamente dati enormi o molto diversi da quelli attesi da chi ha sviluppato l'algoritmo.
Gli algoritmi sono diventati famosi, uscendo dalle buie stanze dei nerd, con l'informatizzazione di massa, e da quando hanno iniziato ad avere effetti sulla vita dell'uomo comune: oggi vanno per la maggiore quelli che, a seconda dello scopo (o meglio, della tipologia di scopo) prendono il nome di Big Data, Intelligenza Artificiale, Machine Learning, e compagnia bella. Tutta roba bellissima per chi la studia, un po' meno per chi la subisce. Intanto perché l'abuso di questi algoritmi ci limita la libertà di scelta (vedi i risultati dei motori di ricerca: quelli che dovrebbero essere i più pertinenti sono scelti in base a criteri che non possiamo controllare); e poi perché molte volte nemmeno è chiaro come e perché si usano queste tecniche avanzatissime.

Facciamo un altro esempio, e lo prendiamo dal mondo dello sport, in particolare dalla pallavolo (chi mi conosce non ne resterà stupito). Esiste da anni la "moviola" in campo, per diverse situazioni; per stabilire la palla dentro o fuori, esistono in realtà due tecniche, una "reale" (telecamere ad alta velocità e risoluzione poste in corrispondenza alle linee) ed una "virtuale" (ricostruzione tridimensionale della traiettoria del pallone, lo stesso metodo usato nel tennis, cosiddetto occhio di falco).

 

Nessun dubbio che l'algoritmo alla base di "occhio di falco" sia corretto; tuttavia, basandosi sulla ricostruzione della traiettoria nello spazio a partire dalle immagini riprese da apposite telecamere che coprono tutto il campo (una tecnica, chiamata motion tracking, usata da più di 20 anni nel cinema, per esempio così fu generato Gollum nella trilogia del Signore degli anelli), richiede un'attentissima calibrazione e posizionamento per garantire precisione. Ma se hai una tecnica più semplice, e che non ti lascia nessun tipo di dubbio, perché usare un artificio, per quanto bellissimo e precisissimo? Eppure la prima viene utilizzata nelle competizioni italiane, e la seconda in quelle internazionali, ormai da diversi anni!

In conclusione, fermo restando che non sono gli algoritmi ad impazzire (è sempre e solo l'intelligenza umana a venire meno), è la dipendenza da essi il vero male della nostra società iperconnessa. Dove non portino effettivo beneficio per la comunità, è nostro dovere difenderci rifiutandoli, invece di lamentarci o, peggio, adeguandoci passivamente.

N.B. Il post è nato da un'idea di qualche giorno fa, ma non è un caso che sia stato scritto il giorno della finale del campionato mondiale femminile di pallavolo... serviva anche a smaltire la delusione della sconfitta (che non ha avuto nulla a che fare con decisioni arbitrali).

mercoledì 20 settembre 2017

Controcorrente: il mining in cambio della mia privacy

Giorni fa ho segnalato attraverso mio hashtag twitter #ilvecchiolupodimare la notizia che il più noto sito di ricerca di torrent (The pirate bay, appunto) utilizzava all'insaputa dei suoi utilizzatori una parte del processore ospite per fare il mining delle criptovalute. Ammetto di essere piuttosto ignorante sull'argomento criptovalute, comunque i concetti fondamentali che servono a capire la questione sono:
  • le criptovalute sono monete elettroniche, virtuali, non regolamentate né controllate da organismi governativi ed economici tradizionali
  • tuttavia hanno un valore corrispondente nelle valute normali, ed un loro mercato (cioè il loro valore corrispondente aumenta o diminuisce in continuazione)
  • il mining è l'elaborazione necessaria alla creazione di una nuova "porzione" di valuta (equivalente al conio di una nuova moneta)    
Per farla breve, poiché il mining è un'operazione che richiede enormi risorse di elaborazione, che ovviamente costano denaro sonante, il sito in questione guadagna soldi (virtuali, ma con corrispondente valore reale) usando invece le risorse dei suoi utilizzatori, anche se in questo caso (ripeto) a loro insaputa.

Sullo stesso argomento ho trovato un altro interessante articolo, che mette in evidenza un altro aspetto (che avevo intuito da solo, credetemi): cioè la possibilità che questo tipo di guadagno, da parte di chi offre un servizio gratuito (in questo caso anche illegale...), possa sostituire quello legato alla pubblicità, e quindi anche alla raccolta dei nostri dati per personalizzarla.

Agli albori di internet (fine anni '90), rimasi affascinato dal progetto SETI@home: si tratta di un software che permette di partecipare, attraverso un concetto di elaborazione distribuita, all'analisi dei segnali elettromagnetici provenienti dallo spazio, e raccolti da radiotelescopi sparsi in tutto il mondo, per la ricerca di segnali di origine non naturale (e che quindi potessero provenire da civiltà aliene tecnologicamente avanzate). Il principio è quello di partecipare, ognuno con le sue risorse, ad una causa comune, e scientificamente rilevante, diminuendone i costi.
Proviamo a sostituire al principio "nobile" quello più concreto della giusta mercede di chi lavora per offrirci i servizi che tanto utilizziamo giornalmente.

Concentrandomi solo sul lato tecnico della questione, la mia riflessione è stata questa:
  1. un processore di un personal computer lavora normalmente meno del 10% del tempo; quindi c'è un margine di almeno il 90% che è semplicemente inutilizzato
  2. se potessi, evitare volentieri di rinunciare alla privacy per accedere ai servizi (falsamente) gratuiti
  3. anche se riconosco che molti di questi servizi lo meriterebbero, mi viene difficile pensare di pagare soldi veri per poterli utilizzare

Per cui mi dico, e vi propongo: non potrebbe essere il tempo di inattività del nostro processore la moneta con cui pagare i servizi che ci vengono offerti sula rete? Con l'ulteriore vantaggio che se il mining avviene solo quando utilizziamo il servizio, anche il "pagamento" sarà proporzionale all'effettivo utilizzo.

Certo, di questioni su cui porre molta attenzione prima che questa diventi una pratica reale, ce ne sono. La prima, ovviamente, la libertà di scelta: se non voglio il mining, posso continuare ad utilizzare i metodi tradizionali. Poi, porre un limite all'utilizzo del processore (mica voglio averlo al 100% tutto il giorno...). Ancora, la sicurezza di non avere accessi illegittimi ai miei dati (è pur sempre il mio computer). Infine, bisogna avere l'assoluta certezza della legalità dell'operazione e della finalità di mining.
Ma queste questioni sono superabili, se c'è la volontà degli operatori di porre in atto questa possibilità; e gli operatori investiranno solo se vedranno un reale interesse da parte dell'utenza, cioè noi. Io sono pronto: e voi, ci state?

Attendo risposte.

AGGIORNAMENTO
Anche SafeBrowse colta con le mani nel sacco a fare mining all'insaputa dell'utente.
Interessante, nell'articolo, la parte delle possibili controindicazioni al mining sui personal computer.

AGGIORNAMENTO 2
Qualcuno ha fatto i conti in tasca a Bitcoin, ma anche alle altre criptovalute: serve tanta energia, che ha notevole impatto sull'ambiente. Che resta, come anche i soldi (veri) spesi per il mining; mntre la criptovaluta, chissà...