I modelli di machine learning sono spesso visti come "scatole 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 comprendere meglio il processo decisionale dei modelli.
Sapere come si comporta un modello e come è influenzato dal suo set di dati di addestramento offre a chiunque crei o utilizzi il machine learning nuove capacità per migliorare i modelli, creare fiducia nelle previsioni e capire quando e perché le cose vanno storte.
Spiegazioni basate su esempi
Con le spiegazioni basate su esempi, Vertex AI utilizza la ricerca del vicino più vicino per restituire un elenco di esempi (in genere dal set di addestramento) più simili all'input. Poiché in genere ci aspettiamo input simili per generare 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 dati o modello: uno dei casi d'uso principali delle spiegazioni basate su esempi è aiutarti a capire perché il modello ha commesso determinati errori nelle previsioni e utilizzare queste informazioni per migliorare i dati o il modello. Per farlo, seleziona innanzitutto i dati di test che ti interessano. Ciò potrebbe essere dovuto alle esigenze aziendali o a 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 stia classificando erroneamente il seguente uccello come aereo con un elevato grado di certezza. 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 sagome scure della classe di aerei, è un segnale che indica la presenza di più sagome di uccelli.
Tuttavia, se le spiegazioni provenivano principalmente dalla classe bird, significa che il nostro modello non è in grado di apprendere le relazioni anche quando i dati sono ricchi e che dovremmo considerare l'aumento della complessità del modello (ad esempio, l'aggiunta di altri livelli).
Interpretazione di dati nuovi: supponiamo che il tuo modello sia stato addestrato per classificare uccelli e aerei, ma nel mondo reale il modello incontri 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 spiegazioni basate su esempi per classificare nuove immagini applicando l'etichetta più frequente dei vicini più vicini. Questo è 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: in modo intuitivo, se un'istanza è distante da tutti i dati nel set di addestramento, è probabile che si tratti di un outlier. È noto che le reti neurali si fidano troppo dei propri errori e li mascherano. Il monitoraggio dei modelli mediante 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 modo da 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 è classificato come affetto da influenza e tutte le sue spiegazioni basate su esempi provengono dalla classe influenzale, il medico può avere maggiore fiducia nella previsione del modello senza dover esaminare più attentamente. Tuttavia, se alcune delle spiegazioni provengono dalla lezione influenzale e altre dalla classe a freddo, sarebbe utile chiedere l'opinione di un medico. Ciò porterà a un set di dati in cui le istanze difficili hanno più etichette, rendendo più facile per i modelli downstream l'apprendimento di relazioni complesse.
Per creare un modello che supporti le spiegazioni basate su esempi, consulta Configurazione delle spiegazioni basate su esempi.
Tipi di modello supportati
È supportato qualsiasi modello TensorFlow in grado di fornire un'incorporamento (rappresentazione latente) per gli input. I modelli basati su albero, 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 supponiamo che i livelli più alti (più vicini al livello di output) abbiano appreso qualcosa di "significativo" e quindi il penultimo livello viene spesso scelto per gli incorporamenti. Puoi sperimentare con diversi livelli, esaminare gli esempi ottenuti e sceglierne uno in base ad alcune misure quantitative (corrispondenza di classe) o qualitative (sembra sensati).
Per una dimostrazione su come estrarre gli incorporamenti da un modello TensorFlow ed eseguire la ricerca del vicino più prossimo, consulta il blocco note della spiegazione basata su esempi.
Spiegazioni basate sulle funzionalità
Vertex Explainable AI integra le attribuzioni delle caratteristiche in Vertex AI. Questa sezione fornisce una breve panoramica concettuale dei metodi di attribuzione delle caratteristiche disponibili con Vertex AI.
Le attribuzioni delle caratteristiche indicano in che misura ciascuna caratteristica del modello ha contribuito alle previsioni per ogni specifica istanza. Quando richiedi le previsioni, ricevi i valori previsti in base al tuo modello. Quando richiedi le spiegazioni, ricevi le previsioni insieme alle informazioni di attribuzione delle caratteristiche.
Le attribuzioni delle caratteristiche funzionano sui dati tabulari e includono funzionalità di visualizzazione integrate per i dati di immagine. 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 ride sharing precedenti. Se richiedi solo previsioni per questo modello, ottieni le durate previste delle corse in bicicletta in numero di minuti. Se richiedi le spiegazioni, ottieni la durata prevista per il giro in bici, 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 variazione del valore di previsione rispetto al valore di riferimento specificato. Scegli una base di riferimento significativa che abbia senso per il tuo modello, in questo caso la durata mediana di un giro in bici. Puoi tracciare i punteggi di attribuzione delle caratteristiche per vedere quali caratteristiche 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 da questo modello su un nuovo set di immagini, riceverai una previsione per ogni immagine ("cane" o "gatto"). Se richiedi le spiegazioni, ottieni la classe prevista insieme a un overlay per l'immagine, che mostra quali pixel dell'immagine hanno contribuito maggiormente alla previsione risultante:
Viene addestrato un modello di classificazione delle immagini per prevedere le specie di un fiore nell'immagine. Se richiedi previsioni da questo modello su un nuovo insieme di immagini, riceverai una previsione per ogni immagine ("daisy" o "denti di leone"). Se richiedi le spiegazioni, ottieni la classe prevista insieme a un overlay per l'immagine, che mostra quali aree dell'immagine hanno contribuito maggiormente alla previsione risultante:
Tipi di modello supportati
L'attribuzione delle caratteristiche è supportata per tutti i tipi di modelli (AutoML e con addestramento personalizzato), framework (TensorFlow, scikit, XGBoost), modelli BigQuery ML e modalità (immagini, testo, tabelle, video).
Per utilizzare l'attribuzione delle caratteristiche, configura il modello per l'attribuzione delle caratteristiche 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 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 caratteristiche nella console Google Cloud durante l'addestramento e vedere l'importanza delle caratteristiche del modello per il modello nel suo complesso e l'importanza delle caratteristiche locali per le previsioni online e batch.
Per i tipi di modelli AutoML che non sono 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 in Vertex AI Model Registry.
Vantaggi
Se esamini istanze specifiche e aggreghi le attribuzioni delle caratteristiche nel tuo set di dati di addestramento, puoi ottenere informazioni più approfondite sul funzionamento del modello. Considera i seguenti vantaggi:
Modelli di debug: le attribuzioni delle caratteristiche possono aiutare a rilevare problemi nei dati che in genere mancano nelle tecniche standard di valutazione dei modelli.
Ad esempio, un modello di patologia delle immagini ha ottenuto risultati incredibilmente buoni 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 di penna del radiologo nell'immagine. Per maggiori dettagli su questo esempio, consulta il white paper AI Explanations.
Ottimizzazione dei modelli: puoi identificare e rimuovere le funzionalità meno importanti, il che può comportare 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 di un determinato risultato a ciascun giocatore di un gioco. Applicato ai modelli di machine learning, ogni caratteristica del modello viene considerata come un "giocatore" nel gioco. Vertex Explainable AI assegna un merito proporzionale a ogni caratteristica per il risultato di una determinata previsione.
Metodo di Shapley campionato
Il metodo di shapley campionato fornisce un'approssimazione di campionamento dei valori esatti di Shapley. I modelli tabulari AutoML utilizzano il metodo 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 approfondite sul funzionamento del metodo 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 previsione viene calcolato in relazione 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 è determinata utilizzando la regola della quadratura gaussiana. Per i dati immagine, immagina questo parametro di ridimensionamento come un "dispositivo di scorrimento" che scala tutti i pixel dell'immagine sul 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 medi e dell'input originale.
Per una spiegazione intuitiva di questo processo applicato alle immagini, consulta il post del blog, "Attribuire la previsione di una rete profonda alle sue caratteristiche di input". Gli autori dell'articolo originale sui gradienti integrati (Axiomatic Attribution for Deep Networks) mostrano nel precedente post del blog come appaiono le 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 una base di riferimento nera e una base bianca.
- Sovrasegmentazione: indipendentemente dall'attribuzione a livello di pixel, XRAI sovrasegmenta l'immagine per creare un mosaico di piccole regioni. XRAI utilizza il metodo di Felzenswalb basato su grafici per creare i segmenti di immagine.
- 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, quindi ordina i segmenti dal più positivo al meno positivo. Questo determina quali aree dell'immagine sono più importanti o contribuiscono maggiormente a una data previsione di classe.
Confrontare i metodi di attribuzione delle caratteristiche
Vertex Explainable AI offre tre metodi da utilizzare per le attribuzioni delle caratteristiche: Shapley campionato, gradienti integrati e XRAI.
Metodo | Spiegazione di base | Tipi di modello consigliati | Esempi di casi d'uso | Risorse Vertex AI Model compatibili |
---|---|---|---|---|
Valore di Shapley campionato | Assegna il merito del risultato a ogni caratteristica e considera le diverse permutazioni delle caratteristiche. Questo metodo fornisce un'approssimazione di campionamento dei valori di Shapley esatti. | Modelli non differenziabili, ad esempio insiemi di alberi e reti neurali |
|
|
Gradienti integrati | Un metodo basato su 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. Opzione consigliata in particolare per i modelli con spazi di caratteristiche estesi. Opzione consigliata per le immagini a basso contrasto, come i raggi X. |
|
|
XRAI (eXplanation with Ranked Area Integrals) | In base al metodo dei gradienti integrati, XRAI valuta le regioni sovrapposte dell'immagine per creare una mappa delle tendenze, che evidenzia le aree pertinenti dell'immagine anziché i pixel. | Modelli che accettano input di immagine. Opzione consigliata in particolare per le immagini naturali, ovvero le scene reali che contengono più oggetti. |
|
|
Per un confronto più approfondito dei metodi di attribuzione, consulta il white paper AI Explanations.
Modelli differenziabili e non differenziabili
Nei modelli differibili, puoi calcolare la derivata di tutte le operazioni nel grafico TensorFlow. Questa proprietà consente di rendere possibile 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 con i modelli non differenziabili. Scopri di più sulla codifica di input non differenziabili in modo che funzionino con il metodo dei gradienti integrati.
I modelli non differenziabili includono operazioni non differenziabili nel grafico TensorFlow, come operazioni che eseguono attività di decodifica e arrotondamento. Ad esempio, un modello creato come un insieme di alberi e reti neurali non è differenziabile. Per ottenere le attribuzioni delle caratteristiche per i modelli non differenziabili, utilizza il metodo di Shapley campionato. Shapley campionato funziona anche su modelli differenziabili, ma in quel caso, i costi di calcolo sono più elevati del necessario.
Limitazioni concettuali
Considera i seguenti limiti delle attribuzioni delle funzionalità:
Le attribuzioni delle caratteristiche, inclusa l'importanza delle caratteristiche locali per AutoML, sono specifiche per le singole previsioni. L'ispezione delle attribuzioni delle caratteristiche per una singola previsione può fornire buone informazioni, ma l'insight potrebbe non essere generalizzabile all'intera classe per quella singola istanza o all'intero modello.
Per informazioni più generalizzabili sui modelli AutoML, fai riferimento all'importanza delle caratteristiche del modello. Per ottenere informazioni più generalizzabili per altri modelli, aggrega le attribuzioni in sottoinsiemi nel tuo set di dati o sull'intero set di dati.
Sebbene le attribuzioni delle caratteristiche possano aiutare con il debug del modello, non sempre indicano chiaramente se un problema deriva dal modello o dai dati su cui il modello è addestrato. Usa il buon senso e diagnostica problemi comuni relativi ai dati per restringere l'ambito delle potenziali cause.
Le attribuzioni delle caratteristiche sono soggette ad attacchi antagonistici simili a quelli delle previsioni nei modelli complessi.
Per ulteriori informazioni sulle limitazioni, consulta l'elenco delle limitazioni di alto livello e il white paper di AI Explanations.
Riferimenti
Per l'attribuzione delle caratteristiche, le implementazioni dei valori di Shapley campionati, dei gradienti integrati e di XRAI si basano rispettivamente sui seguenti riferimenti:
- Collegamento dell'errore di stima del valore di Shapley basato su campionamento Approssimazione
- Attribuzione assiomatica per reti profonde
- XRAI: migliori attribuzioni nelle regioni
Scopri di più sull'implementazione di Vertex Explainable AI leggendo il white paper AI Explanations.
Blocchi note
Per iniziare a utilizzare Vertex Explainable AI, utilizza questi blocchi note:
Blocco note | Metodo di spiegabilità | Framework ML | Modalità | Attività |
---|---|---|---|---|
Link a GitHub | spiegazioni basate su esempi | TensorFlow | immagine | Addestra un modello di classificazione che preveda la classe dell'immagine di input fornita e ricevi spiegazioni online |
Link a GitHub | basato sulle funzionalità | AutoML | tabellare | Addestra un modello di classificazione binario che prevede se una banca personalizzata ha acquistato un deposito a termine e riceve spiegazioni sui batch |
Link a GitHub | basato sulle funzionalità | AutoML | tabellare | Addestra un modello di classificazione che prevede il tipo di specie di fiori dell'iride e ottieni spiegazioni online |
Link a GitHub | basato sulle funzionalità (shapley campionato) | scikit-learn | tabellare | Addestrare un modello di regressione lineare che prevede le tariffe dei taxi e fornisce spiegazioni online |
Link a GitHub | basato sulle funzionalità (gradienti integrati) | TensorFlow | immagine | Addestra un modello di classificazione che prevede la classe dell'immagine di input fornita e ricevi spiegazioni sui batch |
Link a GitHub | basato sulle funzionalità (gradienti integrati) | TensorFlow | immagine | Addestra un modello di classificazione che preveda la classe dell'immagine di input fornita e ricevi spiegazioni online |
Link a GitHub | basato sulle funzionalità (gradienti integrati) | TensorFlow | tabellare | Addestra un modello di regressione che prevede il prezzo medio di una casa e ottieni spiegazioni batch |
Link a GitHub | basato sulle funzionalità (gradienti integrati) | TensorFlow | tabellare | Addestra un modello di regressione che prevede il prezzo medio di una casa e ottieni spiegazioni online |
Link a GitHub | basato sulle funzionalità (gradienti integrati) | TensorFlow | immagine | Utilizza Inception_v3, un modello di classificazione preaddestrato, per ricevere spiegazioni online e batch |
Link a GitHub | basato sulle funzionalità (shapley campionato) | TensorFlow | testo | Addestra un modello LSTM che classifichi le recensioni dei film come positive o negative utilizzando il testo della recensione e ricevi spiegazioni online |
Risorse didattiche
Le seguenti risorse forniscono ulteriore materiale didattico utile:
- Explainable AI per i professionisti
- Machine learning interpretabile: valori di Shapley
- Repository GitHub integrato di Gradients di Ankur Taly.
- Introduzione ai valori di Shapley
Passaggi successivi
- Configura il tuo modello per le spiegazioni basate sulle funzionalità
- Configura il tuo modello per spiegazioni basate su esempi
- Visualizza l'importanza delle caratteristiche per i modelli tabulari AutoML.