Introduzione a Vertex Explainable AI

I modelli di machine learning sono spesso "black box"; anche i loro progettisti non possono spiegare come o perché un modello ha prodotto un'inferenza specifica. Vertex Explainable AI offre spiegazioni basate su caratteristiche ed esempi per comprendere meglio le decisioni prese dai modelli.

Conoscere il comportamento di un modello e il modo in cui il set di dati di addestramento influisce sul modello offre a chiunque crei o utilizzi il machine learning nuove capacità per migliorare i modelli, creare fiducia nelle loro inferenze e capire quando e perché le cose vanno male.

Le spiegazioni basate su esempi

Nel caso delle spiegazioni basate su esempi, Agent Platform utilizza la ricerca del vicino più prossimo per restituire un elenco degli esempi (di solito dal set di addestramento) più simili all'input. Poiché in genere ci aspettiamo che input simili producano inferenze simili, possiamo utilizzare queste spiegazioni per esplorare e spiegare il comportamento del nostro modello.

Le spiegazioni basate su esempi possono essere utili in diversi scenari:

  • Migliora i dati o il modello: uno dei casi d'uso principali delle spiegazioni basate su esempi è aiutarti a capire perché il modello ha commesso determinati errori nelle sue inferenze e a utilizzare questi insight per migliorare i dati o il modello. Per farlo, seleziona i dati di test che ti interessano. Questa scelta può essere basata sulle esigenze aziendali o su euristiche come i dati in cui il modello ha commesso gli errori più gravi.

    Ad esempio, supponiamo di avere un modello che classifica le immagini come uccelli o aerei e che classifica in modo errato l'uccello seguente come aereo con un'alta probabilità. Utilizza le spiegazioni basate su esempi per recuperare immagini simili dal set di addestramento e capire cosa sta succedendo.

    Spiegazione basata su esempi che mostra un'immagine classificata in modo errato di un uccello in
silhouette e immagini simili di aerei in silhouette dai dati di
addestramento.

    Poiché tutte le spiegazioni sono silhouette scure della classe degli aerei, è un segnale per ottenere altre silhouette di uccelli.

    Tuttavia, se le spiegazioni provenissero principalmente dalla classe degli uccelli, sarebbe un segnale che il nostro modello non è in grado di apprendere le relazioni anche quando i dati sono ricchi e dovremmo prendere in considerazione l'aumento della complessità del modello (ad esempio, aggiungendo altri livelli).

  • Interpreta i nuovi dati: supponiamo, per il momento, che il modello sia stato addestrato per classificare uccelli e aerei, ma nel mondo reale il modello incontra anche immagini di aquiloni, droni ed elicotteri. Se il set di dati del vicino più prossimo include alcune immagini etichettate di aquiloni, droni ed elicotteri, puoi utilizzare le spiegazioni basate su esempi per classificare le nuove immagini applicando l'etichetta più frequente dei vicini più prossimi. Ciò è possibile perché ci aspettiamo che la rappresentazione latente degli aquiloni sia diversa da quella degli uccelli o degli aerei e più simile agli aquiloni etichettati nel set di dati del vicino più prossimo.

  • Rileva le anomalie: intuitivamente, se un'istanza è lontana da tutti i dati nel set di addestramento, è probabile che sia un outlier. È noto che le reti neurali sono troppo sicure dei loro errori, mascherandoli. Il monitoraggio dei modelli utilizzando le spiegazioni basate su esempi aiuta a identificare gli outlier più gravi.

  • Apprendimento attivo: le spiegazioni basate su esempi possono aiutarti a identificare le istanze che potrebbero trarre vantaggio dall'etichettatura umana. Ciò è particolarmente utile se l'etichettatura è lenta o costosa, in quanto garantisce di ottenere il set di dati più ricco possibile da risorse di etichettatura limitate.

    Ad esempio, supponiamo di avere un modello che classifica un paziente medico come affetto da raffreddore o influenza. Se un paziente viene classificato come affetto da influenza e tutte le sue spiegazioni basate su esempi provengono dalla classe dell'influenza, il medico può essere più sicuro dell'inferenza del modello senza dover esaminare più da vicino. Tuttavia, se alcune delle spiegazioni provengono dalla classe dell'influenza e altre dalla classe del raffreddore, sarebbe utile ottenere il parere di un medico. In questo modo, si otterrà un set di dati in cui le istanze difficili hanno più etichette, il che semplifica l'apprendimento di relazioni complesse per i modelli downstream.

