Machine Learning: il mondo degli algoritmi

L’apprendimento automatico è un campo dedicato alla comprensione e alla costruzione di metodi che consentono alle macchine di “imparare”, ovvero metodi che sfruttano i dati per migliorare le prestazioni del computer su una serie di attività.

Gli algoritmi di apprendimento automatico costruiscono un modello basato su dati campione, noti come dati di addestramento, per fare previsioni o prendere decisioni senza essere esplicitamente programmati per farlo.

Gli algoritmi di apprendimento automatico sono utilizzati in un’ampia varietà di applicazioni, come in medicina, filtraggio della posta elettronica, riconoscimento vocale, agricoltura e visione artificiale, dove è difficile o irrealizzabile sviluppare algoritmi convenzionali per eseguire le attività necessarie.

Un sottoinsieme dell’apprendimento automatico è strettamente correlato alla statistica computazionale, che si concentra sull’elaborazione di previsioni utilizzando i computer, ma non tutto l’apprendimento automatico è apprendimento statistico. Lo studio dell’ottimizzazione matematica fornisce metodi, teoria e domini applicativi al campo dell’apprendimento automatico. Il data mining è un campo di studio correlato, incentrato sull’analisi esplorativa dei dati attraverso l’apprendimento senza supervisione.

Alcune implementazioni dell’apprendimento automatico utilizzano dati e reti neurali in un modo che imita il funzionamento di un cervello biologico.

Nella sua applicazione ai problemi aziendali, l’apprendimento automatico viene anche definito analisi predittiva.

Storia e relazioni con altri campi 

Le strategie, gli algoritmi e le deduzioni che hanno dimostrato di funzionare bene in passato sono alla base del funzionamento degli algoritmi di apprendimento. A volte queste deduzioni possono essere ovvie, come nel caso del sole che sorge ogni mattina, ma altre volte possono essere più sottili, come la probabilità di esistenza di cigni neri non scoperti basata sulla presenza di specie geograficamente separate con varianti di colore.

I programmi di apprendimento automatico consentono ai computer di eseguire compiti senza essere esplicitamente programmati per farlo. Questo avviene attraverso l’apprendimento dai dati forniti al computer per svolgere specifiche attività. Mentre per compiti semplici è possibile programmare algoritmi che guidano la macchina passo dopo passo, per compiti più complessi può risultare difficile per gli esseri umani creare manualmente gli algoritmi necessari. Pertanto, risulta spesso più efficace consentire alla macchina di sviluppare il proprio algoritmo, anziché specificare ogni passo tramite programmatori umani.

Nell’ambito dell’apprendimento automatico, vengono utilizzati vari approcci per insegnare ai computer a svolgere compiti quando non esiste un algoritmo completamente soddisfacente. Uno di questi approcci consiste nel considerare alcune delle risposte corrette come valide in casi in cui ci sono molte possibili risposte. Questi dati di addestramento vengono poi utilizzati per migliorare gli algoritmi utilizzati dal computer per determinare le risposte corrette. Ad esempio, per addestrare un sistema di riconoscimento dei caratteri, è stato spesso utilizzato il set di dati MNIST, che contiene cifre scritte a mano.

L’uso dell’Intelligenza Artificiale

L’apprendimento automatico ha origine nella ricerca sull’intelligenza artificiale (AI) come disciplina scientifica. Inizialmente, alcuni ricercatori si interessarono alla possibilità di far imparare alle macchine dai dati. Furono esplorati vari approcci simbolici e reti neurali, che si rivelarono essere reinvenzioni di modelli lineari generalizzati della statistica. Anche il ragionamento probabilistico fu impiegato, in particolare nell’ambito della diagnosi medica automatizzata.

