Machine Learning: come funzionano gli algoritmi alla base delle future IA

Il Machine Learning raccoglie gli algoritmi che riescono ad imparare grazie all'analisi dati: vediamo come funzionano e dove vengono applicati.

Machine Learning: come funzionano gli algoritmi alla base delle future IA
Articolo a cura di

Leggere notizie che parlano di Machine Learning è all'ordine del giorno visto il suo largo impiego in contesti differenti: NVIDIA ha puntato all'architettura Volta perché crede nel Machine Learning, nuove IA sono in sviluppo in ambito di videogames come ad esempio in Dota 2 o Starcraft 2, Elon Musk cerca di sensibilizzare le persone sul rischio che costituiscono queste IA e tante altre notizie simili. Quando si parla di intelligenza artificiale ci si riferisce ad un campo specifico del Machine Learning, il Deep Learning, che raccoglie tutti quegli algoritmi che permettono ad un'entità costituita da linee di codice di imparare in base a diverse gerarchie di concetti che operano secondo gli input che gli vengono forniti in ingresso. Non parleremo subito del Deep Learning, perché è bene capire prima come funziona il Machine Learning e perché sta spopolando da anni. Date le basi, sarà possibile approfondire gli argomenti in altri articoli che pubblicheremo nei prossimi giorni, dunque restate sintonizzati su Everyeye e non mancate di esprimere la vostra opinione nei commenti!

Machine Learning, ovvero apprendimento automatico di un algoritmo

Quando si parla di Machine Learning non ci si riferisce solo ad un'entità astratta che regola solo le IA, ma a degli algoritmi che azioniamo tutti i giorni senza neanche accorgercene. Una semplice ricerca su Google funziona in modo immediato grazie al Machine Learning, così come il riconoscimento degli oggetti o dei volti nelle foto o ancora la pubblicità che compare su Facebook, personalizzata in base ai propri interessi. Anche il riconoscimento di spam nella posta elettronica è un algoritmo di Machine Learning e più in generale si parla di apprendimento automatico di una macchina quando riesce ad imparare senza essere esplicitamente programmata per farlo. Un esempio molto semplice: se vi mostrano la foto di uno Snaso nella vostra mente associate quell'animale a quei tratti caratteristici. Se la vostra conoscenza viene ampliata con immagini di diversi tipi di Snaso (giovane, vecchio, neonato, grasso, etc...) allora avrete un'idea ancor più generale di quell'animale e potrete riconoscerlo più facilmente se ne trovate un esemplare con tratti leggermente diversi dal resto della sua specie.

Un algoritmo di Machine Learning è tale se ideato esattamente in questo modo: riesce a generalizzare un'idea imparando da una grande quantità di dati dell'oggetto o dell'ente in questione, proprio come fa un essere umano per imparare qualcosa di nuovo. L'idea è quella di riuscire a categorizzare distinguendo l'oggetto o l'ente da altri oggetti o enti: un gatto è diverso da un cane perché ha un muso, delle orecchie e una coda così caratteristici da differenziarlo immediatamente dall'altra specie. Allo stesso modo un algoritmo di Machine Learning riconosce una mail spam grazie ad un gran quantità di mail che gli hanno permesso di distinguerla da una mail 'normale', oppure capisce se c'è un cane o un gatto in una foto perché ha già studiato migliaia di foto di cani e gatti diversi. Dunque quel che caratterizza un algoritmo di Machine Learning da uno 'normale' è la capacità di distinguere delle entità nuove tramite l'analisi di Big Data (ovvero database davvero enormi). Formalmente la definizione più corretta è la seguente (per addetti ai lavori): si dice che un programma impara qualcosa da un'esperienza E rispetto ad un compito che gli è stato assegnato C insieme alla misura della sua prestazione P se la sua prestazione nel compito C, misurata da P, migliora con l'esperienza E.

Questo è un cane, questo è un gatto: studiali bene e trovali nelle mie foto

Sembra tutto molto complesso ma la realtà delle cose è molto più semplice, così come lo è la matematica dietro a questi algoritmi (almeno ad un livello basilare). Gli algoritmi di Machine Learning più semplici possono essere suddivisi in Supervisionati e Non supervisionati (e quelli di apprendimento per rinforzo, che regolano le IA). Nel primo caso è l'essere umano ad imporre al programma una distinzione tra gli oggetti che dovrà esaminare, mentre nel secondo caso è il programma stesso a distinguere i dati raggruppandoli in categorie che crea da solo. Ad esempio un programmatore può esplicitamente indicare all'algoritmo che esistono cani e gatti e che deve distinguere gli animali che esamina solo secondo queste due categorie. Provate ad aprire Google Foto e scrivete 'cane' o 'gatto' se non l'avete già fatto in passato. Per capire meglio di cosa parliamo facciamo un altro esempio davvero semplice: volete sapere a quanto vendere la vostra console insieme a 6 giochi e cercate di fare un sondaggio su Ebay. Con 7 giochi la console viene venduta a 400€, mentre con 5 a 350€.

Plausibilmente potreste scegliere di venderla a 375€ visto che avete 6 giochi, una via di mezzo tra i prezzi che avete trovato online. Un algoritmo Supervisionato funziona in modo analogo: gli si forniscono una serie di dati dei prezzi ai quali vengono vendute le console con un certo numero di giochi, l'algoritmo riesce a trovare una funzione, ovvero una legge che determina qual è il prezzo di vendita. Chiaramente la legge che stabilisce l'algoritmo deriva da considerazioni matematiche e statistiche che in casi molto semplici sono relazioni lineari (semplici come la media tra 7 giochi e 5 giochi che abbiamo fatto prima). Dunque il prezzo dipenderà solo dai dati in input che ha studiato l'algoritmo e più si forniscono dati all'algoritmo, migliore (in linea di principio) sarà la stima finale. Così funziona un codice molto basilare di Machine Learning, nulla di più, nulla di meno.