Per creare un modello che supporti le spiegazioni basate su esempi, consulta Configurare le spiegazionibasate su esempi.

Tipi di modelli supportati

È supportato qualsiasi modello TensorFlow che possa fornire un incorporamento (rappresentazione latente) degli input. I modelli basati su alberi, come gli alberi decisionali, non sono supportati. I modelli di altri framework, come PyTorch o XGBoost, non sono ancora supportati.

Per le reti neurali profonde, in genere si presuppone che i livelli superiori (più vicini al livello di output) abbiano appreso qualcosa di "significativo" e, pertanto, il livello penultimo viene spesso scelto per gli incorporamenti. Prova alcuni livelli diversi, esamina gli esempi che stai ricevendo e scegli uno in base a misure quantitative (corrispondenza di classe) o qualitative (aspetto sensato).

Per una dimostrazione su come estrarre gli incorporamenti da un modello TensorFlow e eseguire la ricerca del vicino più prossimo, consulta il notebook di spiegazione basata su esempi.

Spiegazioni basate sulle caratteristiche

Vertex Explainable AI integra le attribuzioni delle caratteristiche in Agent Platform. Questa sezione fornisce una breve panoramica concettuale dei metodi di attribuzione delle caratteristiche disponibili con Agent Platform.

Le attribuzioni delle caratteristiche indicano in che misura ogni caratteristica del modello ha contribuito alle inferenze per ogni istanza specificata. Quando richiedi le inferenze, ricevi i valori appropriati per il tuo modello. Quando richiedi le spiegazioni, ricevi le inferenze insieme alle informazioni sull'attribuzione delle caratteristiche.

Le attribuzioni delle caratteristiche funzionano sui dati tabulari e includono funzionalità di visualizzazione integrate per i dati immagine. Considera i seguenti esempi:

  • Una rete neurale profonda viene addestrata per prevedere la durata di una corsa in bicicletta, in base ai dati meteorologici e ai dati precedenti di bike sharing. Se richiedi solo le inferenze da questo modello, ricevi le durate previste delle corse in bicicletta in numero di minuti. Se richiedi spiegazioni, ricevi la durata prevista della corsa in bicicletta, insieme a un punteggio di attribuzione per ogni caratteristica nella richiesta di spiegazioni. I punteggi di attribuzione mostrano in che misura la caratteristica ha influito sulla variazione del valore di inferenza, rispetto al valore di base specificato. Scegli una baseline significativa che abbia senso per il tuo modello, in questo caso la durata mediana della corsa in bicicletta. Puoi tracciare i punteggi di attribuzione delle caratteristiche per vedere quali caratteristiche hanno contribuito maggiormente all'inferenza risultante:

    Un grafico dell'attribuzione delle caratteristiche per una durata prevista del giro in bicicletta

  • Un modello di classificazione delle immagini viene addestrato per prevedere se una determinata immagine contiene un cane o un gatto. Se richiedi le inferenze da questo modello su un nuovo set di immagini, ricevi un'inferenza per ogni immagine ("cane" o "gatto"). Se richiedi le spiegazioni, ricevi la classe prevista insieme a un overlay per l'immagine, che mostra i pixel dell'immagine che hanno contribuito maggiormente all'inferenza risultante:

    Una foto di un gatto con l'overlay di attribuzione delle funzionalità
    Una foto di un gatto con overlay di attribuzione delle caratteristiche
    Foto di un cane con overlay di attribuzione della funzionalità
    Una foto di un cane con overlay di attribuzione delle caratteristiche
  • Un modello di classificazione delle immagini viene addestrato per prevedere la specie di un fiore nell'immagine. Se richiedi le inferenze da questo modello su un nuovo set di immagini, ricevi un'inferenza per ogni immagine ("margherita" o "tarassaco"). Se richiedi le spiegazioni, ricevi la classe prevista insieme a un overlay per l'immagine, che mostra le aree dell'immagine che hanno contribuito maggiormente all'inferenza risultante:

    Una foto di una margherita con l'overlay dell'attribuzione delle caratteristiche
    Una foto di una margherita con overlay di attribuzione delle caratteristiche

