L’obiettivo di questo post è chiaro: capire cosa intendiamo per Trusting AI e valutare attentamente il concetto di AI Fairness nelle applicazioni reali. Vedremo inoltre cos’è e come valutare il disparate impact usando IBM Open Source Toolkit!
Iniziamo il 2020 con il botto! È arrivato il momento di dare il via a un nuovo ambizioso capitolo della nostra storia.
Quest’anno, o perlomeno in alcuni mesi, concentreremo la nostra attenzione su 5 grandi aree tematiche che torneranno a più riprese sul nostro blog!
Uniremo ai concetti etici e sociali, i sistemi di machine learning, accompagnando la necessaria teoria con la preziosa pratica.
Il nostro focus si concentrerà dunque attorno:
- Trust AI (il concetto di fairness in primo luogo)
- Verification
- Security
- Privacy
- Adversarial
Basta indugi, procediamo!
Trusting AI
Sempre maggiore è l’impiego dei sistemi d’intelligenza artificiale a supporto delle decisioni umane.
Dietro la promessa di risultati di alto valore si nasconde una fiducia sconsiderata nei risultati di questi sistemi.
Ora, l’affidamento umano sulle tecnologie si è sempre basato su una loro completa conoscenza e una più vasta valutazione circa gli effettivi livelli di affidabilità e sicurezza.
Questo significa, ad esempio, che ci fidiamo della spia rossa di allarme lampeggiante sul pannello di controllo di un aereo e non pensiamo due volte a spegnere il motore estinguendo il fuoco.
Non possiamo, o meglio non dovremmo, dire lo stesso nel caso in cui un modello di machine learning preveda che un candidato non debba essere assunto dall’azienda.
Per fidarci di una decisione presa da un algoritmo non possiamo quindi limitarci a sapere che sia affidabile ma dobbiamo anche avere la certezza che sia eticamente corretto, che i suoi processi decisioni siano documentati e che eviti di causare danni.
AI Fairness
Il concetto di AI Fairness nasce quindi come soluzione a un insidioso problema, nascosto ma delicato, legato all’applicazione dei modelli di machine learning sulle decisioni di alto livello riguardanti direttamente le persone.
Sebbene i modelli di machine learning siano sempre una forma di discriminazione statistica, l’opinabilità del loro risultato diventa significativa e rilevante quando possiamo chiaramente distinguere gruppi privilegiati con vantaggi sistematici rispetto a gruppi non privilegiati in svantaggio sistematico.
La presenza di bias nei dati di training causato da pregiudizi nella loro raccolta o fenomeni di under- / over- sampling conduce a modelli capaci di manifestare queste tendenze.
Dobbiamo tenere a mente che sono stati documentati più di 180 bias cognitivi, da cui ogni giorno dipendiamo per prendere decisioni.
Qualora le necessarie cautele non venissero messe in atto, gli effetti di questi bias, prima nascosti nei dati, poi nei sistemi di machine learning, potrebbero rivelarsi particolarmente dannosi.
Oggi sistemi di AI vengono usati per approvare o rifiutare prestiti bancari, selezionare i candidati per un colloquio lavorativo, o individuare quelli migliori per un trattamento sanitario.
Per eliminare possibili discriminazioni presenti nelle decisioni e nei comportamenti di questi sistemi è fondamentale tradurre i principali valori umani in termini ingegneristici.
In che modo? Proviamo a capirlo, individuando per prima cosa l’origine di questi bias.
Bias Entering Point
Esistono due principali punti d’ingresso per i bias cognitivi nel ciclo di vita di un’applicazione d’intelligenza artificiale: data collection e processing and labelling.
Data Collection
- Introduzione bias attraverso tecnologie di raccolta dati (sistemi disponibili in determinate lingue selezionate)
- Bias come conseguenza di sampling strategy errate: collezione di una rappresentazione insufficiente di una popolazione statistica
Processing and labelling
- Bias nati dallo scartare dati: le popolazioni possono contenere valori mancanti (missing values) che erroneamente scartati producono under-representation
- L’ettichettamento umano potrebbe favorire gruppi privilegiati o rinforzare alcuni stereotipi
Evaluate AI Fairness: Disparate Impact
Abbiamo compreso il concetto di AI fairness e individuandone l’origine possiamo mette in atto alcune preliminari misure cautelari.
Oltre oceano, lontano dalle coste italiane, la legge statunitense riconosce una metrica per la codifica dei bias non intenzionali (unintentional bias): ecco il così detto disparate impact.
Il disparate impact si verifica quando un processo di selezione mostra comportamenti ampiamente differenti per gruppi diversi, benché il sistema decisionale appaia a prima vista normale.
La determinazione legale della metrica è imperniata sulla definizione di classi protette (quali l’etnia, il sesso, etc) e una descrizione esplicita del processo decisionale.
Quando coinvolgiamo computer e algoritmi, tutto diventa più nebuloso: è complicato rivelare il processo; anche qualora questo risulti aperto è difficile chiarire in un contesto legale come l’algoritmo abbia effettivamente compiuto la decisione.
Rispetto alla soluzione proposta da Google, che tenta di risolvere l’annoso problema delle black-box con XAI, ad una ricerca del dicembre 2014 risale la scelta di operare un’inferenza sui dati usati per capire l’effettiva presenza di Bias.
Dal punto di vista matematico, il disparate impact è il rapporto tra la:
- proporzione di osservazioni appartenenti alla classe non privilegiata che riceve un output positivo
- proporzione di osservazioni appartenenti alla classe privilegiata che riceve un output positivo
Lo standard è un valore pari a 80%, che può però variare in funzione del business di riferimento (anche qui ritorna il domain knowledge)
I 5 Pilastri della fiducia
Volendo applicare queste nozioni, il focus deve passare dal “build for performance”, non più sufficiente, al “build for trust”.
AI Fairness è solo uno degli elementi di un insieme più vasto di considerazioni da tenere a mente nell’intero ciclo di vita di un’applicazione d’intelligenza artificiale.
IBM identifica i seguenti elementi chiave:
- fairness
- robustness
- explainability (Google xAI)
- accountability
- value alignment
Robustness
Superata una prima fase di sperimentazione, durata diversi anni, è ormai chiaro che i sistemi d’intelligenza artificiale sono entrati a spada tratta nelle nostre vite.
Dobbiamo però avere sempre chiara la loro reale natura: si tratta di sistemi informatici. Quindi non sono infallibili e potrebbero essere vulnerabili ad attacchi (adversarial attacks).
Nonostante la comunità tenti di migliorare costantemente il livello di sicurezza dei software, sottolineando criticità e risolvendo le vulnerabilità, i sistemi d‘intelligenza artificiale rappresentano nuove sfide.
Per esempio, un attacco potrebbe drogare i dati di allenamento inserendo samples accuratamente progettati per compromettere la sicurezza del sistema.
Non è troppo complicato arrivare persino a rubare un modello studiando gli output generati.
Per finire, un algoritmo potrebbe essere raggirato facendo ricorso al rumore nei dati o attacchi di perturbazione che ostacolano il corretto funzionamento dell’algoritmo. (Usare una maschera che riproduce la faccia di un individuo per sbloccare l’iPhone, potremmo considerarlo un attacco di perturbazione)
Per difendere sistemi di machine learning e neural network da attacchi simili, possono essere studiate diverse contromisure:
- quantificare la vulnerabilità di una rete neurale
- testare attacchi prima del rilascio in produzione
- certificare formalmente il grado di resistenza di un sistema
Riprenderemo questo concetto studiando l’area tematica security.
Explainability
Illuminare il buio che cela l’effettivo funzionamento dei sistemi di machine learning e delle reti neurali artificiali, che in molti casi rappresenta una vera black-box.
La soluzione di Google è XAI.
Non basta.
Differenti stakeholders potrebbero richiedere spiegazioni diverse a seconda dei contesti.
Un medico potrebbe preferire esaminare dati di pazienti simili al proprio, mentre uno sviluppatore avrebbe interesse a studiare il flow dei dati nell’algoritmo.
Non è quindi possibile elaborare un unico sistema che consenta all’algoritmo di spiegare sé stesso.
In un processo di richiesta di un prestito bancario è fondamentale fornire una motivazione circa l’esito, specie se negativo caso per il quale andrebbero fornite delle linee guida per aiutare il richiedente a ottenere una futura approvazione.
Accountability
Fairness, safety, robustness e explainability sono quindi concetti chiave nel panorama della fiducia nei sistemi d’intelligenza artificiale ma non sono sufficienti.
È fondamentale sviluppare anche delle metriche per ciascun fattore così da riportare all’utente finale dei dati utili a comprenderne il funzionamento.
L’obiettivo è raggiungere la trasparenza decisionale.
Value Alignment
Abbiamo anticipato in precedenza come sia cruciale codificare in termini ingegneristici i principali valori umani.
Questo significa che i sistemi d’intelligenza artificiale devono poter distinguere decisioni ‘buone‘ e ‘cattive‘, assicurandoci che il loro output sia quello davvero desiderato.
La qualità di una decisione dovrebbe pertanto essere valutata sulla base di:
- Accuratezza
- Abilità nel soddisfare le preferenze dell’utente
- Metriche in funzione dell’impatto della decisione
AI Fairness in Applied Machine Learning
Come ben sai questo blog non si limita ad approfondire la teoria, ma sviluppa con molta attenzione anche l’aspetto pratico (o perlomeno prova a farlo).
Con il cuore da programmatore e la mente da imprenditore, ho ricercato per te soluzioni concrete da mettere in atto.
Cosa ho trovato? IBM
Quella che segue è solo una rapida introduzione a una risorsa che avremo modo di toccare più da vicino prossimamente.
IBM AI Fairness 360
IBM fornisce agli addetti del settore un open source toolkit per aiutarci a esaminare, riportare e mitigare gli effetti di eventuali discriminazioni e bias nei modelli di machine learning all’interno dell’intero ciclo di vita di un’applicazione di AI.
Il toolkit contiene la bellezza di 70 fairness metrics e 10 state-of-the-art algoritmi di bias mitigation.
AI Fairness 360 Open Source Toolkit
È poi presente persino la documentazione ufficiale delle AI Fairness 360 API.
IBM mette a disposizione una live demo per approfondire ulteriormente l’argomento.
In futuro vedremo come applicare concretamente queste risorse a un progetto di machine learning e data science e capiremo l’impatto che queste considerazioni avranno sul nostro modello finale.
Aggiornamenti sul blog
Prima di chiudere, mi piacerebbe condividere con te alcuni update.
Sono più di 20 giorni che non pubblico articoli sul blog.
Avevo iniziato una challenge chiamata #100daysofwriting che ho portato avanti sviluppando articoli inerenti alle intelligenze artificiali (machine learning, data science e neural network) così come post più generici e riflessioni personali.
Terminata la sfida, volevo capire come variassero alcune metriche interrompendo la pubblicazione, e i risultati sono stati pessimi.
Si ritorna a pubblicare!
In passato, dovendo sviluppare un articolo al giorno scelsi di sacrificare la qualità. Oggi non sono più disposto ad adottare questa politica.
Da un articolo al giorno passeremo a uno ogni 2-3 giorni.
Ho quindi deciso di puntare sulla qualità, riducendo il numero di articoli mensili avendo così modo di analizzare ogni tema e concetto a un livello più profondo.
Questo post rappresenta l’inizio di una nuova tendenza che intendo portare avanti. Sei pronto a seguirmi?
Un caldo abbraccio, Andrea.