Negli ultimi 3 anni abbiamo assistito a una notevole evoluzione nelle capacità degli algoritmi di Intelligenza Artificiale, soprattutto grazie ad avanzamenti nel campo di Deep Learning e del Reinforcement Learning.
A esclusione di alcuni algoritmi sviluppati internamente da società come Google, Facebook o Amazon (quest’ultima ha più di 1.000 dipendenti che lavorano esclusivamente su Alexa, la sua IA con assistente vocale), nel campo dell’Intelligenza Artificiale c’è una grande open community intenta a rendere pubbliche e condividere le innovazioni.
La disseminazione dei risultati avviene in primis tramite pubblicazione su riviste accademiche, ma anche tramite implementazioni pubbliche di modelli su piattaforme come Github.
Più recentemente, si è osservato un ulteriore passo in avanti, ovvero la possibilità di avere accesso sia a dataset pronti all’uso per il training di modelli sia a modelli di Machine Learning pre-trained già pronti.
Se da un lato è senza dubbio emozionante poter partecipare a questa rivoluzione, che lentamente porterà a una vera Intelligenza Artificiale, dall’altro questi veloci avanzamenti sollevano delle problematiche non ovvie e che possono colpirci in modi inaspettati.
Riportando le parole di John Giannandrea, capo della ricerca IA di Google -
“Forget Killer Robots. Bias Is the Real AI Danger”. Per capire che cosa si intende per bias e dove stia il problema, facciamo prima un piccolo approfondimento sul processo di training di modelli di IA.
Come si costruisce un modello di Machine Learning?
A un livello base, un modello di Machine Learning è semplicemente una formula matematica (algoritmo) che da un lato riceve informazioni in un certo formato (dati), e dall’altro produce informazioni in un altro formato (output).
Quello che produce la “magia” è esattamente il processo che consente di addestrare dei sistemi in grado di trasformare inputs in output. Ecco alcuni esempi piuttosto eloquenti:
- Gli assistenti vocali come Amazon Alexa e Google Assistant convertono le domande che poniamo (input) in risposte (output);
- Le macchine senza conducente convertono le immagini stradali (input) in decisioni sulla guida (output);
- Gli algoritmi di traduzione convertono il testo da una lingua (input) a un’altra (output).
Il processo in questione è la risultanza di un lungo processo di addestramento (training): all’algoritmo vengono sottoposti moltitudini di esempi (dati) da cui imparare, solitamente con anche l’indicazione su cosa imparare.
Cos’è e dove sta la bias?
Pertanto, i modelli di Machine Learning imparano in base a quello che gli viene mostrato, un po’ come avviene con l’apprendimento umano: se in tutta la vita abbiamo incontrato solo gatti zebrati, ci viene difficile immaginare gatti a macchie. Allo stesso modo, se i dati di training per l’algoritmo contengono un forte sbilanciamento (bias) verso un determinato fattore, l’algoritmo avrà tendenzialmente la stessa bias.
Il caso di Google:
Un esempio clamoroso risale al 2015, quando gli algoritmi di picture recognition di Google classificarono un coppia afro-americana come “gorilla”. La bias nel modello è probabilmente nata da una limitata presenza di persone afro-americane rispetto ad altre etnie e specie animali, nei dati che il team di ricerca di Google selezionò per addestrare il suo modello.
Bias intrinseca ai dati:
In certi casi, invece, la bias può essere intrinseca ai dati stessi. Immaginiamo, ad esempio, di voler costruire un modello per predire i vincitori dei prossimi premi Oscar: visto che, negli ultimi anni, è stata sollevata la questione di una probabile discriminazione nella scelta dei vincitori, un modello che faccia training sui vincitori passati e che abbia l’etnia come uno dei fattori tenderà a rispecchiare la bias (se presente) insita nel processo di scelta dei vincitori.
L’ironia è che, in questo caso, avere un modello con tale bias potrebbe portare ad avere risultati predittivi migliori, in quanto è il processo di partenza stesso a contenere la bias.
È evidente come la questione possa diventare spinosa perciò diventa fondamentale cercare di capire a fondo se e come un modello presenta delle bias e tenere a mente come il modello verrà utilizzato in pratica.
Tornando al nostro esempio, se l’obiettivo non è semplicemente predire i possibili vincitori del premio Oscar, ma usare il modello per assegnare il premio, allora la bias va completamente eliminata dal modello e dai dati di training.
Superfluo dire che, se lo scopo è solamente avere la massima accuratezza nelle predizioni, forse la bias può rendere il modello migliore, ma da qualunque altro punto di vista resta un problema.
Deep Learning e perché il problema è difficile da risolvere
Come accennato, recenti avanzamenti nel campo hanno evidenziato le capacità dei modelli di Deep Learning. Un problema derivato dall’uso di questi modelli è quanto sia difficile capirne esattamente il funzionamento anche per gli stessi ricercatori che li hanno creati, il che chiaramente rende ancora più difficile analizzarne le bias.
Il problema diventa quasi insormontabile nel caso di uso di modelli pre-trained. Questi sono modelli a cui è già stato fatto il training su enormi quantità di dati non facilmente reperibili, che sono pronti a essere usati da terze parti.
Il vantaggio di tali modelli è chiaramente la possibilità di evitare la fase di design e training del modello che, oltre all’accesso ai dati, spesso richiede una conoscenza profonda di Deep Learning e tempi molto lunghi (per alcuni modelli, il processo di training può durare anche settimane).
Il rischio che si corre, però, è di non essere a conoscenza delle assunzioni alla base del modello, e appunto di possibili bias.
Possibili soluzioni alle bias
Il problema delle bias è, e resterà, un problema da affrontare gradualmente, senza soluzioni definitive. Fortunatamente, esistono una serie di azioni che si possono intraprendere per mitigarlo e cercare di tenerlo sotto controllo:
- Pensare esplicitamente a possibili bias che possono influenzare i dati e, verificatane la presenza, provare a correggerle manualmente (tecniche come over-sampling e under-sampling possono aiutare);
- Pensare fin dalla fase di sviluppo a come il modello verrà usato, e assicurarsi che il modello sia sviluppato in modo consono;
- Esplicitare chiaramente assunzioni e dati usati per fare training del modello.
Per questo e altri temi legati a IA, Deep Learning e quant’altro, sarò disponibile durante l’Hackathon di HTML.it.