Interpreteerbaarheid van modellen

In dit artikel worden de methoden beschreven die u kunt gebruiken voor modelinterpreteerbaarheid in Azure Machine Learning.

Belangrijk

Met de release van het verantwoordelijke AI-dashboard, dat modelinterpreteerbaarheid bevat, raden we u aan te migreren naar de nieuwe ervaring, omdat het oudere dashboard voor de interpretatie van het SDK v1-voorbeeldmodel niet meer actief wordt onderhouden.

Waarom modelinterpreteerbaarheid belangrijk is voor modelopsporing

Wanneer u machine learning-modellen gebruikt op manieren die van invloed zijn op het leven van mensen, is het van cruciaal belang om te begrijpen wat het gedrag van modellen beïnvloedt. Interpretatiebaarheid helpt bij het beantwoorden van vragen in scenario's zoals:

  • Modelfoutopsporing: waarom heeft mijn model deze fout gemaakt? Hoe kan ik mijn model verbeteren?
  • Samenwerking tussen mens en AI: hoe kan ik de beslissingen van het model begrijpen en vertrouwen?
  • Naleving van regelgeving: voldoet mijn model aan wettelijke vereisten?

Het onderdeel interpreteerbaarheid van het verantwoordelijke AI-dashboard draagt bij aan de diagnosefase van de levenscycluswerkstroom van het model door door mensen begrijpelijke beschrijvingen van de voorspellingen van een machine learning-model te genereren. Het biedt meerdere weergaven van het gedrag van een model:

  • Algemene uitleg: welke functies zijn bijvoorbeeld van invloed op het algehele gedrag van een model voor de toewijzing van leningen?
  • Lokale uitleg: waarom is bijvoorbeeld de leningaanvraag van een klant goedgekeurd of afgewezen?

U kunt ook modelverklaringen voor een geselecteerd cohort bekijken als een subgroep van gegevenspunten. Deze benadering is waardevol wanneer u bijvoorbeeld de getrouwheid van modelvoorspellingen voor personen in een bepaalde demografische groep beoordeelt. Het tabblad Lokale uitleg van dit onderdeel vertegenwoordigt ook een volledige gegevensvisualisatie, die ideaal is voor het algemene bekijken van de gegevens en het bekijken van verschillen tussen juiste en onjuiste voorspellingen van elk cohort.

De mogelijkheden van dit onderdeel zijn gebaseerd op het InterpretML-pakket , dat modeluitleg genereert.

Gebruik interpreteerbaarheid wanneer u het volgende moet doen:

  • Bepaal hoe betrouwbaar de voorspellingen van uw AI-systeem zijn door te begrijpen welke functies het belangrijkst zijn voor de voorspellingen.
  • Benader de foutopsporing van uw model door het eerst te begrijpen en te bepalen of het model gezonde functies of alleen onjuiste correlaties gebruikt.
  • Ontdek mogelijke bronnen van oneerlijkheid door te begrijpen of het model voorspellingen baseert op gevoelige functies of op functies die er sterk mee gecorreleerd zijn.
  • Bouw het vertrouwen van de gebruiker in de beslissingen van uw model op door lokale verklaringen te genereren om de resultaten te illustreren.
  • Voltooi een wettelijke controle van een AI-systeem om modellen te valideren en de impact van modelbeslissingen op mensen te bewaken.

Uw model interpreteren

In machine learning zijn functies de gegevensvelden die u gebruikt om een doelgegevenspunt te voorspellen. Als u bijvoorbeeld kredietrisico's wilt voorspellen, kunt u gegevensvelden gebruiken voor leeftijd, accountgrootte en leeftijd van de rekening. Hier zijn leeftijd, accountgrootte en accountleeftijd functies. Functiebelang geeft aan hoe elk gegevensveld van invloed is op de voorspellingen van het model. Hoewel u bijvoorbeeld veel leeftijd kunt gebruiken in de voorspelling, is het mogelijk dat de grootte van het account en de leeftijd van het account de voorspellingswaarden niet aanzienlijk beïnvloeden. Met dit proces kunnen gegevenswetenschappers de resulterende voorspellingen uitleggen op manieren die belanghebbenden inzicht geven in de belangrijkste functies van het model.

