IULM AI LAB

Blog

Nell’era del machine learning

Mag 4, 2021

È possibile sostenere che le macchine siano in grado di apprendere autonomamente?

La recente diffusione del machine learning rappresenta un vero e proprio cambio di paradigma in ambito AI, una rivoluzione tecnologica dettata da un netto cambiamento nel metodo di programmazione e di “addestramento” delle macchine. Questa disciplina ha come tema centrale il rapporto tra uomo e macchina e i vari metodi algoritmici tramite i quali le macchine possono auto apprendere.

La logica del “se…allora”

A partire dall’invenzione della Macchina di Turing, passando dalla Cibernetica di Norbert Wiener, fino ad arrivare ai giorni nostri, l’essere umano ha sempre cercato di rendere le macchine più evolute e a lui simili.

Inizialmente l’unico modo per renderle “intelligenti” era quello di formulare delle istruzioni tramite la stesura di un codice di programmazione dettagliato. Il codice, composto da un elevatissimo numero di righe, veniva fornito alla macchina basandosi sulla cosiddetta logica del “se…allora”. Ciò significa che al ricevere di un determinano input, rappresentato dal “se”, il sistema restituiva un output preimpostato, il cosiddetto “allora”.

Se la macchina riceve un input di questo tipo allora genera un output di quest’altro tipo. È il caso di Deep Blue di IBM,il super computer che nel 1997 fu in grado di battere l’allora campione di scacchi Garry Kasparov. Una rappresentazione di forza di calcolo più che d’intelligenza, chiara dimostrazione del grandissimo potenziale in termini computazionali e di velocità più che un segnale di evoluzione “intellettuale”.

Anche se i compiti che i programmatori attribuivano alla macchina potevano in qualche modo apparire simili all’operato umano, erano solo il risultato di una minuziosa sequenza d’istruzioni. Infatti, questo elenco di informazioni, grazie all’intervento dell’intelligenza umana e la sua abilità nei processi di codifica, permetteva alla macchina di conoscere effettivamente quello che avrebbe dovuto fare in risposta a un determinato input.

Una nuova logica di programmazione

Questo metodo di programmazione fu superato nel 2016 quando Alpha Go, un sistema realizzato da Google, riuscì a vincere Ke Jie, il campione mondiale di Go. Le grandi differenze rispetto al sistema di IBM, furono sia nel metodo di programmazione, sia nelle caratteristiche del gioco stesso.

Infatti Go, antico gioco da tavolo cinese, segue regole relativamente semplici e permette ai giocatori di utilizzare un numero di mosse virtualmente infinito (nettamente superiore a quelle degli scacchi).

In termini di programmazione la logica “se…allora” sarebbe risultata inefficace a causa dell’impossibilità di istruire la macchina tramite mosse preimpostate che, essendo virtualmente infinite, non permettevano ai suoi sviluppatori di codificarle e inserirle nel codice. Questo comportò la necessità di sviluppare una nuova logica di programmazione.

Un metodo che, invece di istruire la macchina su come comportarsi partendo da una serie d’istruzioni codificate, gli permetteva di “imparare autonomamente”. Partendo da questo concetto fondante, venne indicato alla macchina come reagire agli input in base agli input stessi, permettendogli così di auto-programmarsi. L’addestramento di Alpha Go, infatti, venne realizzato sia mediante un meccanismo di apprendimento supervisionato, sia facendo giocare l’algoritmo 29 milioni di partire contro se stesso in circa 40 giorni.

I metodi di apprendimento

Come viene descritto nel libro Fare Marketing con l’AI: Intelligenza Aumentata per comunicare brand, prodotti e idee, scritto da Guido di Fraia, CEO di IULM AI Lab, ed edito da Hoepli, le macchine possono imparare attraverso quattro metodologie di appredimento:

  1. Supervisionato;
  2. Non supervisionato;
  3. Per rinforzo;
  4. Profondo o Deep Learning.

Apprendimento supervisionato

Questo primo metodo richiede un grande effort da parte dell’essere umano. Se, per esempio, forniamo alla macchina alcune decine di migliaia di immagini di gatti, etichettandole (o taggandole) con l’attributo “gatto”, la macchina riuscirà gradualmente a distinguere i felini domestici da tutti gli altri possibili elementi diversi da loro (come cani, pesci o qualsiasi altra immagine che non rappresenta un gatto). Questo è dovuto dalla capacità della macchina di riconoscere una configurazione di punti (di cui si compongono le immagini digitali) indipendentemente dalle caratteristiche dell’animale (colore del pelo, dimensioni o postura).

Tutto ciò senza dover scrivere neanche una riga di codice, ma attraverso una procedura capace di “insegnare” alla macchina a riconoscere i gatti grazie agli attributi inseriti a priori dall’essere umano.

In questo senso le macchine simulano le logiche dell’apprendimento umano, senza tuttavia riuscire a riprodurlo fedelmente. Si pensi a come un bambino impari a riconoscere un cane; basterà che egli riceva dai genitori l’informazione che quel tipo di animale è un cane per poter riconoscere l’animale in tutte le sue possibili varianti per tutta la vita, partendo da una base informativa estremamente ridotta. Al contrario, le macchine, al fine di riconoscere correttamente un cane, avranno bisogno di decine di migliaia d’immagini prima di poter identificare l’animale correttamente.

