

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Spiegabilità del modello
<a name="clarify-model-explainability"></a>

Amazon SageMaker Clarify fornisce strumenti che aiutano a spiegare come i modelli di machine learning (ML) generano previsioni. Questi strumenti possono aiutare i progettisti e gli sviluppatori di machine learning e altre parti interessate interne a comprendere le caratteristiche complessive del modello prima della distribuzione e ad eseguire il debug delle previsioni fornite dal modello dopo la sua implementazione.
+ Per ottenere spiegazioni sui set di dati e sui modelli, consulta [Equità, spiegabilità dei modelli e rilevamento dei pregiudizi con Clarify SageMaker](clarify-configure-processing-jobs.md).
+ Per ottenere spiegazioni in tempo reale da un endpoint di SageMaker intelligenza artificiale, consulta. [Spiegabilità online con Clarify SageMaker](clarify-online-explainability.md)

La trasparenza sul modo in cui i modelli di machine learning giungono alle loro previsioni è fondamentale anche per i consumatori e le autorità di regolamentazione. Devono fidarsi delle previsioni dei modelli se intendono accettare le decisioni basate su di esse. SageMaker Clarify utilizza un approccio di attribuzione delle funzionalità indipendente dal modello. È possibile utilizzarlo per capire perché un modello ha effettuato una previsione dopo l'addestramento e per fornire una spiegazione per istanza durante l'inferenza. L'implementazione include un'implementazione scalabile ed efficiente di [SHAP](https://papers.nips.cc/paper/2017/file/8a20a8621978632d76c43dfd28b67767-Paper.pdf). Questo si basa sul concetto di un valore di Shapley, tratto dal campo della teoria cooperativa dei giochi, che assegna a ciascuna caratteristica un valore di importanza per una particolare previsione.

Clarify produce grafici di dipendenza parziali (PDPs) che mostrano l'effetto marginale delle caratteristiche sul risultato previsto di un modello di apprendimento automatico. La dipendenza parziale aiuta a spiegare la risposta mirata in base a una serie di funzionalità di input. Supporta inoltre la spiegabilità sia della visione artificiale (CV) che dell’elaborazione del linguaggio naturale (NLP) utilizzando lo stesso algoritmo dei valori Shapley (SHAP) utilizzato per le spiegazioni dei dati tabulari.

Qual è la funzione di una spiegazione nel contesto del machine learning? Una spiegazione può essere considerata come la risposta a una *domanda sul perché* che aiuta gli esseri umani a comprendere la causa di una previsione. Nel contesto di un modello di machine learning, potresti essere interessato a rispondere a domande come: 
+ Perché il modello prevedeva un esito negativo, ad esempio il rifiuto di un prestito, per un determinato richiedente? 
+ In che modo il modello fa previsioni?
+ Perché il modello ha fatto una previsione errata?
+ Quali caratteristiche hanno la maggiore influenza sul comportamento del modello?

Puoi utilizzare queste spiegazioni per verificare e soddisfare i requisiti normativi, creare fiducia nel modello, supportare il processo decisionale umano, eseguire il debug e migliorare le prestazioni del modello.

La necessità di soddisfare le esigenze di comprensione umana della natura e dei risultati dell'inferenza ML è fondamentale per il tipo di spiegazione necessaria. Ricerche nel campo della filosofia e delle scienze cognitive hanno dimostrato che le persone si preoccupano soprattutto delle spiegazioni contrastive, o delle spiegazioni del perché si è verificato un evento X invece di un altro evento Y che non si è verificato. Qui, X potrebbe essere un evento inaspettato o sorprendente accaduto e Y corrisponde a un'aspettativa basata sul loro modello mentale esistente, denominata *linea di base*. Tieni presente che, per lo stesso evento X, persone diverse potrebbero cercare spiegazioni diverse a seconda del loro punto di vista o del modello mentale Y. Nel contesto dell'intelligenza artificiale spiegabile, puoi pensare a X come l'esempio che viene spiegato e Y come una linea di base che viene in genere scelta per rappresentare un esempio non informativo o medio nel set di dati. A volte, ad esempio nel caso della modellazione ML di immagini, la linea di base potrebbe essere implicita, dove un'immagine i cui pixel sono tutti dello stesso colore può fungere da linea di base.

## Notebook di esempio
<a name="clarify-model-explainability-sample-notebooks"></a>

Amazon SageMaker Clarify fornisce il seguente notebook di esempio per la spiegabilità del modello:
+ [Amazon SageMaker Clarify Processing](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-clarify/index.html#sagemaker-clarify-processing): usa SageMaker Clarify per creare un processo di elaborazione per rilevare distorsioni e spiegare le previsioni dei modelli con l'attribuzione di funzionalità. Gli esempi includono l'utilizzo dei formati di dati CSV e JSON Lines, la creazione di container personalizzati e l'esecuzione di processi di elaborazione con Spark.
+ [Spiegazione della classificazione delle immagini con SageMaker Clarify — SageMaker Clarify](https://github.com/aws/amazon-sagemaker-examples/blob/master/sagemaker-clarify/computer_vision/image_classification/explainability_image_classification.ipynb) fornisce informazioni dettagliate su come i modelli di visione artificiale classificano le immagini.
+ [Spiegazione dei modelli di rilevamento degli oggetti con SageMaker Clarify — SageMaker Clarify](https://github.com/aws/amazon-sagemaker-examples/blob/main/sagemaker-clarify/computer_vision/object_detection/object_detection_clarify.ipynb) fornisce informazioni dettagliate su come i modelli di visione artificiale rilevano gli oggetti.

È stato verificato che questo notebook funzioni solo in Amazon SageMaker Studio. Se hai bisogno di istruzioni su come aprire un notebook in Amazon SageMaker Studio, consulta[Crea o apri un notebook Amazon SageMaker Studio Classic](notebooks-create-open.md). Se ti viene richiesto di scegliere un kernel, scegli **Python 3 (Data Science)**.

**Topics**
+ [Notebook di esempio](#clarify-model-explainability-sample-notebooks)
+ [Caratterizzazione delle attribuzioni che utilizzano i valori Shapley](clarify-shapley-values.md)
+ [Valori asimmetrici di Shapley](clarify-feature-attribute-shap-asymm.md)
+ [Linee di base SHAP per la spiegabilità](clarify-feature-attribute-shap-baselines.md)

# Caratterizzazione delle attribuzioni che utilizzano i valori Shapley
<a name="clarify-shapley-values"></a>

SageMaker Clarify fornisce attribuzioni di funzionalità basate sul concetto di valore [Shapley](https://en.wikipedia.org/wiki/Shapley_value). È possibile utilizzare i valori Shapley per determinare il contributo apportato da ciascuna funzionalità ai modelli di previsione. Queste attribuzioni possono essere fornite per previsioni specifiche e a livello globale per il modello nel suo insieme. Ad esempio, se hai utilizzato un modello di machine learning per le ammissioni all'università, le spiegazioni potrebbero aiutare a determinare se il punteggio GPA o il punteggio SAT fosse la caratteristica più responsabile delle previsioni del modello, e quindi puoi determinare in che misura ciascuna caratteristica fosse responsabile nel determinare una decisione di ammissione relativa a un determinato studente.

SageMaker Clarify ha preso il concetto di valori di Shapley dalla teoria dei giochi e lo ha implementato in un contesto di apprendimento automatico. Il valore Shapley fornisce un modo per quantificare il contributo di ogni giocatore a un gioco e quindi i mezzi per distribuire il guadagno totale generato da un gioco ai giocatori in base ai loro contributi. *In questo contesto di apprendimento automatico, SageMaker Clarify considera la previsione del modello su una determinata istanza come un *gioco* e le funzionalità incluse nel modello come i giocatori.* Per una prima approssimazione, si potrebbe essere tentati di determinare il contributo o l'effetto marginale di ciascuna caratteristica quantificando il risultato dell'*eliminazione* di quella caratteristica dal modello o dell'*eliminazione* di tutte le altre caratteristiche dal modello. Tuttavia, questo approccio non tiene conto del fatto che le funzionalità incluse in un modello spesso non sono indipendenti l'una dall'altra. Ad esempio, se due caratteristiche sono altamente correlate, l'eliminazione di una delle due potrebbe non alterare in modo significativo la previsione del modello. 

Per risolvere queste potenziali dipendenze, il valore di Shapley richiede che venga considerato il risultato di ogni possibile combinazione (o coalizione) di caratteristiche per determinare l'importanza di ciascuna caratteristiche. Date le caratteristiche di *d*, esistono 2d combinazioni possibili di funzionalità, ciascuna corrispondente a un modello potenziale. Per determinare l'attribuzione di una determinata caratteristica *f*, considera il contributo marginale dell'inclusione di *f* in tutte le combinazioni di funzionalità (e nei modelli associati) che non contengono *f* e calcola la media. Si può dimostrare che il valore di Shapley è l’unico modo di assegnare il contributo o l'importanza di ciascuna caratteristica che soddisfa determinate proprietà desiderabili. In particolare, la somma dei valori Shapley di ciascuna caratteristiche corrisponde alla differenza tra le previsioni del modello e quelle di un modello fittizio senza caratteristiche. Tuttavia, anche per valori ragionevoli di *d*, ad esempio 50 caratteristiche, è proibitivo a livello computazionale e poco pratico addestrare 2d modelli possibili. Di conseguenza, SageMaker Clarify deve utilizzare varie tecniche di approssimazione. A tale scopo, SageMaker Clarify utilizza Shapley Additive Explanations (SHAP), che incorpora tali approssimazioni e ha ideato un'implementazione scalabile ed efficiente dell'algoritmo Kernel SHAP attraverso ottimizzazioni aggiuntive. 

Per ulteriori informazioni sui valori di Shapley, vedere [Approccio unificato all'interpretazione delle previsioni dei modelli](https://papers.nips.cc/paper/2017/file/8a20a8621978632d76c43dfd28b67767-Paper.pdf).

# Valori asimmetrici di Shapley
<a name="clarify-feature-attribute-shap-asymm"></a>

[La soluzione di spiegazione del modello di previsione delle serie temporali SageMaker Clarify è un metodo di attribuzione delle funzionalità radicato nella teoria dei giochi cooperativi, simile nello spirito a SHAP.](https://en.wikipedia.org/wiki/Cooperative_game_theory) In particolare, Clarify utilizza [valori di gruppo in ordine casuale](http://www.library.fa.ru/files/Roth2.pdf#page=121), noti anche come [valori asimmetrici di Shapley](https://proceedings.neurips.cc/paper/2020/file/0d770c496aa3da6d2c3f2bd19e7b9d6b-Paper.pdf) nel machine learning e nella spiegabilità.

## Contesto
<a name="clarify-feature-attribute-shap-asymm-setting"></a>

L’obiettivo è calcolare le attribuzioni per le funzionalità di input in un determinato modello di previsione *f*. Il modello di previsione accetta gli input seguenti:
+ Serie temporali passate *(TS di destinazione)*. Ad esempio, potrebbe trattarsi dei passeggeri ferroviari passati ogni giorno sulla tratta Parigi-Berlino, indicati con *xt*.
+ (Facoltativo) Una serie temporale covariata. Ad esempio, potrebbe trattarsi di festività e dati meteorologici, indicati con *zt* ​∈ RS. Se utilizzata, la TS covariata potrebbe essere disponibile solo per le fasi temporali passate oppure anche per quelle future (incluse nel calendario delle festività).
+ (Facoltativo) Le covariate statiche, ad esempio la qualità del servizio (ad esempio, prima o seconda classe), sono indicate da *u* ∈ RE.

Le covariate statiche, le covariate dinamiche o entrambe possono essere omesse, a seconda dello scenario applicativo specifico. Dato un orizzonte di previsione K ≥ 0 (ad esempio K = 30 giorni), la previsione tramite modello può essere caratterizzata dalla formula: *f(x[1:T], z[1:T\$1K], u) = x[T\$11:T \$1K\$11]*.

Il diagramma seguente mostra una struttura delle dipendenze per un modello di previsione tipico. La previsione nel momento *t\$11* dipende dai tre tipi di input menzionati in precedenza.

![\[Struttura delle dipendenze per un modello di previsione tipico.\]](http://docs.aws.amazon.com/it_it/sagemaker/latest/dg/images/clarify/clarify-forecast-dependency.png)


## Metodo
<a name="clarify-feature-attribute-shap-asymm-explan"></a>

Le spiegazioni vengono calcolate eseguendo query sul modello delle serie temporali *f* su una serie di punti derivati dall’input originale. Seguendo i costrutti della teoria dei giochi, Clarify calcola la media delle differenze nelle previsioni dovute all’offuscamento (ovvero all’impostazione di un valore baseline) iterativo di parti degli input. La struttura temporale può essere esplorata in ordine cronologico, anticronologico o entrambi. Le spiegazioni cronologiche vengono create aggiungendo informazioni in modo iterativo dalla prima fase temporale, mentre per le spiegazioni anticronologiche si inizia dall’ultima fase. Quest’ultima modalità può essere più adatta per i bias di novità, ad esempio quando si prevedono i prezzi delle azioni. Una proprietà importante delle spiegazioni calcolate è che si sommano all’output del modello originale se il modello fornisce risultati deterministici.

## Attribuzioni risultanti
<a name="clarify-feature-attribute-shap-asymm-attr"></a>

Le attribuzioni risultanti sono punteggi che valutano i contributi individuali di specifiche fasi temporali o funzionalità di input alla previsione finale in ogni fase temporale prevista. Clarify offre le due granularità per le spiegazioni:
+ Le spiegazioni temporali non sono costose e forniscono informazioni mirate su fasi temporali specifiche, ad esempio in che misura le informazioni del 19° giorno nel passato hanno contribuito alla previsione del 1° giorno nel futuro. Queste attribuzioni non spiegano singolarmente le covariate statiche e le spiegazioni aggregate delle serie temporali di destinazione e covariate. Le attribuzioni sono una matrice *A* in cui ogni *Atk* è l’attribuzione della fase temporale *t* rispetto alla previsione della fase temporale *T\$1k*. Nota che se il modello accetta covariate future, *t* può essere maggiore di *T*.
+ Le spiegazioni dettagliate sono più impegnative a livello computazionale e forniscono una suddivisione completa di tutte le attribuzioni delle variabili di input.
**Nota**  
Le spiegazioni dettagliate supportano solo l’ordine cronologico.

  Le attribuzioni risultanti sono una tripletta composta da:
  + Matrice *Ax* ∈ RT×K relativa alla serie temporale di input, dove *Atkx​* è l’attribuzione di *xt* rispetto alla fase di previsione *T\$1k*
  + Tensore *Az* ∈ *RT\$1K×S×K* relativo alla serie temporale covariata, dove *Atskz​* è l’attribuzione di *zts​* (ad esempio, la s° TS covariata) rispetto alla fase di previsione *T\$1k*
  + Matrice *Au* ∈ RE×K relativa alle covariate statiche, dove *Aeku​* è l’attribuzione di *ue* ​(la covariata statica e°) rispetto alla fase di previsione *T\$1k*

Indipendentemente dalla granularità, la spiegazione contiene anche un vettore di offset *B* ∈ *RK* che rappresenta il “comportamento di base” del modello quando tutti i dati sono offuscati.

# Linee di base SHAP per la spiegabilità
<a name="clarify-feature-attribute-shap-baselines"></a>

Le spiegazioni sono in genere contrastive, ovvero tengono conto delle deviazioni da una linea di base. Di conseguenza, per lo stesso modello di previsione, puoi aspettarti di ottenere spiegazioni diverse rispetto a linee di base diverse. Pertanto, la scelta di una linea di base è fondamentale. In un contesto di machine learning, la linea di base corrisponde a un'istanza ipotetica che può essere *non informativa* o *informativa*. Durante il calcolo dei valori di Shapley, SageMaker Clarify genera diverse nuove istanze tra la linea di base e l'istanza data, in cui l'assenza di una feature viene modellata impostando il valore della feature su quello della linea di base e la presenza di una feature viene modellata impostando il valore della feature su quello della determinata istanza. Pertanto, l'assenza di tutte le funzionalità corrisponde alla linea di base e la presenza di tutte le funzionalità corrisponde all'istanza data. 

Come si possono scegliere delle buone linee di base? Spesso è preferibile selezionare una linea di base con un contenuto informativo molto basso. Ad esempio, è possibile costruire un'istanza media dal set di dati di addestramento prendendo la mediana o la media per le caratteristiche numeriche e la modalità per le caratteristiche categoriche. Per quanto riguarda l'esempio delle ammissioni all'università, potrebbe interessarti spiegare perché un determinato candidato è stato accettato rispetto alle accettazioni di base basate su un candidato medio. Se non viene fornita, una linea di base viene calcolata automaticamente da SageMaker Clarify utilizzando metodi K o prototipi K nel set di dati di input.

In alternativa, è possibile scegliere di generare spiegazioni rispetto alle linee di base informative. Per quanto riguarda lo scenario delle ammissioni all'università, potresti voler spiegare perché un determinato candidato è stato respinto rispetto ad altri candidati provenienti da contesti demografici simili. In questo caso, puoi scegliere una linea di base che rappresenti i candidati di interesse, vale a dire quelli con un background demografico simile. Pertanto, è possibile utilizzare linee di base informative per concentrare l'analisi sugli aspetti specifici di un particolare modello di previsione. È possibile isolare le funzionalità per la valutazione impostando gli attributi demografici e altre funzionalità su cui non è possibile agire con lo stesso valore dell'istanza specifica.