Tuttavia, si sviluppò una separazione tra l’intelligenza artificiale e l’apprendimento automatico a causa dell’enfasi crescente sull’approccio logico e basato sulla conoscenza. I sistemi probabilistici incontravano problemi teorici e pratici nell’acquisizione e rappresentazione dei dati. Negli anni ’80, i sistemi esperti dominarono il campo dell’intelligenza artificiale, mentre la statistica cadde in disgrazia. Il lavoro sull’apprendimento simbolico/basato sulla conoscenza continuò nell’ambito dell’intelligenza artificiale, dando origine alla programmazione logica induttiva. Allo stesso tempo, la ricerca più orientata alla statistica si spostò verso il riconoscimento di schemi e il recupero di informazioni, al di fuori del campo dell’intelligenza artificiale.

La ricerca sulle reti neurali fu abbandonata sia nell’ambito dell’intelligenza artificiale che dell’informatica. Tuttavia, questa linea di ricerca fu portata avanti da studiosi di altre discipline, tra cui Hopfield, Rumelhart e Hinton. Nel corso degli anni ’80, raggiunsero un successo significativo con la reinvenzione della retropropagazione.

Negli anni ’90, l’apprendimento automatico fu riorganizzato e riconosciuto come un campo autonomo. L’obiettivo si spostò dall’intelligenza artificiale alla risoluzione di problemi pratici. L’attenzione si spostò dagli approcci simbolici ereditati dall’intelligenza artificiale a metodi e modelli tratti dalla statistica, dalla logica fuzzy e dalla teoria della probabilità.

Il data mining

L’apprendimento automatico e il data mining sono due discipline che spesso utilizzano metodi simili e si sovrappongono in diversi ambiti. Tuttavia, hanno obiettivi leggermente diversi. L’apprendimento automatico si concentra sulla previsione, utilizzando proprietà conosciute apprese dai dati di addestramento, mentre il data mining si concentra sulla scoperta di proprietà precedentemente sconosciute nei dati, durante la fase di analisi della scoperta della conoscenza nei database.

Il data mining utilizza molti dei metodi dell’apprendimento automatico, ma con un obiettivo diverso. Allo stesso modo, l’apprendimento automatico può utilizzare metodi di data mining, come l’apprendimento non supervisionato o come fase di pre-elaborazione per migliorare l’accuratezza del modello. La confusione tra queste due comunità di ricerca, che spesso hanno conferenze e riviste separate, deriva dai diversi presupposti con cui lavorano. Nell’apprendimento automatico, le prestazioni vengono valutate principalmente in base alla capacità di riprodurre la conoscenza nota, mentre nel data mining e nella scoperta della conoscenza, il focus principale è sulla scoperta di conoscenze precedentemente sconosciute.

L’apprendimento automatico ha anche legami stretti con l’ottimizzazione, poiché molti problemi di apprendimento vengono formulati come la minimizzazione di funzioni di perdita su un insieme di esempi di addestramento. Le funzioni di perdita misurano la discrepanza tra le previsioni del modello addestrato e le istanze effettive del problema. Ad esempio, nella classificazione, l’obiettivo è assegnare correttamente le etichette alle istanze e i modelli vengono addestrati per prevedere con precisione le etichette predefinite di un insieme di esempi.

I metodi di Machine Learning

I metodi di apprendimento automatico sono tradizionalmente suddivisi in tre grandi categorie, che corrispondono ai paradigmi di apprendimento, in base alla natura del “segnale” o del “feedback” disponibile per il sistema di apprendimento:

  1. Apprendimento supervisionato: in questo approccio, al computer vengono forniti input di esempio insieme agli output desiderati, che vengono forniti da un “insegnante” o un supervisore. L’obiettivo è apprendere una regola generale che mappa gli input agli output, in modo da poter fare previsioni o classificazioni su nuovi dati.
  2. Apprendimento non supervisionato: in questo caso, all’algoritmo di apprendimento non vengono fornite etichette o output desiderati. L’algoritmo deve lavorare autonomamente per trovare la struttura o i modelli nascosti all’interno dei dati di input. L’apprendimento non supervisionato può essere un obiettivo in sé, cercando di scoprire modelli o cluster nei dati, oppure può essere utilizzato come un passaggio preliminare per l’estrazione di caratteristiche o altre analisi dei dati.
  3. Apprendimento per rinforzo: in questo paradigma, un programma per computer interagisce con un ambiente dinamico in cui deve raggiungere un obiettivo specifico. Durante l’interazione con l’ambiente, il programma riceve feedback sotto forma di ricompense o punizioni, che cerca di massimizzare nel corso del tempo. L’apprendimento per rinforzo è spesso utilizzato per problemi di decisione sequenziale, come il controllo di robot o i giochi.

