Fair ML & AI - black box versus white box
NB: Dit artikel is gebaseerd op het werk van Alicja Gosiewska, Aleksandra Gacek, Piotr Lubon en Przemyslaw Biecek (Gosiewska et al., 2019).
Machine learning modellen zijn grofweg in te delen in twee soorten: black box en white box modellen(ook wel glass box genoemd). Om een model om betrouwbaar en toegankelijk te laten zijn, zijn er vier randvoorwaarden (ref):
- Hoge prestatie - het model heeft een zo hoog mogelijke mate van accuraatheid c.q. maakt zo min mogelijk fouten.
- Controleerbaarheid - de uitkomsten van het model kunnen gecontroleerd worden op basis van verschillende criteria, zoals stabiliteit, eerlijkheid en gevoeligheid.
- Interpreteerbaarheid - de werking van het model is onder de motorkap goed te volgen, zodat de onderliggende veronderstellingen begrepen kunnen worden.
- Automatiseerbaarheid - het ontwikkelen en uitvoeren van het model is te programmeren en kan daardoor zo efficiënt mogelijk gedaan kan worden.
Voor- en nadelen van blackbox en whitebox modellen
Black box modellen leveren vaak hogere prestaties, zijn tot op zekere hoogte te controleren op de uitkomst en goed te automatiseren, maar de interpeteerbaarheid is laag of soms afwezig; de manier waarop een black box model tot een oordeel komt is niet meer terug te vertalen naar de kenmerken (features) die ervoor worden gebruikt. White box modellen wel goed interpreteerbaar, maar presteren vaak minder goed. Er zijn verschillende manieren om dit vraagstuk op te lossen. Een black box model kan eventueel na afloop alsnog zo goed mogelijk uitgelegd worden aan de hand beslisregels, maar het is een simplicatie van het daadwerkelijke model.
Een middenweg met SAFE ML
Een oplossing kan zijn het gebruik van SAFE ML (Surrogate Assisted Feature Extraction for Model Learning). Dit is een methode om een white box model in twee stappen te bouwen.
- Eerst wordt een elastisch, surrogaat model gebouwd waarin complexere data wordt vereenvoudigd naar variabelen met nieuwe categorieën.
- Daarna worden die nieuwe variabelen gebruikt in een tweede stap om een white box model te trainen.
Zie voor de code bij dit artikel: https://github.com/agosiewska/SAFE_examples.