top of page
Team I.A. Italia

Intelligenza artificiale spiegabile , come spiegare un modello al tuo capo

Al giorno d'oggi, dove c'è un'enorme quantità di dati a nostra disposizione, l'utilizzo dei modelli ML per prendere decisioni è diventato fondamentale in settori come l'assistenza sanitaria, la finanza, il marketing, ecc.


intelligenza artificiale spiegabile , come spiegare un modello al tuo capo
intelligenza artificiale spiegabile , come spiegare un modello al tuo capo


Molti modelli ML sono scatole nere poiché è difficile da comprendere appieno come funzionano dopo l'allenamento. Ciò rende difficile capire e spiegare il comportamento di un modello, ma è importante farlo per avere fiducia nella sua accuratezza. Quindi, come possiamo creare fiducia nelle previsioni di una scatola nera?



Intelligenza artificiale spiegabile

La soluzione a questo problema è l'IA spiegabile (XAI). L'IA spiegabile mira a sviluppare spiegazioni per modelli di intelligenza artificiale troppo sofisticati per la percezione umana. Ciò significa che è un sistema che comprende cosa sta facendo l'algoritmo di intelligenza artificiale e perché sta prendendo questa decisione. Tali informazioni possono migliorare le prestazioni dei modelli, aiutando gli ingegneri ML a risolvere i problemi e rendendo i sistemi di intelligenza artificiale più convincenti e di facile comprensione.


In questo articolo, daremo un'occhiata a come utilizzare una libreria python OmniXAI per ottenere spiegazioni sulla decisione presa dal nostro modello. Prima però vediamo la definizione ufficiale di I.A. Spiegabile :


intelligenza artificiale spiegabile , come spiegare un modello al tuo capo
intelligenza artificiale spiegabile , come spiegare un modello al tuo capo

Cos'è l'intelligenza artificiale spiegabile?

L'intelligenza artificiale spiegabile è un insieme di processi e metodologuie che consente agli esseri umani di comprendere i risultati generati dai modelli di apprendimento automatico o reti neurali. L'IA spiegabile viene utilizzata per spiegare un modello di IA, il suo impatto previsto e le potenziali distorsioni. Aiuta a rafforzare l'accuratezza, l'equità, la trasparenza e i risultati del modello nel processo decisionale basato sull'intelligenza artificiale. L'intelligenza artificiale spiegabile è fondamentale per un'azienda per creare fiducia e sicurezza quando mette in produzione i modelli di intelligenza artificiale. La spiegabilità dell'IA aiuta anche un'organizzazione ad adottare un approccio responsabile allo sviluppo dell'IA.


Man mano che l'IA diventa più avanzata, gli esseri umani sono sfidati a comprendere e ripercorrere come l'algoritmo è arrivato a un risultato. L'intero processo di calcolo viene trasformato in quella che viene comunemente definita una "scatola nera" impossibile da interpretare. Questi modelli di scatole nere vengono creati direttamente dai dati. E nemmeno gli ingegneri o i data scientist che creano l'algoritmo possono capire o spiegare cosa sta succedendo esattamente al loro interno o come l'algoritmo AI è arrivato a un risultato specifico.


Ci sono molti vantaggi nel comprendere come un sistema abilitato all'intelligenza artificiale abbia portato a un output specifico. La spiegazione può aiutare gli sviluppatori a garantire che il sistema funzioni come previsto, che potrebbe essere necessario soddisfare gli standard normativi o potrebbe essere importante per consentire alle persone interessate da una decisione di contestare o modificare tale risultato.

Quali sono i vantaggi dell'intelligenza artificiale spiegabile?

Ci sono vantaggi aziendali significativi derivanti dalla creazione dell'interpretabilità nei sistemi di intelligenza artificiale. Oltre ad aiutare ad affrontare pressioni come la regolamentazione e ad adottare buone pratiche in materia di responsabilità ed etica, si possono ottenere vantaggi significativi dall'essere in prima linea e dall'investire nella spiegazione oggi.


Maggiore è la fiducia nell'IA, più rapidamente e ampiamente può essere implementata. La tua azienda sarà anche una posizione più forte per promuovere l'innovazione e superare i tuoi concorrenti nello sviluppo e nell'adozione di capacità di nuova generazione.

1) Ridurre il costo degli errori

I campi sensibili alle decisioni come Medicina, Finanza, Legale, ecc., sono fortemente influenzati in caso di previsioni errate. La supervisione dei risultati riduce l'impatto di risultati errati e identifica la causa principale che porta al miglioramento del modello sottostante. Di conseguenza cose comeScrittori di intelligenza artificialediventare più realistici da usare e di cui fidarsi nel tempo.