Door de klassen en methoden in het verantwoordelijke AI-dashboard te gebruiken en door SDK v2 en CLI v2 te gebruiken, kunt u het volgende doen:

  • Modelvoorspelling uitleggen door waarden voor het belang van functies te genereren voor het hele model (globale uitleg) of afzonderlijke gegevenspunten (lokale uitleg).
  • Bereik modelinterpretabiliteit op echte gegevenssets op schaal.
  • Gebruik een interactief visualisatiedashboard om patronen in uw gegevens en de bijbehorende uitleg tijdens de training te ontdekken.

Met behulp van de klassen en methoden in de SDK v1 kunt u het volgende doen:

  • Modelvoorspelling uitleggen door waarden voor functie-urgentie te genereren voor het hele model of afzonderlijke gegevenspunten.
  • Behalen van modelinterpreteerbaarheid op echte gegevenssets op schaal tijdens training en deductie.
  • Gebruik een interactief visualisatiedashboard om patronen in uw gegevens en de bijbehorende uitleg tijdens de training te ontdekken.

Notitie

Modelinterpreteerbaarheidsklassen worden beschikbaar gesteld via het SDK v1-pakket. Zie SDK-pakketten voor Azure Machine Learning en azureml.interpret installeren voor meer informatie.

Ondersteunde technieken voor modelinterpretabiliteit

Het verantwoordelijke AI-dashboard en azureml-interpret maken gebruik van de interpreteerbaarheidstechnieken die zijn ontwikkeld in Interpret-Community, een opensource Python-pakket voor het trainen van interpreteerbare modellen en het helpen uitleggen van ondoorzichtige AI-systemen. Ondoorzichtige doosmodellen zijn modellen waarvoor we geen informatie over hun interne werking hebben.

Interpret-Community fungeert als host voor de volgende ondersteunde uitlegders en ondersteunt momenteel de technieken voor interpreteerbaarheid die in de volgende secties worden beschreven.

Ondersteund in verantwoordelijk AI-dashboard in Python SDK v2 en CLI v2

Techniek voor interpreteerbaarheid Beschrijving Type
Mimic Explainer (Global Surrogaat) + SHAP-structuur Mimic Explainer is gebaseerd op het idee om globale surrogaatmodellen te trainen om ondoorzichtige doosmodellen na te bootsen. Een globaal surrogaatmodel is een intrinsiek interpreteerbaar model dat is getraind om de voorspellingen van elk ondoorzichtig model zo nauwkeurig mogelijk te benaderen.

Gegevenswetenschappers kunnen het surrogaatmodel interpreteren om conclusies te trekken over het ondoorzichtige model. Het verantwoordelijke AI-dashboard maakt gebruik van LightGBM (LGBMExplainableModel), gekoppeld aan de SHAP-structuur (SHapley Additive exPlanations) Tree Explainer, een specifieke uitlegfunctie voor bomen en ensembles van bomen. De combinatie van LightGBM en SHAP-structuur biedt modelagnostische globale en lokale uitleg van uw machine learning-modellen.
Modelagnostisch

Ondersteund in Python SDK v1

Techniek voor interpreteerbaarheid Beschrijving Type
SHAP Tree Explainer De SHAP Tree Explainer, die zich richt op een polynomiaal, tijdssnel SHAP-waardeschattingsalgoritme dat specifiek is voor bomen en ensembles van bomen. Modelspecifiek
SHAP Deep Explainer Op basis van de uitleg van SHAP is Deep Explainer een 'high-speed benaderingsalgoritme voor SHAP-waarden in deep learning-modellen dat voortbouwt op een verbinding met DeepLIFT die wordt beschreven in het SHAP NIPS-document. TensorFlow-modellen en Keras-modellen die gebruikmaken van de Back-end van TensorFlow worden ondersteund (er is ook voorlopige ondersteuning voor PyTorch)." Modelspecifiek
SHAP Linear Explainer De SHAP Linear Explainer berekent SHAP-waarden voor een lineair model, optioneel voor correlaties tussen functies. Modelspecifiek
SHAP Kernel Explainer De SHAP Kernel Explainer maakt gebruik van een speciaal gewogen lokale lineaire regressie om SHAP-waarden voor elk model te schatten. Modelagnostisch
Mimic Explainer (Global Surrogaat) Mimic Explainer is gebaseerd op het idee om globale surrogaatmodellen te trainen om ondoorzichtige doosmodellen na te bootsen. Een globaal surrogaatmodel is een intrinsiek interpreteerbaar model dat is getraind om de voorspellingen van elk ondoorzichtig model zo nauwkeurig mogelijk te benaderen. Gegevenswetenschappers kunnen het surrogaatmodel interpreteren om conclusies te trekken over het ondoorzichtige model. U kunt een van de volgende interpreteerbare modellen gebruiken als surrogaatmodel: LightGBM (LGBMExplainableModel), Linear Regression (LinearExplainableModel), Stochastic Gradient Descent explainable model (SGDExplainableModel) of Decision Tree (DecisionTreeExplainableModel). Modelagnostisch
Uitleg over urgentie van permutatiefunctie PFI (Permutation Feature Importance) is een techniek die wordt gebruikt om classificatie- en regressiemodellen uit te leggen en die is geïnspireerd op het artikel Random Forests van Breiman (zie sectie 10). Op hoog niveau werkt het door gegevens willekeurig met één functie tegelijk voor de hele gegevensset te scheren en te berekenen in hoeverre de prestatiemetriek van belang verandert. Hoe groter de wijziging, hoe belangrijker die functie is. PFI kan het algemene gedrag van een onderliggend model verklaren, maar geeft geen uitleg over afzonderlijke voorspellingen. Modelagnostisch

