GAMMA FACET: un nuovo approccio per spiegazioni universali di Modelli di machine learning

(Konstantin Hemker)

Autori: Jan Ittner, Konstantin Hemker & Malo Grisard

I rapidi progressi nelle tecnologie di intelligenza artificiale (AI) ci forniscono un set di strumenti in evoluzione per analizzare anche i problemi ei processi aziendali più complessi del mondo reale. Gli algoritmi di apprendimento automatico allavanguardia consentono ai responsabili delle decisioni di prevedere con precisione i risultati critici per lazienda come costi, velocità, qualità o rendimento. Ma il più delle volte, il vero valore aziendale dellIA non risiede semplicemente nel prevedere i risultati (quali clienti probabilmente annulleranno il contratto?), Ma nello spiegare e ottimizzare questi risultati (cosa dobbiamo fare per fidelizzare i clienti di alto valore?).

Inoltre, la disponibilità di un manager ad accettare luso del machine learning per prendere spesso decisioni quotidiane dipende dalla sua fiducia nellalgoritmo, che, a sua volta, richiede una certa comprensione di come un modello di intelligenza artificiale effettua previsioni e decisioni. La necessità di spiegare i modelli di IA diventerà ancora più importante man mano che le aziende svilupperanno una maggiore consapevolezza dell IA etica e cercheranno di progettare modelli di IA capaci di prendere decisioni imparziali, sicure e responsabili.

Usare la teoria dei giochi cooperativi per spiegare i contributi delle caratteristiche

LIA spiegabile dalluomo ha visto enormi progressi negli ultimi anni, specialmente con larrivo di Shapley Additive Explanations (SHAP), una teoria unificante e un algoritmo che applica la teoria del gioco cooperativo per spiegare le singole previsioni di un modello di apprendimento automatico. Ciò che rende SHAP così attraente è che, nonostante le sue basi matematiche avanzate, i risultati sono intuitivi anche per il pubblico generale.

SHAP quantifica i contributi di tutte le variabili di un modello a qualsiasi dato risultato previsto. Ad esempio, potremmo utilizzare un modello per prevedere il rischio di un paziente di sviluppare il diabete, in base a variabili quali peso, età e abitudini di esercizio. Il modello potrebbe dirci che il rischio è del 67%. SHAP andrà oltre, dicendoci, ad esempio, che letà della paziente aumenta il rischio di diabete del 5%, mentre il suo peso lo diminuisce del 2%.

Il ruolo chiarificatore dellispezione del modello e degli esperimenti virtuali

SHAP offre un mezzo molto utile per spiegare le singole previsioni. Fino a poco tempo, tuttavia, cerano solo mezzi limitati per spiegare il modello nel suo insieme – per spiegare in generale come le variabili agiscono e interagiscono per elaborare previsioni. GAMMA FACET presenta un nuovo approccio olistico per spiegare i modelli di apprendimento automatico. Lo fa da due angolazioni: in primo luogo, utilizza un algoritmo di ispezione del modello di nuova concezione per spiegare come le variabili di un modello predittivo collaborano per prevedere i risultati identificando modelli attraverso le spiegazioni di molte previsioni individuali. Ad esempio, GAMMA FACET potrebbe scoprire che il peso e la massa corporea devono essere considerati in combinazione per valutare il rischio di diabete, mentre lindice di massa corporea e il rapporto altezza / vita potrebbero essere intercambiabili. In secondo luogo, applica un approccio di simulazione per determinare in “esperimenti virtuali” in che modo le modifiche sistematiche ai fattori chiave influiscono sui risultati previsti, ad esempio il modo in cui un aumento delletà influisce sul rischio di diabete in una popolazione di pazienti.

Case Study: Preventing Breakdowns in Water Drilling