2) Ridurre l'impatto della distorsione del modello

I modelli di IA hanno mostrato prove significative di bias. Gli esempi includono il pregiudizio di genere per le carte Apple, il pregiudizio razziale di veicoli autonomi, il pregiudizio di genere e il pregiudizio razziale di Amazon Rekognition. Un sistema spiegabile può ridurre l'impatto di tale causa di previsioni distorte spiegando i criteri decisionali.

3) Fiducia e conformità del codice

Ogni inferenza, insieme alla sua spiegazione, tende ad aumentare la fiducia del sistema. Alcuni sistemi critici per l'utente, come i veicoli autonomi, la diagnosi medica, il settore finanziario, ecc., richiedono un'elevata sicurezza del codice da parte dell'utente per un utilizzo più ottimale. Per la conformità, la crescente pressione da parte degli organismi di regolamentazione significa che le aziende devono adattare e implementare XAI per conformarsi rapidamente alle autorità.

4) Prestazioni del modello

Una delle chiavi per massimizzare le prestazioni è comprendere i potenziali punti deboli. Migliore è la comprensione di cosa stanno facendo i modelli e perché a volte falliscono, più facile sarà migliorarli. L'esplicabilità è un potente strumento per rilevare difetti nel modello e distorsioni nei dati che crea fiducia per tutti gli utenti. Può aiutare a verificare le previsioni, a migliorare i modelli e ad acquisire nuove informazioni sul problema in questione. Rilevare le distorsioni nel modello o nel set di dati è più facile quando si comprende cosa sta facendo il modello e perché arriva alle sue previsioni.

5) Processo decisionale informato

L'uso principale delle applicazioni di apprendimento automatico nelle aziende è il processo decisionale automatizzato. Tuttavia, spesso vogliamo utilizzare i modelli principalmente per approfondimenti analitici. Ad esempio, potresti addestrare un modello per prevedere le vendite in negozio in una grande catena di vendita al dettaglio utilizzando dati su posizione, orari di apertura, condizioni meteorologiche, periodo dell'anno, prodotti trasportati, dimensioni del punto vendita ecc. Il modello ti consentirebbe di prevedere le vendite nei miei negozi in qualsiasi giorno dell'anno in una varietà di condizioni meteorologiche. Tuttavia, costruendo un modello spiegabile, è possibile vedere quali sono i principali driver di vendita e utilizzare queste informazioni per aumentare i ricavi.


Insomma tutto ciò serve ad evitare anche situazione come lla foto qui sotto :)

intelligenza artificiale spiegabile , come spiegare un modello al tuo capo
intelligenza artificiale spiegabile , come spiegare un modello al tuo capo


Il principio delle IA spiegabili

Per ampliare l'idea di ciò che costituisce XAI, il National Institute of Standards (NIST), parte del Dipartimento del Commercio degli Stati Uniti, definisce quattro principi di intelligenza artificiale spiegabile :

  • Un sistema di intelligenza artificiale dovrebbe fornire "prove, supporto o ragionamento per ogni output".

  • Un sistema di intelligenza artificiale dovrebbe fornire spiegazioni comprensibili ai suoi utenti.

  • Precisione della spiegazione. Una spiegazione dovrebbe riflettere accuratamente il processo utilizzato dal sistema di intelligenza artificiale per arrivare all'output.

  • Limiti di conoscenza. Un sistema di intelligenza artificiale dovrebbe funzionare solo nelle condizioni per cui è stato progettato e non fornire output quando non ha sufficiente fiducia nel risultato.

intelligenza artificiale spiegabile , come spiegare un modello al tuo capo
intelligenza artificiale spiegabile , come spiegare un modello al tuo capo


Come funziona l'IA spiegabile?

Questi principi aiutano a definire l'output atteso da XAI, ma non offrono alcuna guida su come raggiungere tale output. Può essere utile suddividere XAI in tre categorie :

  • Dati spiegabili. Quali dati sono stati utilizzati per addestrare un modello? Perché sono stati scelti quei dati? Come è stata valutata l'equità? È stato fatto qualche sforzo per rimuovere i pregiudizi?

  • Previsioni spiegabili. Quali caratteristiche di un modello sono state attivate o utilizzate per raggiungere un determinato output?

  • Algoritmi spiegabili. Quali sono i singoli livelli che compongono il modello e come portano all'output o alla previsione?

Per le reti neurali in particolare, i dati spiegabili sono l'unica categoria che è facile da raggiungere, almeno in linea di principio. Gran parte della ricerca in corso si concentra su come ottenere previsioni e algoritmi spiegabili.