In termini applicativi i sistemi di machine learning supervisionati trovano applicazione nelle seguenti attività:

  • Classificazione delle immagini;
  • Diagnostica (per immagini o su basi dati);
  • Identificazione di tentativi di frode;
  • Previsioni meteorologiche;
  • Stime sugli andamenti dei mercati;
  • Valutazione delle aspettative di vita.

Apprendimento non supervisionato

Si tratta di un metodo di apprendimento caratterizzato da un diverso tipo di approccio. In questo caso, infatti, l’uomo fornisce al sistema solo i dati (strutturati o non strutturati) senza etichettarli e senza indicare alla macchina quale dovrà essere l’output corretto da restituire. Sarà la macchina stessa a individuare in modo autonomo raggruppamenti (cluster) o configurazioni significative nei dati (pattern).

Tramite questa metodologia non viene fornita alla macchina una “base di conoscenza” da cui ricavare l’output corretto, ma sarà il sistema stesso a ricavare le informazioni analizzando i dati forniti, individuando similitudini e classificazioni attraverso complessi calcoli statistici. Questo metodo si applica in modo particolarmente efficace ai dati di tipo numerico, ma viene impiegato anche su dati non strutturati (come le immagini)

Ad esempio, se forniamo al sistema i dati relativi all’anagrafe dei nostri clienti, agli acquisti effettuati, alle loro caratteristiche socio-demografiche e comportamentali, sarà il programma stesso a trovare in autonomia delle correlazioni tra i clienti, suddividendoli in cluster.

Le possibili applicazioni per questo metodo sono virtualmente infinite e permettono di superare alcuni limiti intrinsechi dell’essere umano, come le risorse temporali, cognitive e di calcolo, risultando così strumenti estremamente efficaci ad esempio per il marketing e per tutte quelle attività che richiedono la necessità di semplificare grandi quantità di dati attraverso tecniche statistiche come la clusterizzazione o la riduzione della dimensionalità.

Le attività che possono essere applicate a questo sistema sono:

  • Targettizzazione dei pubblici;
  • Segmentazione di elementi in gruppi omogenei;
  • Sistemi di raccomandazione;
  • Individuazione di strutture latenti nei dati;
  • Categorizzazione e riduzione della complessità dei significati;
  • Big data visualization.

Apprendimento per rinforzo

Questo metodo viene utilizzato quando è estremamente difficile codificare gli output ottimali da raggiungere, rendendo necessario testare diverse strategie d’azione misurandone le varie performance.

Questa metodologia richiede all’algoritmo di operare delle scelte in base a ciascuna opzione possibile, restituendo alla macchina due possibili risultati utili a ottimizzare la propria strategia: success o fail. L’algoritmo di apprendimento fornisce alla macchina “segnali di ricompensa” in tempo reale, che indicano il livello di correttezza della decisione presa, permettendogli gradualmente di modificare la sua strategia al fine di ottenere la ricompensa più elevata.

Tale approccio è utilizzato particolarmente nella robotica e si rivela funzionale soprattutto nell’ambito delle auto a guida autonoma, oltre che tra gli ambiti applicativi sotto riportati:

  • Applicazioni di IoT (Internet delle cose)
  • Sistemi di movimento (robotica e auto a guida autonoma);
  • Presa di decisioni in tempo reale;
  • Giochi supportati da AI.

Deep Learning o Apprendimento profondo

Il Deep Learning rappresenta una versione particolarmente avanzata del machine learning e viene associata alle reti neurali, algoritmi e funzioni statistiche implementate in hardware particolarmente performanti.

Si compone di vari strati e unità, attraverso i quali il problema viene suddiviso su più livelli e dove l’output di ciascuno di essi viene utilizzato come input di quello successivo. Questo processo è simile a quello utilizzato dal cervello umano, composto da aree specializzate in grado di processare determinati stimoli e di trasferirli ai livelli superiori.

Le reti neurali sono comunemente impiegate per lo svolgimento di compiti di elaborazione molto complessa, come quelli di interpretazione del linguaggio umano.

Proprio l’elaborazione del linguaggio umano è un caso di applicazione del Deep Learning. Un esempio è rappresentato dal sistema sviluppato da DeepMind WaveNets in grado di generare un parlato che imita qualsiasi voce umana e che suona più naturale dei migliori sistemi di sintesi vocale esistenti, riducendo il divario con le prestazioni umane di oltre il 50%.

I livelli (o strati) di elaborazione di cui si compone il Deep Learning sono:

  • primo strato in cui riceve gli input (i dati);
  • nei successivi strati ogni “neurone” è collegato allo strato precedente e a quello successivo; a queste connessioni viene attribuito un “peso” numerico, proporzionale alla loro importanza;
  • lo strato di uscita è quello che restituisce gli output che rappresentano la soluzione del problema

Vuoi scoprire come applicare l’AI nella tua azienda?

Scopri “Fare Marketing con l’AI”: il libro di Guido di Fraia, pensato per dare un’overview delle potenzialità dell’Intelligenza Aumentata per le attività di marketing e comunicazione aziendale.

La formazione

Creiamo cultura sull'AI per aumentare la competitività delle imprese e del sistema paese 

La formazione

Creiamo cultura sull'AI per aumentare la competitività delle imprese e del sistema paese