Alla domanda
“di cosa si occupa tuo figlio?”
rimango spesso spiazzata. Nonostante gli abbia fatto frequentemente quesiti per comprendere meglio, decisamente è un mondo così distante dal mio, che non mi sento abbastanza attrezzata.
Ma mi accorgo che anche la mia risposta
“data scientist”
viene acquisita con occhio un po’ vago dall’interlocutore…
Una delucidazione quindi appare di interesse comune.
Da quello che ho potuto apprendere il fulcro della comprensione sta nella nozione di “algoritmo”.
Un algoritmo è una sequenza di operazioni per ottenere un certo risultato.
Per i profani come me può essere un utile esempio la ricetta di una torta perché la ricetta di una torta è in un certo senso un algoritmo: si prendono tutti gli ingredienti, si fanno dei passi precisi e si ottiene un risultato.
Gli algoritmi vengono utilizzati ampiamente in informatica perché i computer sono molto più veloci degli esseri umani a compiere certi tipi di operazioni, ad esempio i calcoli.
In tempi meno recenti gli algoritmi per risolvere problemi erano scritti “a mano”, nel senso che il programmatore dell’algoritmo conosceva già la soluzione a un problema e la convertiva in un linguaggio che la macchina (computer) potesse comprendere. Capire se all’interno di una fotografia c’è un gatto per un essere umano è facilissimo ed immediato, ma se vogliamo che sia un computer a farlo, la nostra conoscenza intuitiva deve essere convertita in un linguaggio schematico che la macchina possa capire, come codificare la forma generale di un gatto, le sue caratteristiche principali, l’ambiente in cui vive ( per distinguerlo ad esempio da una lince che è molto simile, ma vive in montagna).
Quello che fa un “data scientist “ è quindi gestire questi dati, “pulirli”, sistemarli, organizzarli, e poi applicarli alla soluzione di problemi, usando algoritmi esistenti o sviluppandone di nuovi.
Recentemente, grazie alla evoluzione della tecnologia in termini di componenti per computer e alla grandissima quantità di dati disponibili in internet, si stanno diffondendo algoritmi che riescono ad imparare autonomamente come risolvere un certo problema e per questo motivo sono detti algoritmi di “machine learning”.
Gli algoritmi di “machine learning” più popolari si chiamano reti neurali e si ispirano al cervello umano. Utilizzando dei “neuroni” collegati tra loro e acquisendo una grande mole di dati, riescono ad imparare autonomamente la relazione tra il loro “input” e il loro “output”.
Nell’esempio del gatto, in pratica, si “allena” l’algoritmo passandogli numerosissime immagini contenenti gatti e altrettante senza gatti fino a che impara da solo a riconoscere quali di queste immagini contengono gatti e quali no.
Gli algoritmi possono imparare a fare le cose più disparate: predire l’andamento di titoli sul mercato, prevedere l’avvenimento di terremoti, riconoscere malattie al cuore partendo da un elettrocardiogramma. Possono imparare anche cose che noi riterremmo “creative”, e quindi appannaggio esclusivo dell’essere umano, come ad esempio nella creazione di testi, brani musicali, immagini, video che simulano esperienze oniriche.
E’ un algoritmo di machine learning quello applicato nel gioco degli scacchi con risultati che lo stesso Garri Kasparov, ex campione del mondo, ha definito eccezionali.
Come pure essere usati anche per fini di marketing, come per esempio seguire il nostro comportamento online, capire i nostri gusti e utilizzarli per proporci pubblicità e contenuti personalizzati (come fanno i social media) allo scopo di influenzare le nostre decisioni e il nostro modo di pensare.
Di cosa ha bisogno un algoritmo per fare queste cose? Di dati, ed in generale ne servono tantissimi.
Uno dei rami più interessanti è quello che cerca di spiegare la logica che sottende alle decisioni degli algoritmi di “machine learning.”.
Infatti, pur sapendo come funziona strutturalmente una rete neurale, non è facile capire esattamente cosa l’algoritmo “guarda” nell’input quando prende una certa decisione.
Nell’esempio del gatto, cosa sta “guardando” l’algoritmo? Il contorno, la sua forma generale, i baffi, i peli?
Rendere interpretabili per gli esseri umani le decisioni di algoritmi di “machine learning” rappresenta davvero una sfida aperta e rilevante.
Per parte mia, da profana, è un mondo misterioso, anche un po’ inquietante.
Attendo con speranza l’algoritmo che mi agevoli la vita quotidiana, ma probabilmente lo confonderei con una magia.
(Con il contributo di Francesco Spinnato – data scientist)