Adesso hai tutte le nozioni di base per iniziare a mettere mano su del codice che ti mostrerà come puoi semplicemente spiegare il tuo modello al tuo capo

Cos'è OmniXAI l'IA spiegabile in Python?

OmniXAI è una libreria che semplifica l'IA spiegabile per gli utenti che necessitano di spiegazioni in molte fasi di ML, tra cui l'analisi dei dati, l'estrazione di funzionalità, la creazione di modelli e la valutazione del modello. Impiegando tecniche come l'analisi del chi quadrato e il calcolo reciproco delle informazioni per esaminare le correlazioni tra le caratteristiche di input e le variabili target, aiuta nella selezione delle caratteristiche identificando le caratteristiche chiave. Utilizzando l'analizzatore di dati che offre, possiamo semplicemente fare un'analisi di correlazione e trovare gli squilibri di classe.

OmniXAI può essere utilizzato su dati tabulari, immagine, NLP e serie temporali. OmniXAI fornisce diverse spiegazioni per fornire agli utenti una comprensione dettagliata del comportamento di un modello. Queste spiegazioni possono essere facilmente visualizzate con l'aiuto di questa libreria. Crea grafici interattivi utilizzando Plotly e, con poche righe di codice, possiamo creare una dashboard che semplifica il confronto simultaneo di più spiegazioni. In una sezione successiva di questo articolo, creeremo una di queste dashboard per descrivere i risultati di un modello.

intelligenza artificiale spiegabile , come spiegare un modello al tuo capo
intelligenza artificiale spiegabile , come spiegare un modello al tuo capo

Le spiegazioni locali e globali sono principalmente di due tipi.


La spiegazione locale spiega il ragionamento alla base di una certa decisione. Questo tipo di spiegazione viene prodotto utilizzando tecniche come LIME e SHAP.


La spiegazione globale esamina il comportamento generale del modello. Per generare spiegazioni globali, è possibile utilizzare grafici di dipendenza parziale.


Questa libreria utilizza diverse tecniche indipendenti dal modello, tra cui LIME, SHAP e L2X. Questi metodi possono descrivere efficacemente le decisioni prese dal modello senza conoscere le complessità del modello. Inoltre, genera spiegazioni per un determinato modello utilizzando l'approccio specifico del modello come Grad-CAM .


Ora che hai un idea di cosa è l' IA spiegabile e una panoramica di OmniXAI, usiamolo per spiegare le decisioni prese da un classificatore che formeremo. Questo è solo un semplice esempio ma ricorda che usare queste librerie è FORTEMENTE CONSIGLIATO se il tuo capo o manager pensa che excel sia uno strumento ottimo per la data science !



intelligenza artificiale spiegabile , come spiegare un modello al tuo capo
intelligenza artificiale spiegabile , come spiegare un modello al tuo capo


Intelligenza artificiale spiegabile con Python

Utilizzeremo il set di dati di previsione dell'ictus per creare un modello di classificazione. Sulla base delle caratteristiche di input, tra cui sesso, età, diverse malattie e stato di fumatore, questo set di dati viene utilizzato per determinare se è probabile che un paziente abbia un ictus. Non possiamo fare affidamento sui giudizi espressi da una “scatola nera” nel settore sanitario; ci deve essere una giustificazione per la scelta. A tal fine, utilizzeremo OmniXAI per analizzare il set di dati e comprendere il comportamento del modello.


Il set di dati lo puoi scaricare cliccando qui e seguendo le indicazioni nella foto :

Nella barra di ricerca digita : "healthcare-dataset-stroke-data.csv"

intelligenza artificiale spiegabile , come spiegare un modello al tuo capo
Download dataset

Codice Python per implementare l' IA spiegabile

import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.metrics import accuracy_score, classification_report,confusion_matrix
from sklearn.preprocessing import LabelEncoder, StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.ensemble import RandomForestClassifier
from sklearn.pipeline import Pipeline
from imblearn.over_sampling import SMOTE
from omnixai.data.tabular import Tabular
from omnixai.explainers.data import DataAnalyzer
from omnixai.visualization.dashboard import Dashboard
from omnixai.preprocessing.tabular import TabularTransform
from omnixai.explainers.tabular import TabularExplainer
from omnixai.explainers.prediction import PredictionAnalyzer
import seaborn as sns
import matplotlib.pyplot as plt

#carichiamo il dataset
df = pd.read_csv("healthcare-dataset-stroke-data.csv")
df = df.drop('id', axis=1)
df = df.dropna()
print(df.head(10))

che produrrà :