Naast de hierboven beschreven technieken voor interpreteerbaarheid, ondersteunen we een andere shap-gebaseerde uitlegfunctie, genaamd Tabular Explainer. Afhankelijk van het model maakt Tabular Explainer gebruik van een van de ondersteunde SHAP-uitlegprogramma's:

  • Tree Explainer voor alle boomstructuurmodellen
  • Deep Explainer voor DNN-modellen (Deep Neural Network)
  • Linear Explainer voor lineaire modellen
  • Kernel Explainer voor alle andere modellen

Tabular Explainer heeft ook belangrijke functie- en prestatieverbeteringen aangebracht ten opzichte van de directe SHAP-uitleg:

  • Samenvatting van de initialisatiegegevensset: wanneer de snelheid van uitleg het belangrijkst is, vatten we de initialisatiegegevensset samen en genereren we een kleine set representatieve voorbeelden. Deze aanpak versnelt het genereren van waarden voor het algemene en individuele kenmerkbelang.
  • Steekproeven nemen in de evaluatiegegevensset: als u een grote set evaluatievoorbeelden doorgeeft, maar deze niet allemaal moeten worden geëvalueerd, kunt u de samplingparameter instellen op true om de berekening van de algemene modeluitleg te versnellen.

In het volgende diagram ziet u de huidige structuur van ondersteunde uitlegders:

 Diagram van de interpreteerbaarheidsarchitectuur van Machine Learning.

Ondersteunde machine learning-modellen

Het azureml.interpret pakket van de SDK ondersteunt modellen die zijn getraind met de volgende indelingen voor gegevenssets:

  • numpy.array
  • pandas.DataFrame
  • iml.datatypes.DenseData
  • scipy.sparse.csr_matrix

De uitlegfuncties accepteren zowel modellen als pijplijnen als invoer. Als er een model wordt opgegeven, moet het de voorspellingsfunctie predict implementeren of predict_proba die voldoet aan de Scikit-conventie. Als uw model dit niet ondersteunt, kunt u het verpakken in een functie die hetzelfde resultaat genereert als predict of predict_proba in Scikit en die wrapperfunctie gebruiken met de geselecteerde uitleg.

Als u een pijplijn opgeeft, wordt bij de uitlegfunctie ervan uitgegaan dat het actieve pijplijnscript een voorspelling retourneert. Wanneer u deze wrapping-techniek gebruikt, azureml.interpret kunt u modellen ondersteunen die zijn getraind via Deep Learning-frameworks pyTorch, TensorFlow en Keras, evenals klassieke machine learning-modellen.

Lokaal en extern rekendoel

Het azureml.interpret pakket is ontworpen om te werken met zowel lokale als externe rekendoelen. Als u het pakket lokaal uitvoert, maken de SDK-functies geen contact met Azure-services.

U kunt de uitleg op afstand uitvoeren op Azure Machine Learning Compute en de uitleggegevens registreren in de Azure Machine Learning Run History Service. Nadat deze informatie is vastgelegd, zijn rapporten en visualisaties uit de uitleg direct beschikbaar op Azure Machine Learning-studio voor analyse.

Volgende stappen