Il modo migliore per esplorare questi concetti è attraverso un esempio del mondo reale . La perforazione di un pozzo dacqua è molto pericolosa e costosa. I costi di tale perforazione dipendono dal tempo necessario per finalizzare un pozzo per iniziare a pompare acqua da esso. Per ridurre tali costi, i perforatori sono generalmente incentivati ​​a perforare a un ritmo più veloce, misurato come Tasso di penetrazione (POR). A seconda delle caratteristiche del suolo, le tariffe giornaliere possono variare da $ 30.000 a $ 250.000. Ma cè un compromesso: perforare più velocemente aumenta il rischio di incidenti, come il collasso di una formazione o uninfiltrazione di gas. Costruiremo quindi un modello di apprendimento automatico per comprendere limpatto della velocità di perforazione sul rischio di incidente, nel contesto di altri fattori di rischio.

Per motivi di chiarezza, per questo esempio utilizziamo un set di dati semplificato . Il set di dati contiene 500 osservazioni, con ciascuna riga che rappresenta unoperazione di perforazione del passato, insieme a un indicatore binario che indica se durante loperazione si è verificato o meno un incidente di perforazione.

In base alle condizioni operative presenti e passate, è possibile utilizzare un algoritmo predittivo per avvisare loperatore di perforazione di un alto rischio di incidenti. Gli operatori avrebbero quindi la possibilità di regolare i parametri di perforazione. Tuttavia, sapere quando agire spesso non è sufficiente.Loperatore deve anche capire il perché si verificano incidenti e quali sono le condizioni ottimali di perforazione che bilanciano i costi di perforazione con il costo di un potenziale incidente. GAMMA FACET può aiutarti a fornire queste informazioni utili.

scikit-learn e la pipeline di modelli

Per formare la spina dorsale del nostro modello di apprendimento automatico spiegabile, dobbiamo prima costruire una pipeline di modelli che ci consenta di risalire a tutti gli output del modello agli input di dati iniziali, attraverso tutte le fasi di trasformazione e addestramento.

GAMMA FACET è progettato attorno a scikit-learn, lo standard industriale de facto per lapprendimento automatico in Python. scikit-learn offre unampia gamma di algoritmi di regressione e classificazione. Offre inoltre un approccio universale alla creazione di pipeline di machine learning, combinando la pre-elaborazione dei dati con ladattamento del modello effettivo in un flusso di lavoro integrato.

FACET migliora scikit-learn in tre modi essenziali :

  1. Tracciabilità delle funzionalità end-to-end : sebbene scikit-learn nativo sia costruito intorno a numpy e produce tutti gli output come array numerici, FACET fornisce versioni avanzate di oltre 150 trasformatori scikit-learn, regressori e classificatori che forniscono tutti gli output come frame di dati panda. Inoltre, FACET include attributi per mappare i nomi delle feature derivate alle feature da cui hanno avuto origine. Questa mappatura è essenziale se le funzionalità devono essere denominate per nome più a valle nella pipeline di machine learning.
  2. Pipelining avanzato : FACET introduce classi di pipeline in due fasi aggiuntive che contengono una fase di pre-elaborazione (che può essere essa stessa una pipeline) e una fase di apprendimento. La nostra esperienza è che questa aggiunta apparentemente minore porta a un codice di pipelining molto più conciso e leggibile.
  3. Validazione avanzata : FACET introduce validatori incrociati per diverse varianti di bootstrap, una tecnica statistica particolarmente rilevante nel contesto delle capacità di simulazione di FACET.

Facendo riferimento allesempio di perforazione, ecco come potrebbe costruire una pipeline utilizzando il supporto di FACET per la tracciabilità delle funzionalità:

Come puoi vedere in questo snippet di codice, la pipeline sopra sembra quasi esattamente la stessa di una pipeline costruita usando pure scikit-learn . Si noti, tuttavia, che importiamo tutte le pipeline, i trasformatori e gli stimatori dal pacchetto sklearndf di FACET e che i nomi delle classi scikit-learn familiari hanno tutti Suffisso “DF”. Nota anche lo speciale ClassifierPipelineDF, una delle pipeline migliorate di FACET che comprende un passaggio di pre-elaborazione opzionale, insieme a un passaggio successivo dello studente garantito come classificatore. Come puoi vedere nelloutput, il risultato della pre-elaborazione è un data frame che conserva tutti i nomi delle caratteristiche.