intelligenza artificiale spiegabile , come spiegare un modello al tuo capo
intelligenza artificiale spiegabile , come spiegare un modello al tuo capo


Analisi dei dati utilizzando OmniXAI

Creeremo un set di dati tabulare per utilizzare un dataframe Pandas con OmniXAI. È necessario specificare il dataframe, i nomi delle caratteristiche categoriali e il nome della colonna di destinazione per creare un'istanza Tabular data un dataframe pandas.


feature_names = df.columns 
categorical_columns = ['gender','ever_married','work_type','Residence_type','smoking_status']
tabular_data = Tabular(
    df,
    feature_columns=feature_names,
    categorical_columns=categorical_columns,
    target_column='stroke'
)

Ora creeremo un esplicatore DataAnalyzer per analizzare i dati.


explainer = DataAnalyzer(
    explainers=["correlation", "imbalance#0", "imbalance#1", "mutual", "chi2"],
    mode="classification",
    data=tabular_data
)
explanations = explainer.explain_global(
    params={"imbalance#0": {"features": ["gender"]},
            "imbalance#1": {"features": ["ever_married"]}
            }
)
dashboard = Dashboard(global_explanations=explanations)
dashboard.show()
#Dash is running on http://127.0.0.1:8050/

Il risultato di queste righe di codice sarà il seguente


intelligenza artificiale spiegabile , come spiegare un modello al tuo capo
intelligenza artificiale spiegabile , come spiegare un modello al tuo capo

L'analisi della correlazione delle caratteristiche, i grafici dello squilibrio delle caratteristiche per le caratteristiche di genere e mai_sposati e un grafico dell'importanza delle caratteristiche sono tutti visualizzati in questa dashboard.


Formazione del modello per implementare l' IA spiegabile

Ora applicheremo TabularTransform ai nostri dati, trasformando un'istanza tabulare in un array NumPy e trasformando le caratteristiche categoriali in una codifica one-hot. Successivamente, utilizzeremo SMOTE per affrontare il problema dello squilibrio di classe sovracampionando i dati della classe 1. Quindi, utilizzando un modello StandardScaler e un modello LogisticRegression, adatteremo i nostri dati in una pipeline.


transformer = TabularTransform().fit(tabular_data)
x = transformer.transform(tabular_data)
train, test, train_labels, test_labels = train_test_split(x[:, :-1], x[:, -1], train_size=0.80)

oversample = SMOTE()
X_train_balanced, y_train_balanced = oversample.fit_resample(train, train_labels)

model = Pipeline(steps = [('scale',StandardScaler()),('lr',LogisticRegression())])
model.fit(X_train_balanced, y_train_balanced)
print('Test accuracy: {}'.format(accuracy_score(test_labels, model.predict(test))))
print(classification_report(test_labels,model.predict(test)))
print(confusion_matrix(test_labels,model.predict(test)))
train_data = transformer.invert(X_train_balanced)
test_data = transformer.invert(test)

L'output sarà simile a questo :

intelligenza artificiale spiegabile , come spiegare un modello al tuo capo
intelligenza artificiale spiegabile , come spiegare un modello al tuo capo

Dopo che il nostro modello è stato addestrato, possiamo procedere ulteriormente per creare spiegazioni per il suo comportamento.


Spieghiamo il modello allenato al nostro capo :


Creazione di spiegazioni locali e globali

Ora definiremo un TabularExplainer con i parametri forniti nel codice. Il parametro "esplicatori menziona i nomi degli esplicatori da utilizzare".


La preelaborazione trasforma i dati grezzi in input del modello. Le spiegazioni locali sono generate da LIME, SHAP e MACE, mentre PDP genera spiegazioni globali. Per calcolare le metriche delle prestazioni per questo modello di classificatore, definiremo un PredictionAnalyzer fornendogli i dati di test.

preprocess = lambda z: transformer.transform(z)
explainers = TabularExplainer(
    explainers=["lime", "shap", "mace", "pdp"],
    mode="classification",
    data=train_data,
    model=model,
    preprocess=preprocess,
    params={
        "lime": {"kernel_width": 4},
        "shap": {"nsamples": 200},
    }
)

test_instances = test_data[10:15]
local_explanations = explainers.explain(X=test_instances)
global_explanations = explainers.explain_global(
    params={"pdp": {"features": ['age', 'hypertension', 'heart_disease', 'ever_married', 'bmi','work_type']}}
)
analyzer = PredictionAnalyzer(
    mode="classification",
    test_data=test_data,
    test_targets=test_labels,
    model=model,
    preprocess=preprocess
)
prediction_explanations = analyzer.explain()

Creazione di un dashboard finale