Non conosco nulla in questo Caos, trovami degli insiemi per ordinare i dati

Un algoritmo Non supervisionato deve cercare relazioni tra oggetti senza che ci sia un intervento umano, ovvero senza che gli venga detto esplicitamente quale relazione trovare. Da un gruppo di persone grigie deve trovare delle relazioni per creare sottoinsiemi ed in questo caso l'algoritmo ha fatto associazioni tra persone verdi, azzurre, rosse e viola (senza aver imposto restrizioni su come creare questi insiemi). Un caso eclatante è la ricerca su Google: se per ogni ricerca che fate il motore Google dovesse cercare la vostra parola controllandola dal proprio database senza nessuna categorizzazione a priori, questa durerebbe secoli. Serve una semplificazione alla base che riduca il numero di elementi tra i quali cercare. Qui entra in gioco l'algoritmo di Machine learning: deve raggruppare i portali web inserendo quelli 'simili' nello stesso gruppo. Ad esempio everyeye si troverà nel 'gruppo' dei videogiochi, mentre tech.everyeye sarà categorizzare in ambito tecnologico. In questo modo se qualcuno inserisce un videogioco, Google va subito a cercare tutti i risultati coerenti con la parola cercata, con uno sforzo computazionale infinitamente inferiore (e questo è chiaro dalla rapidità delle ricerca). Ma come fa un algoritmo ad associare un valore ad un portale web e categorizzarlo? Nello specifico questo non lo può sapere nessuno, altrimenti qualsiasi Web Marketer saprebbe esattamente come fare per avere il proprio sito web fra le prime scelte del motore di ricerca, però esistono delle regole (variabili) che si conoscono.

Per semplicità (perché nella fattispecie non succede proprio questo) immaginiamo di voler cercare le recensioni di Destiny 2, quindi scriviamo "Destiny 2 recensione" sul motore di ricerca: Google prima della ricerca ha già ordinato tutte le recensioni che ne parlano ed ha contato quante volte si nomina Destiny 2 negli articoli e quante volte c'è scritta la parola recensione. Se in un articolo si nomina Destiny 2 ben 20 volte e c'è scritto recensione 5 volte allora è chiaro che in linea di principio sarà più coerente alla nostra ricerca di un articolo che nomina Destiny 2 solo 1 volta e recensione anch'essa solo 1 volta. In realtà l'importanza del sito web e i link che rimandano a questo sono fondamentali ma non ci interessano nel nostro caso. L'importante è capire che quando l'algoritmo riesce a numerare il numero di parole, può automaticamente avere un modo per applicare una formula matematica e stabilire i collegamenti fra queste pagine Web. Anche il motore che ci consiglia articoli su Amazon funziona analogamente: controlla quello che abbiamo comprato o quello che abbiamo nella lista desideri e secondo un'associazione tra oggetti che si basa sulla categoria in cui si trovano, su come si chiamano e su chi li vende, ci consiglia le cose più simili ai nostri gusti piuttosto che altre. Come dovreste aver capito, il Machine Learning è davvero ovunque sul web.

Come si arriva a concepire un'IA più complessa dall'analisi dati?

Quello che vi abbiamo descritto è il funzionamento basilare del Machine Learning che poi ritroviamo sul web senza saperlo: ad esempio la pubblicità che vedete nei vari siti vi viene mostrata se coerente con i vostri gusti, ovvero se è idonea rispetto ai dati che avete fornito durante la navigazione nel web. Qualsiasi problema che coinvolge una grande quantità di dati viene risolto con algoritmi di Machine Learning per trovare una soluzione ottimale senza che un essere umano debba stabilirne il risultato. Da qui ad un'intelligenza artificiale il passo è abbastanza breve: ricordate il caso dell'algoritmo che ha battuto il record al gioco Ms.Pacman?

Quel che è stato fatto dai ricercatori è creare degli algoritmi che separatamente analizzano i dati relativi ad un compito specifico, detti agenti. Al di sopra di tutti c'è un controllore, il top agent, che analizza i risultati provenienti dall'analisi dati dei sotto-algoritmi e deve scegliere qual è la mossa migliore da compiere in base a dei principi che, in questo caso, gli vengono esplicitamente suggeriti: se uno degli agenti gli suggerisce di andare a destra per prendere una pallina che dà punti ma subito dopo c'è un fantasma che causa la morte di Ms.Pacman, è chiaro che la scelta di andare a destra deve essere disincentivata dal top agent assegnandole un valore bassissimo in priorità. Se la strada a sinistra è libera quella sarà sempre la scelta migliore, anche se non contiene nessun punto extra.

Il Machine Learning ci metterà di fronte a delle questioni morali?

La risposta è, nel modo più assoluto. Elon Musk non è certo un pazzo visionario. Chi non si stava chiedendo le implicazioni morali che possono avere questi algoritmi ormai starà già pensando che ci sono dei punti che vanno discussi in maniera seria e che non possono essere ignorati: è giusto che un'azienda come Google o Facebook possa disporre dei dati degli utenti e avere il predominio nell'ambito della ricerca o dei social network? Che ripercussioni può avere un algoritmo che analizza i nostri dati sulla nostra vita? Che impatto può avere invece un'IA basata sul Machine Learning in contesti nel quale deve avere a che fare con degli esseri umani? Le discussioni che abbiamo sollevato non sono banali e cercheremo di approfondirle nei prossimi articoli senza veicolare troppo il vostro pensiero verso una determinata idea, in quanto il dibattito è meno scontato di quanto si possa pensare.