Migliora le spiegazioni basate sulle funzionalità

Quando utilizzi modelli addestrati personalizzati, puoi configurare parametri specifici per migliorare le spiegazioni. Questa guida descrive come esaminare le spiegazioni ricevute da Vertex Explainable AI per rilevare gli errori e come regolare la configurazione di Vertex Explainable AI per mitigare l'errore.

Se vuoi utilizzare Vertex Explainable AI con un modello tabulare AutoML, non è necessario eseguire alcuna configurazione; Vertex AI configura automaticamente il modello per Vertex Explainable AI. Salta questo documento e leggi l'articolo Ottenere spiegazioni.

I metodi di attribuzione delle caratteristiche di Vertex Explainable AI si basano tutti su varianti dei valori di Shapley. Poiché i valori di Shapley sono molto costosi dal punto di vista del calcolo, Vertex Explainable AI fornisce approssimazioni invece dei valori esatti.

Puoi ridurre l'errore di approssimazione e avvicinarti ai valori esatti modificando i seguenti input:

  • Aumento del numero di passaggi integrali o del numero di percorsi.
  • Modifica delle basi di input selezionate.
  • Aggiunta di altre basi di input. Con i gradienti e i metodi XRAI integrati, l'utilizzo di basi di riferimento aggiuntive aumenta la latenza. L'utilizzo di basi di riferimento aggiuntive con il metodo di Shapley campionato non aumenta la latenza.

Controlla le spiegazioni per l'errore

Dopo aver richiesto e ricevuto spiegazioni da Vertex Explainable AI, puoi consultare le spiegazioni relative all'errore di approssimazione. Se le spiegazioni presentano un elevato errore di approssimazione, potrebbero non essere affidabili. Questa sezione descrive diversi modi per verificare la presenza di errori.

Controlla il campo approximationError

Per ogni Attribution, Vertex Explainable AI restituisce un errore di approssimazione nel campo approximationError. Se l'errore di approssimazione supera 0,05, valuta la possibilità di modificare la configurazione di Vertex Explainable AI.

Per la tecnica dei gradienti integrati, calcoliamo l'errore di approssimazione confrontando la somma delle attribuzioni delle caratteristiche con la differenza tra i valori previsti per il punteggio di input e il punteggio di riferimento. Per la tecnica dei gradienti integrati, l'attribuzione delle caratteristiche è un'approssimazione dell'integrale dei valori del gradiente tra la base di riferimento e l'input. Utilizziamo la regola della quadratura gaussiana per approssimare l'integrale perché è più preciso dei metodi della somma di Riemann.

Controlla la differenza tra previsioni e output di riferimento

Per ogni elemento Attribution, Vertex Explainable AI restituisce instanceOutputValue, che rappresenta la parte dell'output di previsione a cui sono destinate le attribuzioni delle caratteristiche, e baselineOutputValue, che rappresenta questa parte dell'output di previsione se la previsione venisse eseguita su una base di input anziché sull'istanza di input effettiva.

Se la differenza tra instanceOutputValue e baselineOutputValue è inferiore a 0,05 per qualsiasi attribuzione, potrebbe essere necessario modificare le basi degli input.

Modifica la configurazione

Le seguenti sezioni descrivono come modificare la configurazione di Vertex Explainable AI per ridurre gli errori. Per apportare una qualsiasi delle seguenti modifiche, devi configurare una nuova risorsa Model con una risorsa ExplanationSpec aggiornata oppure eseguire l'override della risorsa ExplanationSpec della tua Model esistente eseguendone nuovamente il deployment in una risorsa Endpoint o ricevendo nuove previsioni batch.

Aumenta passi o percorsi

Per ridurre l'errore di approssimazione, puoi aumentare:

Modificare le basi

Le basi di input rappresentano una caratteristica che non fornisce informazioni aggiuntive. Le linee di riferimento per i modelli tabulari possono essere valori mediani, minimi, massimi o casuali in relazione ai dati di addestramento. Analogamente, per i modelli di immagine, la base di riferimento può essere un'immagine nera, bianca, grigia o con valori di pixel casuali.

Quando configuri Vertex Explainable AI, puoi specificare facoltativamente il campo input_baselines. In caso contrario, Vertex AI sceglie le basi degli input per te. Se riscontri i problemi descritti nelle sezioni precedenti di questa guida, ti consigliamo di modificare il input_baselines per ogni input di Model.

In generale:

  • Iniziare con una base di riferimento che rappresenta i valori mediani.
  • Modifica questa base di riferimento impostandola su una che rappresenti valori casuali.
  • Prova due basi, che rappresentano i valori minimo e massimo.
  • Aggiungi un'altra base di riferimento che rappresenti valori casuali.

Esempio di dati tabulari

Il seguente codice Python crea un messaggio ExplanationMetadata per un modello TensorFlow ipotetico addestrato con dati tabulari.

Tieni presente che input_baselines è un elenco in cui puoi specificare più base di riferimento. Questo esempio imposta solo una base di riferimento. La base di riferimento è un elenco di valori mediani per i dati di addestramento (train_data in questo esempio).

explanation_metadata = {
    "inputs": {
        "FEATURE_NAME": {
            "input_tensor_name": "INPUT_TENSOR_NAME",
            "input_baselines": [train_data.median().values.tolist()],
            "encoding": "bag_of_features",
            "index_feature_mapping": train_data.columns.tolist()
        }
    },
    "outputs": {
        "OUTPUT_NAME": {
            "output_tensor_name": "OUTPUT_TENSOR_NAME"
        }
    }
}

Consulta Configurazione delle spiegazioni per i modelli con addestramento personalizzato per maggiori informazioni su come utilizzare questo ExplanationMetadata

Per impostare due basi che rappresentano i valori minimo e massimo, imposta input_baselines come segue: [train_data.min().values.tolist(), train_data.max().values.tolist()]

Esempio per i dati delle immagini

Il seguente codice Python crea un messaggio ExplanationMetadata per un modello TensorFlow ipotetico addestrato sui dati delle immagini.

Tieni presente che input_baselines è un elenco in cui puoi specificare più base di riferimento. Questo esempio imposta solo una base di riferimento. La base di riferimento è un elenco di valori casuali. L'utilizzo di valori casuali per una base di immagini è un buon approccio se le immagini nel set di dati di addestramento contengono molto bianco e nero.

Altrimenti, imposta input_baselines su [0, 1] per rappresentare le immagini in bianco e nero.

random_baseline = np.random.rand(192,192,3)

explanation_metadata = {
    "inputs": {
        "FEATURE_NAME": {
            "input_tensor_name": "INPUT_TENSOR_NAME",
            "modality": "image",
            "input_baselines": [random_baseline.tolist()]
        }
    },
    "outputs": {
        "OUTPUT_NAME": {
            "output_tensor_name": "OUTPUT_TENSOR_NAME"
        }
    }
}

Passaggi successivi

  • Segui la guida per configurare le spiegazioni per implementare eventuali modifiche di configurazione descritte in questa pagina.