Intelligenza Artificiale e Machine Learning: qual è la differenza?

Christian, il nostro guru degli algoritmi, oggi ha un arduo compito da portare termine: nei panni di professore deve cercare di spiegare a me (marketing analyst, quindi non proprio un profilo tecnico) la differenza tra IA e ML. L’esperienza non è però del tutto nuova per lui, visto che ha insegnato all’università per un periodo. 

Inizio chiedendogli una semplice domanda: Che cosa si intende con i termini “Intelligenza Artificiale” e “Machine Learning”?

Le espressioni Intelligenza Artificiale (IA) e Machine Learning (ML) appaiono spesso tra quelle più comunemente usate al giorno d’oggi quando si vogliono descrivere nuovi prodotti e servizi innovativi. A volte questi termini vengono utilizzati come sinonimi ma in realtà non sono la stessa cosa: il Machine Learning è infatti una particolare applicazione dell’Intelligenza Artificiale. Ci si riferisce ad Intelligenza Artificiale quando una qualunque macchina è in grado di interagire con l’ambiente circostante e di prendere decisioni di conseguenza, in modo da raggiungere un dato obiettivo.

Chiaro! A questo punto però mi chiedo quando si può considerare un’applicazione come un esempio di ML e quando no?

Beh, in sostanza, ciò dipende dal livello di iniziativa concessa alla macchina: se le istruzioni sono codificate nel dettaglio e, in pratica, la macchina non deve acquisire nessun tipo di conoscenza da sé, allora si sarà in presenza di IA ma, sicuramente, non si avrà a che fare con un esempio di ML dato che, in quest’ultimo caso, la macchina deve invece apprendere in maniera autonoma le regole da applicare.

Puoi fare un esempio per chiarire meglio questo punto?

Certo! Consideriamo due compiti che rientrano nell’ambito dell’IA (e, soprattutto, il modo con cui si può insegnare a un dispositivo come eseguirli).

Immaginiamo di avere due macchine e di voler insegnare alla prima a giocare a scacchi e alla seconda a riconoscere la presenza o meno di Nelson Mandela in una serie di immagini. Se il secondo compito risulta molto semplice per un essere umano, per una macchina avviene l’esatto contrario. Infatti, mentre al giorno d’oggi nessun programma è sostanzialmente in grado di far meglio di una persona quando si tratta di individuare un conoscente, già nel 1997 il computer Deep Blue fu in grado di battere a scacchi l’allora campione del mondo Garry Kasparov.

Un tuffo nel passato attraverso questo video reportage della BBC News sulla vittoria di Deep Blue contro Garry Kasparov.

Sì, mi ricordo quella notizia! Com’è potuto succedere?

Nel caso di Deep Blue, i programmatori hanno insegnato al computer a giocare a scacchi definendo la lista completa di tutte le regole: ciò è stato possibile perché le regole degli scacchi non sono molte e, soprattutto, perché sono molto formali (un cavallo si sposta a L, l’alfiere si muove in diagonale, ecc.). Deep Blue non sarebbe stato nemmeno concepibile se gli scacchi avessero avuto regole difficili da descrivere e da formalizzare.

Quindi, semplificando un po’, si può dire che ogniqualvolta toccasse a lui muovere, Deep Blue esaminasse tutte le possibili scelte. Giusto?

Esatto! Se eseguissi questa mossa, l’avversario avrebbe questa e quell’altra contromossa a sua disposizione; se quella specifica contromossa venisse da lui scelta, allora si aprirebbero per me queste possibilità, e così via – fino a individuare l’opzione migliore. Solitamente giocare a scacchi risulta difficile per un essere umano proprio perché la mente è rapidamente sopraffatta dalla complessità di tutte queste ramificazioni e non riesce a processarle in maniera efficace. Al contrario, il computer ci riesce naturalmente grazie a specifici algoritmi. Il computer non ha tuttavia utilizzato nessun tipo di intuizione o creatività: l’esecuzione delle mosse è stata, in ultima analisi, piuttosto automatica, a tal punto che uno dei suoi programmatori ha persino messo in discussione il fatto che Deep Blue sia stato un esempio di Intelligenza Artificiale.
Sicuramente, non è stato un esempio di Machine Learning!

Torniamo ora al secondo compito, cioè l’individuazione e il riconoscimento di una persona all’interno di un’immagine. Come è possibile? E perché questo caso è considerato Machine Learning?

Nel linguaggio del ML, un compito simile prende il nome di classificazione. In linea di principio, si potrebbe cercare di fornire alla macchina lo stesso tipo di regole formali usate nel caso degli scacchi: si potrebbe stabilire che gli occhi sono azzurri, i capelli ricci e biondi e così via. Tuttavia, da un lato, descrivere con poche parole ogni tratto fisico in maniera precisa e non ambigua potrebbe non essere possibile (quanto nel dettaglio, con poche parole, si può descrivere la forma del naso?). Dall’altro, anche informazioni apparentemente immediate potrebbero risultare a volte fuorvianti: se in una foto la persona indossasse una parrucca per Halloween oppure un paio di occhiali da sole in una giornata d’estate, sarebbe comunque identificabile da un conoscente; viceversa, il colore dei capelli e degli occhi fornito alla macchina, non essendo di alcuna utilità o risultando addirittura sbagliato per questa specifica immagine, indurrebbe probabilmente la macchina in errore.

Eppure, al giorno d’oggi il riconoscimento facciale da parte di una macchina funziona: come può allora un congegno imparare a riconoscere una persona in un’immagine?

In breve, alla macchina viene fornito un elevato numero (diciamo pure migliaia) di immagini – alcune contenenti la persona, altre no – così che la macchina stessa possa identificare una serie di regole per riconoscere il soggetto in completa autonomia. Arrivati a questo punto, scommetto ti starai chiedendo come funziona esattamente quest’ultimo processo. Nel prossimo articolo dedicato all’IA e ML approfondiremo nel dettaglio anche questo aspetto!