Successivamente, vogliamo regolare gli iperparametri del nostro modello utilizzando . LeanerRanker funziona in modo simile al motore di ricerca sulla griglia di scikit-learn , ma rende molto più facile consentire a diversi tipi di modelli di competere luno contro laltro, invece di ottimizzare lhyper- parametri di un singolo modello:

Spiegazioni del modello: quali sono le cause degli incidenti?

Ora disponiamo di un modello ottimizzato e addestrato che prevede il rischio di incidenti delle nostre operazioni di perforazione. Ma vogliamo essere più proattivi rispetto alla semplice implementazione del modello e alla risposta ad hoc ai rischi previsti. Invece, vogliamo sapere cosa ha appreso il modello sul perché e quando si verificano gli incidenti. Vogliamo che il modello ci aiuti a capire come possiamo cambiare sistematicamente il modo in cui utilizziamo i nostri macchinari di perforazione per ridurre il rischio di incidenti.

FACET si avvicina alla spiegazione del modello come una combinazione di due metodi:

  1. Spiegazione delle interazioni delle funzionalità globali : questo metodo ci dice ciò che il modello ha imparato su come le funzionalità contribuiscono sia individualmente che collettivamente ai risultati. FACET introduce un nuovo algoritmo che, per ogni coppia di funzionalità, quantifica sinergia, ridondanza e indipendenza (vedi sotto per maggiori dettagli). Questo algoritmo si basa sulla scomposizione vettoriale SHAP , un framework matematico che abbiamo sviluppato per le spiegazioni del modello globale e che descriveremo ulteriormente in una prossima pubblicazione.
  2. Simulazioni basate su modelli : questo metodo ci consente di identificare in che modo le modifiche sistematiche delle funzionalità aiuteranno a ottenere un risultato desiderato, in questo caso per ridurre al minimo il rischio di una rottura del trapano. Otteniamo questo risultato creando campioni sintetici per un intervallo di valori e quindi utilizzando il modello per valutare i cambiamenti nel rischio previsto. Come vedrai di seguito, la comprensione delle interazioni delle caratteristiche globali (cioè il metodo 1) è un passaggio essenziale per garantire che le nostre simulazioni siano valide in condizioni del mondo reale.

Quando utilizzato nel nostro esempio di perforazione , La classe LearnerInspector di FACET fornisce una panoramica delle interazioni tra le funzionalità calcolando sinergia e ridondanza a coppie:

Ridondanza e sinergia matrice

I risultati sono due matrici che, per ogni coppia di caratteristiche, ci dicono in percentuale il grado di sinergia e ridondanza tra queste due funzionalità.

Synergy

Synergy è il grado in cui il modello combina le informazioni di una funzionalità con unaltra per prevedere lobiettivo. Ad esempio, supponiamo di prevedere la salute cardiovascolare utilizzando letà e il sesso e che il modello adattato includa una complessa interazione tra di loro. Ciò significa che queste due caratteristiche sono sinergiche per prevedere la salute cardiovascolare. Inoltre, entrambe le funzionalità sono importanti per il modello e la rimozione di una di esse avrebbe un impatto significativo sulle prestazioni. Supponiamo che letà sia una caratteristica più importante del sesso e quindi letà contribuisce maggiormente alla previsione combinata rispetto al sesso. Questo contributo asimmetrico significa che la sinergia per (età, sesso) è inferiore alla sinergia per (sesso, età). Per pensarci in un altro modo, immagina che la previsione sia una coordinata che stai cercando di raggiungere. Dal punto di partenza, letà ti avvicina molto a questo punto rispetto al sesso, tuttavia, hai bisogno di entrambi per arrivarci. La sinergia riflette il fatto che il genere riceve più aiuto dalletà (maggiore sinergia dal punto di vista del genere) rispetto alletà dal genere (minore sinergia dal punto di vista delletà) per raggiungere la previsione.