È importante notare che ogni categoria ha i suoi vantaggi e limiti, e non esiste un singolo algoritmo che funzioni per tutti i tipi di problemi. La scelta dell’approccio dipende dalla natura dei dati, dall’obiettivo dell’apprendimento e dalle risorse disponibili.

La riduzione della dimensionalità

La riduzione della dimensionalità è un processo che mira a ridurre il numero di variabili casuali o caratteristiche in un set di dati, ottenendo un insieme più piccolo di variabili principali. Questo processo può essere considerato come un’eliminazione o un’estrazione di caratteristiche. Uno dei metodi popolari per la riduzione della dimensionalità è l’analisi delle componenti principali (PCA), che consente di rappresentare dati ad alta dimensionalità in uno spazio di dimensione inferiore, preservando al contempo la maggior parte delle informazioni. Ad esempio, la PCA può ridurre dati tridimensionali (3D) a un’immagine bidimensionale (2D) senza alterare i dati originali.

Un’ipotesi comune nella riduzione della dimensionalità è che i dati ad alta dimensionalità siano distribuiti lungo varietà o strutture di dimensione inferiore. Molte tecniche di riduzione della dimensionalità si basano su questa ipotesi, aprendo la strada all’apprendimento molteplice e alla regolarizzazione molteplice.

L’obiettivo finale della riduzione della dimensionalità è semplificare e comprimere i dati, eliminando ridondanze o rumore e consentendo una rappresentazione più efficiente del set di dati originale. Questo può essere utile per migliorare le prestazioni dei modelli di apprendimento automatico, ridurre il costo computazionale o facilitare l’interpretazione dei dati.

I modelli di Machine Learning

I modelli di machine learning richiedono generalmente una grande quantità di dati affidabili per poter effettuare previsioni accurate. Durante il processo di addestramento di un modello di machine learning, gli ingegneri devono individuare e raccogliere un campione di dati rappresentativo e ampio. Questi dati possono assumere forme diverse, come un corpus di testo, una collezione di immagini, dati di sensori o dati raccolti dagli utenti di un servizio.

L’overfitting è un fenomeno che richiede attenzione durante l’addestramento dei modelli di machine learning. I modelli addestrati su dati distorti o non rappresentativi possono generare previsioni distorte o indesiderate. I modelli con bias possono portare a risultati dannosi, favorendo impatti negativi sulla società o sugli obiettivi stessi. Il bias algoritmico è un possibile risultato di dati che non sono stati adeguatamente preparati per l’addestramento. L’etica dell’apprendimento automatico sta diventando un campo di studio a sé stante e deve essere integrata all’interno dei team di ingegneri di machine learning.

Un approccio che viene utilizzato per affrontare alcune di queste sfide è l’apprendimento federato. Si tratta di una forma adattata di intelligenza artificiale distribuita che permette di addestrare modelli di machine learning in modo decentralizzato, mantenendo la privacy degli utenti senza dover inviare i loro dati a un server centralizzato. Questo approccio aumenta anche l’efficienza, distribuendo il processo di addestramento su molti dispositivi. Ad esempio, Gboard utilizza l’apprendimento federato per addestrare i modelli di previsione delle query di ricerca sui telefoni cellulari degli utenti senza dover inviare le ricerche individuali a Google.