Tipi di modelli supportati

L'attribuzione delle caratteristiche è supportata per tutti i tipi di modelli (sia AutoML che addestrati personalizzati), framework (TensorFlow, scikit, XGBoost), modelli BigQuery ML e modalità (immagini, testo, tabulari).

Per utilizzare l'attribuzione delle caratteristiche, configura il modello per l'attribuzione delle caratteristiche quando carichi o registri il modello nel registro dei modelli di Agent Platform.

Inoltre, per i seguenti tipi di modelli AutoML, l'attribuzione delle caratteristiche è integrata nella Google Cloud console:

  • Modelli di immagini AutoML (solo modelli di classificazione)
  • Modelli tabulari AutoML (solo modelli di classificazione e regressione)

Per i tipi di modelli AutoML integrati, puoi attivare l'attribuzione delle caratteristiche nella Google Cloud console durante l'addestramento e visualizzare l'importanza delle caratteristiche del modello per il modello nel suo complesso e l'importanza delle caratteristiche locali per le inferenze online e in batch.

Per i tipi di modelli AutoML non integrati, puoi comunque attivare l'attribuzione delle caratteristiche esportando gli artefatti del modello e configurando l'attribuzione delle caratteristiche quando carichi gli artefatti del modello nel registro dei modelli di Agent Platform.

Vantaggi

Se esamini istanze specifiche e aggreghi anche le attribuzioni delle caratteristiche nel set di dati di addestramento, puoi ottenere insight più approfonditi sul funzionamento del modello. Considera i seguenti vantaggi:

  • Modelli di debug: le attribuzioni delle caratteristiche possono aiutarti a rilevare problemi nei dati che le tecniche di valutazione dei modelli standard di solito non rilevano.

  • Ottimizzazione dei modelli: puoi identificare e rimuovere le caratteristiche meno importanti, il che può portare a modelli più efficienti.

Metodi di attribuzione delle caratteristiche

Ogni metodo di attribuzione delle caratteristiche si basa sui valori di Shapley , un algoritmo di teoria dei giochi cooperativi che assegna il credito a ogni giocatore in una partita per un determinato risultato. Applicato ai modelli di machine learning, ciò significa che ogni caratteristica del modello viene trattata come un "giocatore" nella partita. Vertex Explainable AI assegna un credito proporzionale a ogni caratteristica per il risultato di un'inferenza specifica.

Metodo del valore di Shapley campionato

Il metodo del valore di Shapley campionato fornisce un'approssimazione di campionamento dei valori di Shapley esatti. I modelli tabulari AutoML utilizzano il metodo del valore di Shapley campionato per l'importanza delle caratteristiche. Il valore di Shapley campionato funziona bene per questi modelli, che sono meta-ensemble di alberi e reti neurali.

Per informazioni dettagliate sul funzionamento del metodo del valore di Shapley campionato, leggi l' articolo Bounding the Estimation Error of Sampling-based Shapley Value Approximation.

Metodo dei gradienti integrati