Questo porta a un punto importante: la sinergia è una proprietà naturalmente asimmetrica delle informazioni globali due caratteristiche interagenti contribuiscono alle previsioni del modello. La sinergia è espressa in percentuale che va dallo 0% (piena autonomia) al 100% (piena sinergia). Tieni presente che le caratteristiche sinergiche possono essere completamente non correlate e possono essere difficili da individuare attraverso una regolare analisi esplorativa.

Per interpretare la matrice della sinergia, la prima caratteristica di una coppia è la riga (“Prospettiva da”) e la seconda caratteristica la colonna. Nel nostro esempio di perforazione, FACET riporta che “dal punto di vista” della velocità di rotazione, il 67% delle informazioni viene combinato con il peso sulla punta per prevedere il guasto. Ciò sembra ragionevole nel contesto, poiché la perforazione con un peso della punta elevato e unelevata rotazione può avere un impatto sproporzionatamente grande sullusura dellattrezzatura e quindi aumentare drasticamente il rischio di incidente. È comprensibile che la sinergia sia elevata anche dal punto di vista del peso sulla punta (61%). Questo ci dice che dovremmo considerare la velocità di rotazione e il peso sulla punta insieme per capire il loro contributo al rischio di incidente.

Ridondanza

La ridondanza è il grado in cui una caratteristica in un modello duplica le informazioni di una seconda caratteristica per prevedere lobiettivo. Ad esempio, supponiamo di avere le dimensioni della casa e il numero di camere da letto per prevedere il prezzo della casa. Queste caratteristiche catturano informazioni simili in quanto più camere da letto sono più grandi la casa e probabilmente un prezzo medio più alto. La ridondanza per (numero di camere da letto, dimensioni della casa) sarà maggiore della ridondanza per (dimensione della casa, numero di camere da letto). Questo perché la dimensione della casa “sa” più del numero di camere da letto per prevedere il prezzo della casa rispetto al contrario. Quindi, cè una maggiore ridondanza dal punto di vista del numero di camere da letto. Un altro modo di pensarci è che la rimozione delle dimensioni della casa sarà più dannosa per le prestazioni del modello rispetto alla rimozione del numero di camere da letto, poiché le dimensioni della casa possono compensare meglio lassenza di numero di camere da letto. Ciò implica anche che la dimensione della casa sarebbe una caratteristica più importante del numero di camere da letto nel modello.

Il punto importante qui è che, come la sinergia, la ridondanza è una proprietà naturalmente asimmetrica della funzione delle informazioni globali le coppie hanno per prevedere un risultato. La ridondanza è espressa come una percentuale che va dallo 0% (piena unicità) al 100% (piena ridondanza). La ridondanza non può essere individuata necessariamente nellanalisi esplorativa se due caratteristiche sono ridondanti ma non correlate linearmente.

Come per la sinergia, la riga della matrice è la caratteristica “prospettiva da” nella coppia di funzioni riga-colonna.Per il nostro esempio di perforazione, osserviamo due coppie di feature altamente ridondanti:

  • La prima coppia di feature ridondanti è ROP e IROP. La ridondanza è simile dal punto di vista di entrambe le caratteristiche (75%) perché una è inversa dellaltra e quindi possono sostituirsi a vicenda nel modello per il rischio di incidente. Questo è un buon esempio della capacità di FACET di rilevare le ridondanze tra le caratteristiche anche quando non sono correlate linearmente.
  • La seconda coppia di caratteristiche ridondanti è la profondità di operazione e il diametro del foro. Dal punto di vista del diametro del foro, il 53% delle informazioni viene duplicato con la profondità delloperazione per prevedere il guasto. Intuitivamente, possiamo capire perché, poiché la profondità di operazione e il diametro del foro sono altamente collegati poiché i perforatori utilizzano punte di perforazione più sottili mentre perforano più in profondità nella terra. Il motivo per cui la ridondanza per (profondità delloperazione, diametro del foro) è leggermente inferiore a (diametro del foro, profondità delloperazione) è perché la profondità delloperazione è una caratteristica leggermente più importante nel modello.