Le limitazioni del Machine Learning

Nonostante l’apprendimento automatico abbia portato trasformazioni significative in diversi campi, spesso i programmi di machine learning non riescono a raggiungere i risultati desiderati. Ci sono diverse ragioni a ciò: mancanza di dati adeguati, limitato accesso ai dati, distorsione dei dati, problemi di privacy, selezione inappropriata di compiti e algoritmi, errori umani, mancanza di risorse e sfide nella valutazione dei modelli.

Un esempio di insuccesso nell’apprendimento automatico è stato l’incidente del 2018 che ha coinvolto un’auto a guida autonoma di Uber, che non è stata in grado di rilevare un pedone, causando una tragica collisione mortale. Inoltre, i tentativi di utilizzare l’apprendimento automatico nel settore sanitario, come ad esempio con il sistema IBM Watson, non hanno fornito i risultati attesi nonostante gli investimenti di tempo e risorse considerevoli.

Nel campo della ricerca scientifica, l’apprendimento automatico è stato utilizzato come strategia per affrontare il crescente carico di lavoro correlato all’aumento della letteratura biomedica. Tuttavia, anche se ci sono stati miglioramenti grazie all’utilizzo di set di dati di addestramento, l’apprendimento automatico non è ancora stato sufficientemente sviluppato per ridurre il carico di lavoro senza compromettere la sensibilità necessaria per la ricerca e l’analisi dei risultati stessi.

È importante riconoscere le limitazioni dell’apprendimento automatico e lavorare per affrontare le sfide che ne derivano, come l’acquisizione di dati di qualità, la selezione adeguata degli algoritmi e la valutazione rigorosa dei modelli, al fine di ottenere risultati affidabili e raggiungere gli obiettivi desiderati.

Etica nel Machine Learning

L’apprendimento automatico solleva una serie di questioni etiche. I sistemi addestrati su set di dati che riflettono pregiudizi possono mostrare tali pregiudizi durante l’utilizzo, contribuendo a una forma di bias algoritmico che perpetua i pregiudizi culturali. Ad esempio, nel caso della St. George’s Medical School nel Regno Unito nel 1988, un programma di apprendimento automatico addestrato su dati di ammissione precedenti ha escluso erroneamente quasi 60 candidati che erano donne o avevano nomi non europei.

L’utilizzo di dati sulle assunzioni passate di un’azienda con politiche di assunzione razziste può portare a un sistema di apprendimento automatico che riproduce quei pregiudizi assegnando punteggi ai candidati in base alla somiglianza con i candidati di successo precedenti. Pertanto, la raccolta responsabile dei dati e la documentazione delle regole algoritmiche utilizzate sono fondamentali nell’apprendimento automatico.

Inoltre, l’intelligenza artificiale può essere ben attrezzata per prendere decisioni in campi tecnici che si basano su dati e informazioni storiche. Tuttavia, poiché le lingue umane contengono pregiudizi, le macchine addestrate su sistemi linguistici inevitabilmente imparano anche tali pregiudizi.

Al di là dei pregiudizi personali, ci sono anche altre sfide etiche nell’uso dell’apprendimento automatico, soprattutto nel campo dell’assistenza sanitaria. Vi è preoccupazione tra gli operatori sanitari che questi sistemi potrebbero essere progettati non nell’interesse del pubblico, ma come strumenti per generare profitto.

Ad esempio, gli algoritmi potrebbero essere progettati per prescrivere test o farmaci non necessari in cui i proprietari dell’algoritmo hanno interessi finanziari. Sebbene l’apprendimento automatico possa offrire agli operatori sanitari uno strumento aggiuntivo per diagnosticare, curare e pianificare il recupero dei pazienti, è fondamentale mitigare tali preoccupazioni etiche al fine di garantire che l’uso dei modelli sia in linea con gli interessi e il benessere dei pazienti.