Se si parla a sproposito di Machine Learning

Machine Learning

Penso di aver selezionato un’immagine di apertura in grado di sintetizzare al meglio il tema di questo articolo. Si parla di Machine Learning e Intelligenza Artificiale a tutto spiano, il che è positivo, se non fosse che in tanti [troppi] casi se ne parla a sproposito. Diventa sempre più complesso distinguere i sistemi davvero “smart” dai software paraintelligenti, che non sono altro che una serie di istruzioni condizionali, tradizionali come non mai.

Si tratta davvero di Machine Learning quando si programma una macchina per consentirle di apprendere in autonomia come svolgere determinati compiti. Nel pratico, un classificatore impara a riconoscere specifici elementi in un insieme misto. Gli algoritmi basati sull’analisi della regressione cercano di creare un modello che relazioni una serie di dati in input con una serie di dati in output. Con l’apprendimento non supervisionato si fa data mining, ovvero si cercano pattern e ricorrenze all’interno di enormi quantità di dati con l’obiettivo di modellare classi e insiemi. Parlando invece di reti neurali avversarie si va oltre, dando al software la capacità di creare e autovalutare i propri progressi.

E’ evidente che le applicazioni sono davvero tante ma l’idea di base è sempre la medesima: lo sviluppatore non scrive un algoritmo che svolge il compito prefissato con una serie di step specifici, piuttosto progetta un sistema in grado di apprendere autonomamente come farlo. E’ questa autonomia operativa a rendere il ML una branca dell’Intelligenza Artificiale. Con il giusto software un computer può imparare a riconoscere e classificare quello che vede e sente, prendere decisioni non programmate, addirittura generare immagini fotorealistiche a partire da una descrizione testuale.

In un futuro prossimo gli oggetti smart dotati di tali tecnologie saranno in grado di fare cose davvero straordinarie, ma come si dice di solito non è oro tutto ciò che luccica. Spesso oggi parlando di ML e AI si intende in realtà un sistema software gestito da algoritmi classici che simulano una forma di autonomia.

Cosa significa? Faccio un esempio pratico. Se scriviamo in python qualcosa di simile a quanto vedi sotto otteniamo un software in grado di intrattenere la più semplice delle conversazioni.

Puoi provare il codice QUI. Questa è una semplificazione estrema di quello che spesso oggi viene spacciato per Intelligenza Artificiale quando invece non lo è. Il software non fa altro che eseguire le istruzioni del programmatore senza nessun processo autonomo di apprendimento o di comprensione sintattica.

E che dire invece della statistica tradizionale? E’ equiparabile in qualche modo al Machine Learning? A questo riguardo sentirai opinioni discordanti ma credo che la risposta più valida sia ni. Sì perché statistica e ML hanno lo stesso obiettivo, ovvero trarre informazioni dai dati.  No perché il mezzo per raggiungere questo fine è differente, la statistica intende usare strumenti matematici mentre l’apprendimento automatico vuole istruire una macchina ad elaborare i dati in autonomia.

Le evoluzioni del Machine Learning faranno di sicuro parte integrante del futuro dell’Intelligenza Artificiale ma . . . occhio ai tarocchi!