FACET può produrre un secondo tipo di diagramma che è molto utile per valutare le relazioni di sinergia o ridondanza come un dendrogramma di raggruppamento gerarchico. Si noti che questo approccio si basa su una variante simmetrica di ridondanza (o sinergia) che fornisce non solo una prospettiva semplificata ma una distanza caratteristica (1 – metrica) per il raggruppamento. Nel nostro esempio, siamo interessati al dendrogramma di ridondanza:

Dendrogramma di ridondanza delle funzionalità di Facet

Il dendrogramma di ridondanza rivela gruppi di caratteristiche ridondanti, indica il grado di ridondanza reciproca tra le caratteristiche in un cluster (le caratteristiche più a sinistra sono unite nel dendrogramma, più forte è la loro ridondanza) e, usando una scala di colori, mostra limportanza delle caratteristiche per le singole caratteristiche e i gruppi di caratteristiche.

Le nostre due coppie di caratteristiche ridondanti sono chiaramente riconoscibili nel dendrogramma, inclusa la loro importanza combinata. Il tasso di penetrazione (ROP) è altamente ridondante con la sua caratteristica inversa (IROP) (ridondanza> 80%) e limportanza combinata di entrambe le caratteristiche è del 36%. Dato che vogliamo simulare ROP, rimuoveremo IROP per assicurarci che la caratteristica che simuliamo sia un contributore unico al risultato (forniremo una spiegazione più dettagliata nella prossima sezione).

Cè unosservazione interessante quando generiamo un nuovo dendrogramma di ridondanza dopo aver rimosso IROP e riqualificato il modello: limportanza della caratteristica del ROP è salita al 35%, indicando che il ROP ha assunto il ruolo dellex cluster ROP / IROP nella spiegazione del ROP contributi correlati al rischio di incidente.

Dendrogramma di collegamento di ridondanza dopo leliminazione delle funzionalità

Simulazione dellaumento della funzione

Dopo aver ispezionato il modello, siamo arrivati ​​a una buona comprensione di come il modello effettua una previsione e di come i predittori interagiscono tra loro.

Spesso queste informazioni portano direttamente a una domanda “what if”: H Come possiamo cambiare sistematicamente una variabile influenzabile per migliorare il risultato? Nel nostro esempio, vogliamo capire come le variazioni del tasso di penetrazione influiscono sul rischio di incidente. Da un punto di vista economico, gli operatori di perforazione cercheranno di perforare il più velocemente possibile mantenendo la sicurezza e riducendo i guasti. Domande simili si applicano ad altri contesti aziendali, in cui lobiettivo è ridurre i costi, massimizzare il rendimento, fidelizzare i clienti o, addirittura, ottimizzare qualsiasi risultato aziendale sulla base dei dati.

Lapproccio di simulazione di FACET individua una caratteristica, quindi viene eseguito una serie di “esperimenti virtuali” per un intervallo di valori, fingendo per ogni esperimento che lelemento simulato abbia sempre assunto il valore dato per ogni osservazione storica.

Con questo approccio è fondamentale che lelemento che simuliamo sia non ridondante con qualsiasi altra caratteristica del modello. In questo modo si correrebbe il rischio di creare scenari irrealizzabili regolando il valore di una caratteristica ma non del suo fratello ridondante. Se, nel nostro esempio, dovessimo simulare ROP per un intervallo di valori, ma mantenessimo IROP nel modello, molto probabilmente creeremmo scenari irrealizzabili.

Una simulazione viene condotta in due fasi: Primo, decidiamo su una caratteristica da simulare e scegliamo una delle classi partitioner di FACET per dividere lintervallo di valori precedentemente osservati per quella caratteristica in partizioni . In secondo luogo, eseguiamo una simulazione per partizione, fissando ogni volta il valore dellelemento simulato al valore centrale della partizione in tutte le osservazioni.

