I modelli di machine learning sono spesso considerati come "caselle nere", in cui anche i suoi designer non sono in grado di spiegare come o perché un modello ha prodotto una previsione specifica. Vertex Explainable AI offre spiegazioni basate sulle funzionalità e basate su esempi per fornire una migliore comprensione del processo decisionale.
Sapere come si comporta un modello e come è influenzato dal suo set di dati di addestramento, offre a chiunque crei o utilizzi il ML nuove abilità per migliorare i modelli, creare fiducia nelle proprie previsioni e capire quando e perché si verificano errori.
Spiegazioni basate su esempi
Con spiegazioni basate su esempi, Vertex AI utilizza la ricerca dei vicini più vicina per restituire un elenco di esempi (in genere dal set di addestramento) più simili all'input. Poiché in genere prevediamo input simili per fornire previsioni 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:
Migliorare 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 previsioni e a utilizzare queste informazioni per migliorare i dati o il modello. A tal fine, seleziona innanzitutto i dati di test che ti interessano. Potrebbe essere dovuto a esigenze aziendali o 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 un uccello o un aereo e che classifica erroneamente il seguente uccello come un aereo con elevata fiducia. Puoi utilizzare spiegazioni basate su esempi per recuperare immagini simili dal set di addestramento e capire cosa sta succedendo.
Poiché tutte le spiegazioni sono sagome scure della classe degli aerei, è un segnale per ottenere più sagome di uccelli.
Tuttavia, se le spiegazioni provengono principalmente dalla classe degli uccelli, è un segnale che il nostro modello non è in grado di imparare le relazioni anche quando i dati sono ricchi e dovremmo prendere in considerazione l'aumento della complessità del modello (ad esempio, l'aggiunta di più livelli).
Interpreta nuovi dati: supponiamo che il modello sia stato addestrato per classificare uccelli e aerei, ma che, nel mondo reale, incontra immagini di aquiloni, droni ed elicotteri. Se il set di dati dei vicini più vicino include alcune immagini etichettate di aquiloni, droni ed elicotteri, puoi utilizzare spiegazioni basate su esempi per classificare le nuove immagini applicando l'etichetta più frequente dei vicini più prossimi. È 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 più vicino.
Rileva le anomalie: intuitivamente, se un'istanza è lontana da tutti i dati nel set di addestramento, è probabile che sia un valore anomalo. Le reti neurali sono note per essere troppo sicure di errori e, quindi, per nasconderle. Il monitoraggio dei modelli utilizzando spiegazioni basate su esempi consente di identificare i valori anomali 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 consente 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 raffreddore o influenza. Se una paziente è classificata come influenza e tutte le sue spiegazioni basate su esempi provengono dalla classe influenzale, il medico può essere più sicuro nella previsione del modello senza dover esaminare più da vicino. Tuttavia, se alcune spiegazioni provengono dalla classe influenzale e altre da una lezione fredda, vale la pena chiedere un parere al medico. Questo porterà a un set di dati in cui le istanze difficili hanno più etichette, facilitando l'apprendimento delle relazioni complesse nei modelli downstream.
Per creare un modello che supporti le spiegazioni basate su esempio, consulta Configurazione delle spiegazioni basate su esempi.
Tipi di modelli supportati
È supportato qualsiasi modello TensorFlow in grado di fornire un'incorporamento (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, generalmente supponiamo che i livelli più alti (più vicini al livello di output) abbiano imparato qualcosa di "significativo" e che quindi viene scelto spesso il penultimo livello per gli incorporamenti. Puoi sperimentare con diversi livelli, analizzare gli esempi ottenuti e sceglierne uno in base ad alcune misure quantitative (corrispondenza di classe) o qualitative (sensibili).
Per una dimostrazione su come estrarre gli incorporamenti da un modello TensorFlow ed eseguire la ricerca del vicino più prossimo, consulta il blocco note basato su esempi.
Spiegazioni basate sulle funzionalità
Vertex Explainable AI integra le attribuzioni delle funzionalità in Vertex AI. Questa sezione fornisce una breve panoramica concettuale dei metodi di attribuzione delle funzionalità disponibili con Vertex AI.
Le attribuzioni delle caratteristiche indicano in che misura ciascuna caratteristica del modello ha contribuito alle previsioni per ogni istanza. Quando richiedi previsioni, ricevi valori previsti in base al tuo modello. Quando richiedi spiegazioni, ricevi le previsioni insieme alle informazioni di attribuzione delle funzionalità.
Le attribuzioni delle funzionalità funzionano su dati tabulari e includono funzionalità di visualizzazione integrate per i dati delle immagini. Considera i seguenti esempi:
Una rete neurale profonda è addestrata per prevedere la durata di un giro in bici, in base ai dati meteo e ai dati di condivisione della corsa precedente. Se richiedi solo le previsioni per questo modello, riceverai previsioni sulla durata delle corse in bici in numero di minuti. Se richiedi spiegazioni, ricevi la durata prevista del viaggio in bicicletta, insieme a un punteggio di attribuzione per ogni funzionalità nella richiesta di spiegazioni. I punteggi di attribuzione mostrano in che misura la funzionalità ha influito sulla modifica del valore di previsione, rispetto al valore di riferimento specificato. Scegli una base di riferimento significativa che sia adatta al tuo modello; in questo caso, la durata media del giro in bici. Puoi tracciare i punteggi di attribuzione delle caratteristiche per vedere quali funzionalità 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 previsioni di questo modello su un nuovo set di immagini, ricevi una previsione per ogni immagine ("cane" o "gatto"). Se richiedi spiegazioni, ottieni la classe prevista insieme a un overlay per l'immagine, che mostra quali pixel nell'immagine hanno contribuito maggiormente alla previsione risultante:
Foto di un gatto con overlay di attribuzione delle funzionalità Foto di un cane con overlay di attribuzione delle funzionalità Un modello di classificazione delle immagini viene addestrato per prevedere le specie di un fiore nell'immagine. Se richiedi previsioni da questo modello su un nuovo set di immagini, riceverai una previsione per ogni immagine ("margherita" o "tarassaco"). Se richiedi spiegazioni, ottieni la classe prevista insieme a un overlay per l'immagine, che mostra quali aree nell'immagine hanno contribuito maggiormente alla previsione risultante:
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 (addestrati con AutoML e personalizzati), framework (TensorFlow, scikit, XGBoost), modelli BigQuery ML e modalità (immagini, testo, tabulari, video).
Per utilizzare l'attribuzione delle caratteristiche, configura il modello per l'attribuzione delle caratteristiche quando lo carichi o registri nel modello Vertex AI Model Registry.
Inoltre, per i seguenti tipi di modelli AutoML, l'attribuzione delle funzionalità è integrata nella console Google Cloud:
- Modelli di immagine AutoML (solo modelli di classificazione)
- Modelli tabulari AutoML (solo modelli di classificazione e regressione)
Per i tipi di modelli AutoML integrati, puoi abilitare l'attribuzione delle funzionalità nella console Google Cloud durante l'addestramento e consultare l'importanza delle caratteristiche del modello per il modello nel complesso e l'importanza delle caratteristiche locali per le previsioni online e batch.
Per i tipi di modelli AutoML non integrati, puoi comunque abilitare l'attribuzione delle caratteristiche esportando gli artefatti del modello e configurando l'attribuzione delle caratteristiche quando carichi gli artefatti del modello in Vertex AI Model Registry.
Vantaggi
Se esamini istanze specifiche e aggrega anche le attribuzioni delle funzionalità 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 funzionalità possono contribuire a rilevare problemi nei dati che di solito non sarebbero disponibili con le tecniche standard di valutazione dei modelli.
Ad esempio, un modello patologico dell'immagine ha ottenuto risultati sospetti correttamente su un set di dati di test di immagini a raggi X del torace. Le attribuzioni delle caratteristiche hanno rivelato che l'alta precisione del modello dipendeva dai segni della penna del radiologo nell'immagine. Per maggiori dettagli su questo esempio, consulta il white paper sulle spiegazioni AI.
Modelli ottimizzati: puoi identificare e rimuovere funzionalità meno importanti, che possono generare modelli più efficienti.
Metodi di attribuzione delle caratteristiche
Ogni metodo di attribuzione delle caratteristiche si basa sui valori di Shapley, un algoritmo di teoria del gioco cooperativo che assegna il merito a ciascun giocatore di un gioco per un risultato particolare. Applicato ai modelli di machine learning, significa che ogni funzionalità di un modello viene considerata come un "player" nel gioco. Vertex Explainable AI assegna ogni parte del merito al risultato di una determinata previsione.
Metodo Shapley campionato
Il metodo Shapley campionato fornisce un'approssimazione di campionamento per i valori esatti di Shapley. I modelli tabulari AutoML utilizzano il metodo Shapley campionato per l'importanza delle funzionalità. Shapley campionato funziona bene per questi modelli, che sono metaense di alberi e reti neurali.
Per informazioni dettagliate sul funzionamento del metodo di Shapley campionato, consulta il documento Bounding the Estimation Error of Sampling-based Shapley Value approximation.
Metodo gradienti integrato
Nel metodo 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 ridimensionamento. La dimensione di ciascun intervallo viene determinata utilizzando la regola della quadratura gaussiana. Per i dati immagine, immagina questo parametro di scalabilità come un "dispositivo di scorrimento" che scala tutti i pixel dell'immagine in nero.
- I gradienti sono integrati come segue:
- L'integrale viene approssimato utilizzando una media ponderata.
- Viene calcolato il prodotto a livello di elemento dei gradienti e dell'input originale.
Per una spiegazione intuitiva di questo processo applicata alle immagini, consulta il post del blog "Attribuire la previsione di una rete profonda alle sue funzionalità di input". Gli autori dell'articolo originale sui gradienti integrati (Axiomatic Attribution for Deep Networks) mostrano nel post del blog precedente come appaiono le immagini in ogni fase del processo.
Metodo XRAI
Il metodo XRAI combina il metodo dei gradienti integrato 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 integrato con una base di riferimento nera e una base di riferimento bianca.
- Sovrasegmentazione: indipendentemente dall'attribuzione a livello di pixel, XRAI sottosegmenta l'immagine per creare un mosaico di piccole aree geografiche. XRAI utilizza il metodo basato su grafico di Felzenswalb per creare i segmenti di immagini.
- Selezione della regione: XRAI aggrega l'attribuzione a livello di pixel all'interno di ciascun segmento per determinarne la densità di attribuzione. Utilizzando questi valori, XRAI classifica ogni segmento e quindi ordina i segmenti dal più al meno positivo. In questo modo si determina quali aree dell'immagine sono più pertinenti o contribuiscono maggiormente a una determinata previsione di classe.
Confrontare i metodi di attribuzione delle caratteristiche
Vertex Explainable AI offre tre metodi di attribuzione per le attribuzioni di funzionalità: campione Shapley, gradienti integrati e XRAI.
Metodo | Spiegazione di base | Tipi di modello consigliati | Esempi di casi d'uso | Risorse Model di Vertex AI compatibili |
---|---|---|---|---|
Valore di Shapley campionato | Assegna il merito per il risultato a ogni caratteristica e considera le diverse permutazioni delle caratteristiche. Questo metodo fornisce un'approssimazione di campionamento dei valori Shapley esatti. | Modelli non diversificabili, ad esempio insiemi di alberi e reti neurali |
|
|
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 diversi, come le reti neurali. Opzione consigliata soprattutto per i modelli con ampi spazi di funzionalità. Consigliato per immagini a basso contrasto, come i raggi X. |
|
|
XRAI (spiegazione con integrali di aree con ranking) | In base al metodo dei gradienti integrato, 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 immagine. Consigliato soprattutto per le immagini naturali, ovvero qualsiasi scena reale che contiene più oggetti. |
|
|
Per un confronto più completo dei metodi di attribuzione, consulta il white paper sulle spiegazioni AI.
Modelli differenziabili e non differenziabili
Nei modelli diversibili, puoi calcolare la derivata di tutte le operazioni nel tuo grafico TensorFlow. Questa proprietà contribuisce a rendere possibile la propagazione in questi modelli. Ad esempio, le reti neurali sono differenziabili. Per ottenere le attribuzioni delle funzionalità per i modelli differenziabili, utilizza il metodo dei gradienti integrato.
Il metodo dei gradienti integrato non funziona per i modelli non distinguibili. Scopri di più sulla codifica degli input non differenziabili per funzionare con il metodo dei gradienti integrato.
I modelli non differenziabili includono operazioni non distinguibili nel grafico TensorFlow, come le operazioni che eseguono attività di decodifica e arrotondamento. Ad esempio, un modello costruito come un insieme di alberi e reti neurali non è differenziabile. Per ottenere le attribuzioni delle funzionalità per i modelli non differenziabili, utilizza il metodo Shapley campionato. Shapley campionato funziona anche su modelli diversi, ma in questo caso è più costoso dal punto di vista del calcolo rispetto al necessario.
Limitazioni concettuali
Considera le seguenti limitazioni delle attribuzioni delle funzionalità:
Le attribuzioni delle funzionalità, inclusa l'importanza delle caratteristiche locali per AutoML, sono specifiche delle singole previsioni. L'ispezione delle attribuzioni delle caratteristiche per una singola previsione può fornire insight utili, ma gli insight potrebbero non essere generalizzati all'intera classe per quella singola istanza o all'intero modello.
Per informazioni più generali sui modelli AutoML, consulta l'importanza delle funzionalità del modello. Per ottenere insight più generalizzabili per altri modelli, aggregazioni su sottoinsiemi sul tuo set di dati o sull'intero set di dati.
Anche se le attribuzioni delle funzionalità possono essere utili per il debug del modello, non indicano sempre chiaramente se un problema deriva dal modello o dai dati su cui il modello è addestrato. Utilizza il buon senso e diagnostica i problemi comuni dei dati per restringere lo spazio delle potenziali cause.
Le attribuzioni delle funzionalità sono soggette ad attacchi contrari simili come previsioni in modelli complessi.
Per ulteriori informazioni sulle limitazioni, consulta l'elenco delle limitazioni di alto livello e il white paper sulle spiegazioni AI.
Riferimenti
Per l'attribuzione delle caratteristiche, le implementazioni di Shapley campionata, gradienti integrati e XRAI si basano rispettivamente sui seguenti riferimenti:
- Limitazione dell'errore di stima del valore di Shapley basato sul campionamento Approssimazione
- Attribuzione assiomatica per le reti profonde
- XRAI: migliori attribuzioni attraverso le regioni
Scopri di più sull'implementazione dell'Vertex Explainable AI leggendo il white paper AI AI Explanations.
Blocchi note
Per iniziare a utilizzare Vertex Explainable AI, usa questi blocchi note:
Blocco note | Metodo 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 fornisce spiegazioni online |
Link GitHub | basata sulle funzionalità | AutoML | tabulare | Addestra un modello di classificazione binaria che prevede se una banca ha acquistato un deposito a tempo e fornisce spiegazioni sui batch |
Link GitHub | basata sulle funzionalità | AutoML | tabulare | Addestra un modello di classificazione che prevede il tipo di specie di fiori di iris e fornisce spiegazioni online |
Link GitHub | basato sulle funzionalità (Shapley campionato) | scikit-learn | tabulare | Addestra un modello di regressione lineare che prevede le tariffe dei taxi e fornisce spiegazioni online |
Link GitHub | basato sulle funzionalità (Shapley campionato) | scikit-learn | tabulare | Addestra un modello che prevede il tasso di abbandono degli abbonati alle telecomunicazioni e ricevi spiegazioni online |
Link GitHub | basato su funzionalità (gradienti integrati) | TensorFlow | immagine | Addestra un modello di classificazione che prevede la classe dell'immagine di input fornita e fornisce spiegazioni batch |
Link GitHub | basato su funzionalità (gradienti integrati) | TensorFlow | immagine | Addestra un modello di classificazione che prevede la classe dell'immagine di input fornita e fornisce spiegazioni online |
Link GitHub | basato su funzionalità (gradienti integrati) | TensorFlow | tabulare | Addestra un modello di regressione che prevede il prezzo mediano di una casa e fornisce spiegazioni batch |
Link GitHub | basato su funzionalità (gradienti integrati) | TensorFlow | tabulare | Addestra un modello di regressione che prevede il prezzo mediano di una casa e fornisce spiegazioni online |
Link GitHub | basato su funzionalità (gradienti integrati) | TensorFlow | immagine | Utilizza Inception_v3, un modello di classificazione preaddestrato, per ricevere spiegazioni in batch |