Dopo aver creato le spiegazioni, definiremo i parametri della dashboard, quindi verrà creata l'app Plotly dash. Possiamo eseguire questa dashboard copiando l'indirizzo locale nella barra degli indirizzi del nostro browser.


dashboard = Dashboard(
    instances=test_instances,
    local_explanations=local_explanations,
    global_explanations=global_explanations,
    prediction_explanations=prediction_explanations,
    class_names=class_names
)
dashboard.show()
#Dash is running on http://127.0.0.1:8050/

intelligenza artificiale spiegabile , come spiegare un modello al tuo capo
intelligenza artificiale spiegabile , come spiegare un modello al tuo capo

intelligenza artificiale spiegabile , come spiegare un modello al tuo capo
intelligenza artificiale spiegabile , come spiegare un modello al tuo capo

Osservando i grafici LIME e SHAP per la spiegazione locale, possiamo identificare quali caratteristiche dell'input dato sono state più cruciali per le decisioni del modello. Come possiamo vedere, l'età ha avuto un impatto significativo sulla decisione del modello in questo caso. MACE mostra situazioni ipotetiche, come ad esempio l'individuo non avrebbe subito un ictus se avesse 58 anni invece di 78.


intelligenza artificiale spiegabile , come spiegare un modello al tuo capo
intelligenza artificiale spiegabile , come spiegare un modello al tuo capo

I grafici delle dipendenze parziali (PDP) che illustrano la relazione tra la variabile di destinazione e le caratteristiche di input vengono visualizzati nella spiegazione globale. Come osservato nel grafico dell'età, all'aumentare dell'età, il valore sull'asse delle y tende ad aumentare nel caso della classe 1 e diminuire nel caso della classe 0. Indica che l'età più avanzata di un individuo aumenta il rischio di subire un ictus . Allo stesso modo, se una persona soffre di ipertensione o malattie cardiache, è più incline a subire un ictus.



Conclusione intelligenza artificiale spiegabile

Anche se le decisioni prese dai modelli di intelligenza artificiale possono avere effetti significativi, la mancanza di spiegabilità dei modelli mina la fiducia delle persone nei sistemi di intelligenza artificiale e ne impedisce l'adozione diffusa. In questo articolo, abbiamo visto l'uso di uno strumento XAI, "OmniXAI", per aiutare a comprendere la decisione presa da un modello. Alcuni dei punti chiave da asporto sono:

  • Abbiamo visto cosa è l' IA spiegabile

  • Abbiamo visto come funziona l' IA spiegabile

  • Abbiamo visto l'uso di OmniXAI per elaborare i dati tabulari.

  • Abbiamo creato una dashboard per analizzare i dati.

  • Infine, abbiamo utilizzato spiegazioni locali e globali per spiegare il comportamento del modello e creato un dashboard per visualizzare i risultati.


1 Comment

Rated 0 out of 5 stars.
No ratings yet

Add a rating
Guest
Oct 04, 2022

Questa volta vi siete superati!!!! Ma perché non fate un corso serio o un libro , ho fatto quasi tutti i corsi delle altre piattaforme ma fanno ridere, date molto di più voi gratuitamente con questi articoli. In nessun corso ad esempio parlano di come spiegare un modello. Sarei il primo a comprare qualsiasi vostro servizio o prodotto

Like
PCR (5).gif
PCR (4).gif
PCR.gif
PCR.gif
PCR.gif
PCR.gif
PCR (5).gif
3.gif
Vediamo se riesci a cliccarmi ! Nascondo una Sorpresa... (2).png

Ciao 

🤗 Articoli consigliati dalla nostra
Intelligenza Artificiale in base ai tuoi interessi

Correlazione Alta

Correlazione Media

Correlazione Bassa

Iscriviti

VUOI DIVENTARE UN MEMBRO DI INTELLIGENZA ARTIFICIALE ITALIA GRATUITAMENTE E TRARNE I SEGUENTI BENEFICI?

Corsi Gratis

più di 150 lezioni online

Dataset Gratis

più di 150o dataset

Ebook Gratis

più di 10 libri da leggere

Editor Gratis

un editor python online

Progetti Gratis

più di 25 progetti python

App Gratis

4 servizi web con I.A.

Unisciti Ora a oltre
1.000.000
di lettori e appassionanti d'I.A.

Tutto ciò che riguarda l'intelligenza Artificiale, in unico posto, in italiano e gratis.

MEGLIO DI COSI' NON SI PUO' FARE

Dopo l'iscrizione riceverai diversi Regali

VUOI SCRIVERE ARTICOLI INSIEME A NOI.

Grazie

bottom of page