Pertanto, nel nostro esempio, la simulazione pone la domanda: “Cosa sarebbe il mio rischio di incidente medio è stato se avessi sempre perforato con X m / s di ROP?”Il ROP viene misurato come un numero reale, quindi utilizziamo un ContinuousRangePartitioner per creare una serie di partizioni di uguale dimensione allinterno dellintervallo di valori storicamente osservato per ROP. È importante simulare solo allinterno dellintervallo di valori osservato storicamente, poiché il modello è stato addestrato su valori in quellintervallo e di solito non sarà in grado di fornire estrapolazioni fuori intervallo valide.

Passaggio 1 della simulazione – Partizionamento dei valori osservati per la funzione ROP in bucket di uguale dimensione

Utilizzo il modello migliore, identificato in precedenza da LearnerRanker, il simulatore ora determina il rischio di incidente previsto medio per ciascuna partizione. FACET supporta il bootstrap, permettendoci di ripetere ogni simulazione molte volte su variazioni del modello addestrate su diversi sottoinsiemi di dati e utilizzare la distribuzione dei risultati della simulazione per quantificare il livello di fiducia nella simulazione.

Passaggio 2 della simulazione: simulazione dei risultati per diversi valori della funzione ROP

La visualizzazione sopra mostra leffetto del ROP sul rischio di incidente, fornendo anche un senso di fiducia nella simulazione. Lasse x mostra le diverse partizioni per le quali è stata eseguita la simulazione. Le barre sotto lasse x mostrano il numero di osservazioni nel campione originale che rientrano nella partizione, indicando il supporto che abbiamo per ogni valore simulato. (Notare come lintervallo di confidenza si allarga verso i margini quando vediamo meno valori effettivamente osservati per queste partizioni.) La linea ascendente centrale rappresenta il rischio di incidente previsto mediano per ciascuna partizione, mentre le linee esterne mostrano lintervallo di confidenza del 95% di tutte le la convalida si divide dalla nostra previsione.

La simulazione conferma che la probabilità di incidente aumenta in modo significativo allaumentare del ROP. Fornisce una panoramica dei livelli di rischio di operare a un ROP più veloce. Possiamo anche vedere che ci sono state più occasioni in cui il ROP è stato utilizzato a un livello pericolosamente alto (> 30 piedi / h), portando a probabilità di incidenti superiori al 70%.

Qual è il passo successivo?

Dal punto di vista aziendale, avere le risposte a queste domande “what if” è estremamente prezioso per il processo di valutazione del rischio e trovare modi per migliorare i processi attuali. Nel nostro esempio, il viaggio non finirà qui. Sulla base dei risultati della simulazione, un passaggio successivo potrebbe essere quello di condurre unanalisi costi-benefici della perforazione con un ROP più lento o più veloce per ottenere il miglior compromesso tra il costo di perforazione e il rischio finanziario di un incidente di perforazione.

Puoi facilmente prendere GAMMA FACET per un giro. È sufficiente conda install gamma-facet -c bcg_gamma -c conda-forge e consultare il nostro repository GitHub per ulteriore documentazione ed esempi funzionanti.

Ringraziamenti

Questo pacchetto sarebbe non sarebbe stato possibile senza la disponibilità di due eccezionali pacchetti Python per lapprendimento automatico e la spiegabilità del modello:

1. scikit-learn fornisce gli studenti e i trasformatori che costituiscono le pipeline di apprendimento automatico di FACET. Inoltre, abbiamo progettato lAPI FACET in linea con il paradigma di adattamento / trasformazione / previsione di base scikit-learns per offrire ai data scientist un facile inizio con FACET.

2. Limplementazione SHAP di Scott Lundberg viene utilizzata per stimare che i vettori SHAP vengano scomposti nella sinergia vettori, ridondanza e indipendenza.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *