I modelli di machine learning sono spesso considerati "scatole nere", in cui nemmeno i loro progettisti possono spiegare come o perché un modello ha prodotto una previsione specifica. Vertex Explainable AI offre spiegazioni basate su caratteristiche e basate su esempi per comprendere meglio il processo decisionale del modello.
Sapere come si comporta un modello e come è influenzato dal set di dati di addestramento offre a chiunque crei o utilizzi l'ML nuove capacità per migliorare i modelli, acquisire fiducia nelle proprie previsioni e capire quando e perché le cose vanno storte.
Le spiegazioni basate su esempi
Nel caso delle spiegazioni basate su esempi, Vertex AI 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 generino predizioni 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 tuoi dati o il tuo modello: uno dei casi d'uso principali delle spiegazioni basate su esempi è aiutarti a capire perché il tuo modello ha commesso determinati errori nelle sue previsioni e a utilizzare queste informazioni per migliorare i tuoi dati o il tuo modello. Per farlo, seleziona innanzitutto i dati di test che ti interessano. Ciò può essere basato su esigenze aziendali o su regole di euristica, ad esempio 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 stia classificando erroneamente il seguente uccello come aereo con un'elevata affidabilità. Puoi utilizzare le spiegazioni basate su esempi per recuperare immagini simili dal set di addestramento e capire cosa sta succedendo.
Poiché tutte le spiegazioni sono silhouette scure della classe aereo, è un segnale per ottenere più silhouette di uccelli.
Tuttavia, se le spiegazioni provenivano principalmente dalla classe degli uccelli, è un segnale che il nostro modello non è in grado di apprendere le relazioni anche quando i dati sono ricchi e dobbiamo prendere in considerazione la possibilità di aumentare la complessità del modello (ad esempio aggiungendo altri livelli).
Interpreta dati nuovi: supponiamo che il tuo modello sia stato addestrato a classificare uccelli e aerei, ma che nel mondo reale il modello riesca a trovare anche immagini di aquiloni, droni ed elicotteri. Se il tuo 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 suoi vicini più prossimi. Questo è possibile perché prevediamo 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: in modo intuitivo, se un'istanza è lontana da tutti i dati del set di addestramento, è probabile che si tratti di un outlier. Le reti neurali sono note per essere troppo sicure dei propri errori, mascherandoli. Il monitoraggio dei modelli utilizzando le spiegazioni basate su esempi consente di 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. Questo è particolarmente utile se l'etichettatura è lenta o costosa, in quanto ti consente di ottenere il set di dati più completo possibile da risorse di etichettatura limitate.
Ad esempio, supponiamo di avere un modello che classifica un paziente come con raffreddore o influenza. Se un paziente è classificato come affetto dall'influenza e tutte le sue spiegazioni basate su esempi provengono dalla classe dell'influenza, il dottore può essere più sicuro della previsione del modello senza dover esaminare più da vicino. Tuttavia, se alcune delle spiegazioni appartengono alla categoria dell'influenza e altre a quella del raffreddore, vale la pena chiedere il parere di un medico. In questo modo, otterrai un set di dati in cui le istanze difficili hanno più etichette, il che consente ai modelli a valle di apprendere più facilmente relazioni complesse.
Per creare un modello che supporti le spiegazioni basate su esempi, consulta Configurare le spiegazioni basate su esempi.
Tipi di modelli supportati
È supportato qualsiasi modello TensorFlow che possa fornire un'evidenziazione (rappresentazione latente) per gli 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 presume che gli strati superiori (più vicini allo strato di output) abbiano appreso qualcosa di "significativo" e, pertanto, spesso viene scelto il penultimo livello per gli embedding. Puoi sperimentare con alcuni livelli diversi, esaminare gli esempi che ottieni e sceglierne uno in base a misure quantitative (corrispondenza alla classe) o qualitative (sembrano ragionevoli).
Per una dimostrazione su come estrarre gli incorporamenti da un modello TensorFlow ed eseguire la ricerca del vicino più prossimo, consulta il notebook di spiegazioni basate sugli esempi.
Spiegazioni basate sulle caratteristiche
Vertex Explainable AI integra le attribuzioni delle caratteristiche in Vertex AI. Questa sezione fornisce una breve panoramica concettuale dei metodi di attribuzione delle caratteristiche disponibile con Vertex AI.
Le attribuzioni delle caratteristiche indicano in che misura ciascuna caratteristica del modello ha contribuito alle previsioni per ogni istanza specifica. Quando richiedi le previsioni, ricevi i valori previsti in base al tuo modello. Quando richiedi spiegazioni, ricevi le previsioni insieme alle informazioni sull'attribuzione delle funzionalità.
Le attribuzioni delle funzionalità funzionano con i dati tabulari e includono funzionalità di visualizzazione integrate per i dati delle immagini. Considera gli esempi seguenti:
Una rete neurale profonda viene addestrata a prevedere la durata di una corsa in bicicletta, sulla base dei dati meteorologici e di quelli relativi alle corse in condivisione precedenti. Se richiedi solo le previsioni di questo modello, ottieni le durate previste delle gite in bicicletta in numero di minuti. Se richiedi spiegazioni, ottieni la durata prevista del tragitto in bicicletta, insieme a un punteggio di attribuzione per ogni caratteristica nella richiesta di spiegazioni. I punteggi di attribuzione mostrano in che misura la funzionalità ha influito sulla variazione del valore di previsione rispetto al valore di riferimento specificato. Scegli un valore di riferimento significativo e pertinente per il tuo modello, in questo caso la durata media delle gite in bicicletta. Puoi tracciare i punteggi di attribuzione delle caratteristiche per vedere quali hanno contribuito maggiormente alla previsione risultante:
Un modello di classificazione delle immagini viene addestrato per prevedere se una determinata immagine contiene un cane o un gatto. Se richiedi le previsioni di questo modello su un nuovo insieme di immagini, riceverai una previsione per ogni immagine ("cane" o "gatto"). Se richiedi spiegazioni, ottieni la classe prevista insieme a un overlay per l'immagine che mostra i pixel dell'immagine che hanno contribuito maggiormente alla previsione risultante:
Una foto di un gatto con overlay di attribuzione delle funzionalità Una foto di un cane con overlay di attribuzione delle funzionalità Un modello di classificazione delle immagini viene addestrato a prevedere la specie di un fiore nell'immagine. Se richiedi le previsioni di questo modello su un nuovo insieme di immagini, riceverai una previsione per ogni immagine ("daisy" o "dandelion"). Se richiedi spiegazioni, ottieni la classe prevista insieme a un overlay per l'immagine che mostra le aree dell'immagine che hanno contribuito maggiormente alla previsione risultante:
Una foto di una margherita con overlay di attribuzione della funzionalità
Tipi di modelli supportati
L'attribuzione delle funzionalità è supportata per tutti i tipi di modelli (sia AutoML che con addestramento personalizzato), framework (TensorFlow, scikit, XGBoost), modelli BigQuery ML e modalità (immagini, testo, tabulari, video).
Per utilizzare l'attribuzione delle funzionalità, configura il modello per l'attribuzione delle funzionalità quando lo carichi o lo registri in Vertex AI Model Registry.
Inoltre, per i seguenti tipi di modelli AutoML, l'attribuzione delle funzionalità è integrata nella console Google Cloud:
- 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 funzionalità nella console Google Cloud durante l'addestramento e visualizzare l'importanza delle funzionalità del modello per il modello nel suo complesso e l'importanza delle funzionalità locali sia per le previsioni online sia per quelle batch.
Per i tipi di modelli AutoML non integrati, puoi comunque attivare l'attribuzione delle funzionalità esportando gli elementi del modello e configurando l'attribuzione delle funzionalità quando carichi gli elementi del modello in Vertex AI Model Registry.
Vantaggi
Se esamini istanze specifiche e anche le attribuzioni delle funzionalità aggregate nel set di dati di addestramento, puoi ottenere informazioni più approfondite sul funzionamento del modello. Valuta i seguenti vantaggi:
Modelli di debug: le attribuzioni delle caratteristiche possono aiutare a rilevare i problemi nei dati che le tecniche di valutazione dei modelli standard di solito non rilevano.
Ad esempio, un modello di patologia delle immagini ha ottenuto risultati sospettamente buoni su un set di dati di test di immagini di radiografia toracica. L'attribuzione delle caratteristiche ha rivelato che l'elevata accuratezza del modello dipendeva dai segni a penna del radiologo nell'immagine. Per ulteriori dettagli su questo esempio, consulta il white paper sulle spiegazioni dell'IA.
Ottimizzazione dei modelli: puoi identificare e rimuovere le funzionalità meno importanti, il che può comportare modelli più efficienti.
Metodi di attribuzione delle funzionalità
Ogni metodo di attribuzione delle funzionalità si basa sui valori di Shapley, un algoritmo della teoria dei giochi cooperativi che assegna il merito a ciascun giocatore di una partita per un determinato risultato. Applicato ai modelli di machine learning, ciò significa che ogni funzionalità del modello viene trattata come un "giocatore" nel gioco. Vertex Explainable AI assegna un credito proporzionale a ogni caratteristica per il risultato di una determinata previsione.
Metodo del valore di Shapley campionato
Il metodo 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 funzionalità. 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 Shapley campionato, consulta il documento Bounding the Estimation Error of Sampling-based Shapley Value Approximation.
Metodo dei gradienti integrati
Nel metodo dei gradienti integrati, il gradiente dell'output della previsione viene calcolato rispetto alle caratteristiche dell'input, lungo un percorso integrale.
- I gradienti vengono calcolati a intervalli diversi di un parametro di scala. La dimensione di ogni intervallo viene determinata utilizzando la regola della quadratura Gaussiana. Per i dati delle immagini, immagina questo parametro di scala come un "cursore" che scala tutti i pixel dell'immagine in nero.
- I gradienti vengono integrati come segue:
- L'integrale viene approssimato utilizzando una media ponderata.
- 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 prediction to its input features". Gli autori del documento originale sui gradienti integrati (Axiomatic Attribution for Deep Networks) mostrano nel post del blog precedente l'aspetto delle immagini in ogni fase 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 una determinata previsione di classe.
- 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 un'immagine di riferimento nera e una bianca.
- Oversegmentazione: indipendentemente dall'attribuzione a livello di pixel, XRAI oversegmenta l'immagine per creare un patchwork di piccole regioni. XRAI utilizza il metodo basato su grafo di Felzenswalb per creare i segmenti di immagine.
- 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 assegna un ranking a ciascun segmento e poi li ordina dal più positivo al meno positivo. In questo modo, viene stabilito quali aree dell'immagine sono più importanti o contribuiscono maggiormente alla previsione di una determinata classe.
Confrontare i metodi di attribuzione delle funzionalità
Vertex Explainable AI offre tre metodi da utilizzare per le attribuzioni delle caratteristiche: Shapley campionati, gradienti integrati e XRAI.
Metodo | Spiegazione di base | Tipi di modelli consigliati | Esempi di casi d'uso | Risorse Model Vertex AI compatibili |
---|---|---|---|---|
Valore di Shapley campionato | Assegna il merito per il risultato a ogni caratteristica e considera diverse permutazioni delle caratteristiche. Questo metodo fornisce un'approssimazione di campionamento dei valori di Shapley esatti. | Modelli non differenziabili, come insiemi di alberi e reti neurali |
|
|
Gradienti integrati | Un metodo basato sui gradienti per calcolare in modo efficiente le attribuzioni delle funzionalità con le stesse proprietà assiomatiche del valore di Shapley. | Modelli differenziabili, come le reti neurali. Consigliato soprattutto per i modelli con spazi di funzionalità di grandi dimensioni. Consigliato per immagini a basso contrasto, come le radiografie. |
|
|
XRAI (eXplanation with Ranked Area Integrals) | In base al metodo dei gradienti integrati, XRAI valuta le regioni sovrapposte dell'immagine per creare una mappa di salienza, che evidenzia le regioni pertinenti dell'immagine anziché i pixel. | Modelli che accettano input di immagini. Consigliato in particolare per le immagini naturali, ovvero qualsiasi scena reale contenente più oggetti. |
|
|
Per un confronto più approfondito dei metodi di attribuzione, consulta il white paper Explanations.
Modelli differenziabili e non differenziabili
Nei modelli differenziabili, puoi calcolare la derivata di tutte le operazioni nel grafo di TensorFlow. Questa proprietà contribuisce a rendere possibile la propagazione indietro in questi modelli. Ad esempio, le reti neurali sono differenziabili. Per ottenere le attribuzioni delle funzionalità per i modelli differenziabili, utilizza il metodo con i gradienti integrati.
Il metodo dei gradienti integrati non funziona per i modelli non differenziabili. Scopri di più sulla codifica degli input non differenziabili per lavorare con il metodo dei gradienti integrati.
I modelli non differenziabili includono operazioni non differenziabili nel grafico di TensorFlow, ad esempio le operazioni che eseguono attività di decodifica e arrotondamento. Ad esempio, un modello creato come insieme di alberi e reti neurali è non differenziabile. Per ottenere le attribuzioni delle funzionalità per i modelli non differenziabili, utilizza il metodo Shapley campionato. Il valore di Shapley campionato funziona anche su modelli differenziabili, ma in questo caso è più costoso in termini di calcolo del necessario.
Limitazioni concettuali
Tieni presenti le seguenti limitazioni delle attribuzioni delle funzionalità:
Le attribuzioni delle funzionalità, inclusa l'importanza delle funzionalità locali per AutoML, sono specifiche per le singole previsioni. L'esame delle attribuzioni delle caratteristiche per una singola previsione può fornire informazioni utili, ma queste potrebbero non essere generalizzabili all'intera classe per la singola istanza o per l'intero modello.
Per ottenere informazioni più generalizzabili per i modelli AutoML, consulta l'importanza delle caratteristiche del modello. Per ottenere informazioni 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 essere utili per il debug del modello, non indicano sempre chiaramente se un problema deriva dal modello o dai dati su cui è addestrato. Usa il tuo buonsenso e diagnostica i problemi comuni relativi ai dati per restringere lo spazio delle potenziali cause.
Le attribuzioni delle caratteristiche sono soggette ad attacchi di IA avversarie simili a quelle delle predizioni nei modelli complessi.
Per ulteriori informazioni sulle limitazioni, consulta l'elenco delle limitazioni di alto livello e il white paper sulle spiegazioni dell'IA.
Riferimenti
Per l'attribuzione delle funzionalità, le implementazioni di valori di Shapley campionati, gradienti integrati e XRAI si basano rispettivamente sui seguenti riferimenti:
- Misurazione dell'errore di stima dell'approssimazione del valore Shapley basata sul campionamento
- Axiomatic Attribution for Deep Networks
- XRAI: attribuzioni migliori tramite le regioni
Scopri di più sull'implementazione di Vertex Explainable AI leggendo il white paper sull'IA con spiegazioni.
Notebooks
Per iniziare a utilizzare Vertex Explainable AI, utilizza questi notebook:
Notebook | Metodo di spiegabilità | Framework ML | Modalità | Attività |
---|---|---|---|---|
Link a GitHub | spiegazioni basate su esempi | TensorFlow | immagine | Addestrare un modello di classificazione che preveda la classe dell'immagine di input fornita e ottenere spiegazioni online |
Link a GitHub | basato su funzionalità | AutoML | tabulare | Addestrare un modello di classificazione binaria che preveda se un cliente bancario ha acquistato un deposito a termine e ottenere spiegazioni batch |
Link a GitHub | basato su funzionalità | AutoML | tabulare | Addestrare un modello di classificazione che preveda il tipo di specie di fiori di iris e ottenere spiegazioni online |
Link a GitHub | basata su caratteristiche (valore di Shapley campionato) | scikit-learn | tabulare | Addestrare un modello di regressione lineare che preveda le tariffe dei taxi e ottenere spiegazioni online |
Link a GitHub | basata su caratteristiche (gradienti integrati) | TensorFlow | immagine | Addestrare un modello di classificazione che preveda la classe dell'immagine di input fornita e ottenere spiegazioni collettive |
Link a GitHub | basata su caratteristiche (gradienti integrati) | TensorFlow | immagine | Addestrare un modello di classificazione che preveda la classe dell'immagine di input fornita e ottenere spiegazioni online |
Link a GitHub | basata su caratteristiche (gradienti integrati) | TensorFlow | tabulare | Addestra un modello di regressione che preveda il prezzo medio di una casa e ricevi spiegazioni batch |
Link a GitHub | basata su caratteristiche (gradienti integrati) | TensorFlow | tabulare | Addestra un modello di regressione che preveda il prezzo medio di una casa e ricevi spiegazioni online |
Link a GitHub | basata su caratteristiche (gradienti integrati) | TensorFlow | immagine | Utilizza Inception_v3, un modello di classificazione preaddestrato, per ottenere spiegazioni batch e online |
Link a GitHub | basata su caratteristiche (valore di Shapley campionato) | TensorFlow | testo | Addestrare un modello LSTM che classifichi le recensioni dei film come positive o negative utilizzando il testo della recensione e ottenere spiegazioni online |
Risorse didattiche
Le seguenti risorse forniscono ulteriore materiale didattico utile:
- Explainable AI per professionisti
- Machine learning interpretabile: valori di Shapley
- Repository GitHub di Integrated Gradients di Ankur Taly.
- Introduzione ai valori di Shapley
Passaggi successivi
- Configurare il modello per le spiegazioni basate sulle caratteristiche
- Configurare il modello per le spiegazioni basate su esempi
- Visualizza l'importanza delle funzionalità per i modelli tabulari AutoML.