Nel metodo dei gradienti integrati, il gradiente dell'output di inferenza viene calcolato rispetto alle caratteristiche dell'input, lungo un percorso integrale.

  1. I gradienti vengono calcolati a intervalli diversi di un parametro di scalabilità. La dimensione di ogni intervallo viene determinata utilizzando la regola di quadratura gaussiana. (Per i dati immagine, immagina questo parametro di scalabilità come un "cursore" che scala tutti i pixel dell'immagine in nero.)
  2. I gradienti vengono integrati come segue:
    1. L'integrale viene approssimato utilizzando una media ponderata.
    2. Viene calcolato il prodotto elemento per elemento dei gradienti medi e dell'input originale.

Per una spiegazione intuitiva di questo processo applicato alle immagini, consulta il post del blog, "Attributing a deep network's inference to its input features". Gli autori dell'articolo originale sui gradienti integrati (Axiomatic Attribution for Deep Networks) mostrano nel post del blog precedente l'aspetto delle immagini in ogni passaggio del processo.

Metodo XRAI

Il metodo XRAI combina il metodo dei gradienti integrati con passaggi aggiuntivi per determinare quali regioni dell'immagine contribuiscono maggiormente a un'inferenza di classe specifica.

  1. Attribuzione a livello di pixel: XRAI esegue l'attribuzione a livello di pixel per l'immagine di input. In questo passaggio, XRAI utilizza il metodo dei gradienti integrati con una base nera e una base bianca.
  2. Sovrasegmentazione: indipendentemente dall'attribuzione a livello di pixel, XRAI sovrasegmenta l'immagine per creare un patchwork di piccole regioni. XRAI utilizza il metodo basato su grafi di Felzenswalb per creare i segmenti di immagine.
  3. Selezione della regione: XRAI aggrega l'attribuzione a livello di pixel all'interno di ogni segmento per determinarne la densità di attribuzione. Utilizzando questi valori, XRAI classifica ogni segmento e poi li ordina dal più positivo al meno positivo. In questo modo, vengono determinate le aree dell'immagine più salienti o che contribuiscono maggiormente a un'inferenza di classe specifica.

Immagini che mostrano i passaggi dell'algoritmo XRAI

Confronta i metodi di attribuzione delle caratteristiche

Vertex Explainable AI offre tre metodi da utilizzare per le attribuzioni delle caratteristiche: valore di Shapley campionato, gradienti integrati e XRAI.

Metodo Spiegazione di base Tipi di modelli consigliati Esempi di casi d'uso Risorse Model di Agent Platform compatibili
Valore di Shapley campionato Assegna il credito per il risultato a ciascuna caratteristica e considera diverse permutazioni di tali caratteristiche. Questo metodo fornisce un'approssimazione di campionamento dei valori di Shapley esatti. Modelli non differenziabili, come gli ensemble di alberi e reti neurali
  • Classificazione e regressione su dati tabulari
  • Qualsiasi modello addestrato personalizzato (in esecuzione in qualsiasi container di inferenza)
  • Modelli tabulari AutoML
Gradienti integrati Un metodo basato sui gradienti per calcolare in modo efficiente le attribuzioni delle caratteristiche con le stesse proprietà assiomatiche del valore di Shapley. Modelli differenziabili, come le reti neurali. Consigliato soprattutto per i modelli con spazi di caratteristiche di grandi dimensioni.
Consigliato per le immagini a basso contrasto, come quelle a raggi X.
  • Classificazione e regressione su dati tabulari
  • Classificazione dei dati immagine
XRAI (eXplanation with Ranked Area Integrals) Basato sul metodo dei gradienti integrati, XRAI valuta le regioni sovrapposte regioni dell'immagine per creare una mappa di salienza, che evidenzia le regioni pertinenti regioni dell'immagine anziché i pixel. Modelli che accettano input immagine. Consigliato soprattutto per le immagini naturali, ovvero qualsiasi scena del mondo reale che contenga più oggetti.
  • Classificazione dei dati immagine

Modelli differenziabili e non differenziabili

Nei modelli differenziabili, puoi calcolare la derivata di tutte le operazioni nel grafico TensorFlow. Questa proprietà consente di eseguire la retropropagazione in questi modelli. Ad esempio, le reti neurali sono differenziabili. Per ottenere le attribuzioni delle caratteristiche per i modelli differenziabili, utilizza il metodo dei gradienti integrati.

Il metodo dei gradienti integrati non funziona per i modelli non differenziabili. Scopri di più sulla codifica degli input non differenziabili per utilizzare il metodo dei gradienti integrati.

I modelli non differenziabili includono operazioni non differenziabili nel grafico TensorFlow, come le operazioni che eseguono attività di decodifica e arrotondamento. Ad esempio, un modello creato come ensemble di alberi e reti neurali non è differenziabile. Per ottenere le attribuzioni delle caratteristiche per i modelli non differenziabili, utilizza il metodo del valore di Shapley campionato. Il valore di Shapley campionato funziona anche sui modelli differenziabili, ma in questo caso è più costoso dal punto di vista computazionale del necessario.

Limitazioni concettuali

Tieni presenti le seguenti limitazioni delle attribuzioni delle caratteristiche:

  • Le attribuzioni delle caratteristiche, inclusa l'importanza delle caratteristiche locali per AutoML, sono specifiche per le singole inferenze. L'esame delle attribuzioni delle caratteristiche per una singola inferenza può fornire buoni insight, ma l'insight potrebbe non essere generalizzabile all'intera classe per quella singola istanza o all'intero modello.

    Per ottenere insight più generalizzabili per i modelli AutoML, consulta l'importanza delle caratteristiche del modello. Per ottenere insight più generalizzabili per altri modelli, aggrega le attribuzioni su sottoinsiemi del set di dati o sull'intero set di dati.

  • Sebbene le attribuzioni delle caratteristiche possano aiutarti a eseguire il debug dei modelli, non indicano sempre chiaramente se un problema deriva dal modello o dai dati su cui viene addestrato il modello. Utilizza il tuo miglior giudizio e diagnostica i problemi comuni relativi ai dati per restringere lo spazio delle potenziali cause.

  • Le attribuzioni delle caratteristiche sono soggette ad attacchi avversari simili alle inferenze in modelli complessi.

Per ulteriori informazioni sulle limitazioni, consulta l'elenco delle limitazioni di alto livello.

Riferimenti

Per l'attribuzione delle caratteristiche, le implementazioni del valore di Shapley campionato, dei gradienti integrati e di XRAI si basano rispettivamente sui seguenti riferimenti:

Notebooks

Per iniziare a utilizzare Vertex Explainable AI, utilizza questi notebook:

Notebook Metodo di spiegabilità Framework ML Modalità Attività
Link GitHub spiegazioni basate su esempi TensorFlow immagine Addestra un modello di classificazione che prevede la classe dell'immagine di input fornita e ottieni spiegazioni online
Link GitHub basato su caratteristiche AutoML tabulare Addestra un modello di classificazione binaria che prevede se un cliente di una banca ha acquistato un deposito a termine e ottieni spiegazioni in batch
Link GitHub basato su caratteristiche AutoML tabulare Addestra un modello di classificazione che prevede il tipo di specie di fiori di Iris e ottieni spiegazioni online
Link GitHub basato su caratteristiche (valore di Shapley campionato) scikit-learn tabulare Addestra un modello di regressione lineare che prevede le tariffe dei taxi e ottieni spiegazioni online
Link GitHub basato su caratteristiche (gradienti integrati) TensorFlow immagine Addestra un modello di classificazione che prevede la classe dell'immagine di input fornita e ottieni spiegazioni in batch
Link GitHub basato su caratteristiche (gradienti integrati) TensorFlow immagine Addestra un modello di classificazione che prevede la classe dell'immagine di input fornita e ottieni spiegazioni online
Link GitHub basato su caratteristiche (gradienti integrati) TensorFlow tabulare Addestra un modello di regressione che prevede il prezzo mediano di una casa e ottieni spiegazioni in batch
Link GitHub basato su caratteristiche (gradienti integrati) TensorFlow tabulare Addestra un modello di regressione che prevede il prezzo mediano di una casa e ottieni spiegazioni online
Link GitHub basato su caratteristiche (valore di Shapley campionato) TensorFlow testo Addestra un modello LSTM che classifica le recensioni dei film come positive o negative utilizzando il testo della recensione e ottieni spiegazioni online

Risorse didattiche

Le seguenti risorse forniscono ulteriore materiale didattico utile:

Passaggi successivi