A come algoritmo

A come algoritmo

A causa dell’esplosione dei  Big Data, dell’invasione dell’Internet delle Cose e… del Datagate il termine programma si è scisso tra dato e algoritmo anche nella conoscenza popolare uscendo dalla cerchia ristretta degli addetti ai lavori.

Niklaus Wirth, 1976

Un algoritmo non è altro che la descrizione formale ed esplicita delle regole da applicare ai dati in ingresso per ottenere l’uscita desiderata (la soluzione del problema). Ai corsi per neofiti lo si paragona spesso a una ricetta per cucinare, solo molto più precisa, espressa tramite un linguaggio di programmazione, il mezzo con cui comunicare le istruzioni alla macchina. Ci sono linguaggi di tutti i tipi: testuali, logici, grafici, manuali…

Programmare è facile e divertente oltre che un modo per abituarsi all’elaborazione di strategie su come risolvere problemi, creare progetti e comunicare idee. Tra le tante iniziative che sono nate per avvicinare la gente comune agli algoritmi vi segnalo l’Ora del Codice e Progetto NERD.

Se siete di quelli che pensano che programmare sia difficile provate Scratch, il linguaggio gratuito creato dal Massachusetts Institute of Technology (MIT).

Eppure, proprio ora che ha ottenuto una discreta notorietà, il concetto stesso di algoritmo si sta dissolvendo sotto il vento delle nuove capacità informatiche. Ad esempio, con le reti neurali (una branca dell’intelligenza artificiale) la soluzione al problema nasce dall’allenamento sostenuto dalla macchina e non più da una codifica (giusta o sbagliata, in ogni caso rivedibile) imposta da un umano. Si parla in questi casi di apprendimento automatico (Machine Learning), una tecnica sempre più utilizzata per elaborare l’enorme mole di dati a disposizione e affrontare problemi complessi.

Gustatevi l’abilità di questo programma nel distinguere un famoso attore dal famoso batterista considerato il suo sosia (o viceversa).

(cliccate sull’immagine per vedere l’animazione)

Sorprendente, vero? Peccato che la macchina non sappia spiegare (all’uomo) come ci riesca.

Cadiamo quindi nel dilemma della scatola nera (black box): quali sono i razionali che hanno guidato la scelta? E, soprattutto, tale scelta è un approccio innovativo, un banale errore di programmazione oppure un palese pregiudizio?

Un aspetto non da poco, dato che all’orizzonte iniziano a comparire automobili che vanno a cercarsi il parcheggio, autobus senza guidatore, assistenti virtuali, sistemi di prevenzione del crimine e di valutazione dei candidati. Sareste disposti a farvi operare in base alle predizioni di un programma senza che il vostro medico di fiducia sappia spiegarvi il perché (ovviamente non vale il “l’ha detto la macchina”)? Lascereste che l’auto che vi trasporta fosse libera di scegliere tra rischiare la vostra vita e uccidere cinque pedoni?

Il dilemma etico delle macchine autonome (moralmachine.mit.edu)

Ecco che le figure professionali tradizionali (analista, programmatore, sistemista, architetto, capo progetto…) sfumano e si diversificano in un arcobaleno di ruoli che va dall’esperto dei dati (con cui allenare e verificare la bontà del programma) allo “psicologo” (se non psichiatra) del programma (e dei suoi creatori).

 

II capo Programmazione di Westworld analizza Maeve Millay.

Ma siamo pronti a sederci di fronte al computer per chiedere delucidazioni come in Westworld, oppure rimpiangeremo le paginate di istruzioni mal documentate?

 

Lascia un commento

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

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.