Inleiding

Veel bedrijven willen graag de stap maken naar applicatie van kunstmatige intelligentie (i.e. artificial intelligence, AI) in hun bedrijfsprocessen. Dit kan zijn om de interne bedrijfsvoering te verbeteren, maar het kan ook zijn om nieuwe producten binnen het bedrijf te ontwikkelen of nieuw applicaties voor klanten te maken.

Dit document beschrijft de verschillende stappen in het AI proces. Dit proces is in vogelvlucht weergegeven in het onderstaande figuur. Het is een cyclisch proces, en je moet schakelen tussen de stappen.

image0

Wat is Artificial Intelligence?

Er zijn veel definities van artificial intelligence te vinden. Soms wordt dit ook machine learning genoemd. In de praktijk is het verschil niet zo relevant. In feite komt het erop neer dat we computers regels laten ontdekken op basis van grote hoeveelheden data. Op basis van deze regels kunnen dan door mensen of door de computers zelf beslissingen genomen worden.

Verder lezen

Definieer de business case

Dit is in feite de belangrijkste stap in het proces. Je moet aan veel dingen denken.

  • Heb ik de data die nodig zijn?

  • Hoeveel geld of marktaandeel gaat dit ons bedrijf opleveren?

  • Heb ik de mensen om dit uit te voeren?

Voorbeelden van een busines cases

Machine onderhoud optimaliseren

Door veel te meten aan machines kun je een profiel opstellen van een gezond gebruik van een apparaat. Etc. Etc.

Klimaat controle in gebouwen

Door data te verzamelen over het gebruik van kantoren, interne CO2 niveaus en temperatuur, gekoppeld aan de weersverwachting kun het energieverbruik optimaliseren. Etc. Etc.

Het makkelijkste is om hier een checklist voor te gebruiken. Deze kun je hier vinden.

Data verzamelen

Data kunnen uit je eigen bedrijf komen, maar ook uit publieke databases. Je kunt ze natuurlijk ook eerst zelf genereren door metingen te doen. Het is belangrijk om aan de volgende dingen te denken

  • Persoonlijke gegevens, privacy

  • Eigendomsrechten van de data

  • Betrouwbaarheid van de data (als ze van een externe bron komen)

Ook hier hebben we een mooie checklist voor gemaakt. Deze kun je hier vinden.

Elk A.I. model valt of staat met de data waarmee het is gebouwd. Een bekend credo binnen A.I. is `Garbage in - Garbage out’: wanneer de data waarop een model is gebaseerd ongeschikt is, zal dat model ook slecht presteren. In dit document wordt een aantal handvaten aangereikt die ondersteuning bieden bij het op een correcte wijze verzamelen en structureren van een dataset.

  • Kwantiteit, Kwaliteit en Validiteit, waarin gekeken wordt naar wat er gemeten wordt,hoe er gemeten wordt, en hoe betrouwbaar de metingen zijn;

  • Exploratie Data, waarin op basis van een eerste dataset wordt gekeken naar mogelijke verbanden/distributies/correlaties;

  • AI-readiness, waarin de preprocessing die noodzakelijk is voor de meeste gangbare A.I. modellen besproken wordt.

Elk onderdeel is beschreven aan de hand van een aantal vragen met toelichting. Sommige

punten zullen door middel van een voorbeeldsituatie ge_llustreerd worden. Voor deze voorbeelden

zullen we zoveel mogelijk gebruik maken van hetzelfde scenario: een bakker die

(i.v.m. inkopen en voorbereiding) graag zou willen voorspellen hoeveel broden er op een

dag verkocht worden.

Hoeveel meet je?

Over het algemeen geldt: meer is beter. Data weggooien of een subset nemen van je data kan altijd nog, meer verzamelen kan in retrospect niet. Meer meten kan zowel in het tijdsdomein zijn (bijvoorbeeld elke minuut in plaats van elk uur), als in het variabelendomein (naast het meten of een motor aanstaat ook het stroomverbruik meten).

Wat meet je?

Hoe komen de dingen die gemeten/opgeslagen worden overeen met de domeinken- nis over wat relevant is? Domeinkennis (van bijv. een expert) kan snel duidelijk maken welke factoren in meer of mindere mate belangrijk zijn. Staat alle data tot je beschikking die nodig is om het probleem op te (kunnen) lossen? Zijn de meetpunten ‘ruwe datapunten’ (de exacte temperatuur op een bepaald punt in de tijd), of zijn het afgeleide waarden (de gemiddelde temperatuur over bijvoorbeeld 1 minuut)?

Hoe frequent meet je?

Wanneer of hoe vaak wordt een meetpunt opgeslagen? Verschilt dit per variabele? In hoeverre komt de meetfrequentie overeen met de resolutie die je nodig hebt? Bijvoor- beeld: als de temperatuur met een frequentie van 100 Hz wordt gemeten, is dat in het ene domein wellicht overkill (buitentemperatuur voor een brodenbakker), terwijl het in een ander domein wellicht noodzakelijk is om zo’n hoge informatiedichtheid te hebben (interne temperatuur van computerchip-fabricatiemachine).

Bronnen?

Is je data afkomstig van meerdere bronnen, of een enkele bron? Ben je van derden afhankelijk voor sommige van je metingen (bijvoorbeeld weer-informatie van het KNMI)? Hoe problematisch is het als de data van de derde partij niet meer beschikbaar is?

Hoe bewaar je de data?

Zorg ervoor dat je je data op een centrale plek hebt opgeslagen, preferabel met backups. Is alle data op een locatie beschikbaar, of bevindt deze zich op verschillende locaties (bijv. verschillende databases of computersystemen)?

Nieuwe data?

Hoe ga je om met nieuwe data? Is deze eenvoudig te appenderen aan de huidige data? Moeten er voorbewerkingen uitgevoerd worden voordat deze aan een bestaande dataset toegevoegd kunnen worden? Zo ja: welke? Kost dit (veel) tijd?

Verder lezen

Data controleren

Het is belangrijk om veel tijd te besteden aan het controleren en opschonen van je data. Hoe beter de data zijn die in je systeem gaan, hoe beter de uiteindelijke waarde die je uit de data kunt halen. Het is bekend wat het probleem is dat opgelost moet worden (bijv.: voorspellen hoeveel broden er de volgende dag verkocht gaan worden, zodat er daar bij het inkopen & de voorbereidingen rekening mee gehouden kan worden), en wat voor type probleem het is (multiclass classi_cation, regressie etc.);

Belangrijke punten

  • Is er een bias in mijn data?

  • Zijn de metingen betrouwbaar? Wat is de variatie op mijn metingen?

  • Heb ik veel ontbrekende data voor delen van mijn proces?

Ook hier hebben we een mooie checklist voor! Deze kun je hier vinden.

Wat is de betrouwbaarheid

Bij elk van de te meten variabelen loont het om stil te staan bij de betrouwbaarheid van de resulterende data, en hoe hier in het dataverzamelingsproces rekening mee gehouden kan worden.

  • Sensordata : Is (een deel van) de data afkomstig van sensoren (denk aan CO2, temperatuur, water- peil etc.)? Verzeker jezelf er dan van dat de sensoren gekalibreerd zijn. Let ook op de locatie van sensoren: een verkeerd geplaatste sensor kan zorgen voor onbetrouwbare metingen! Zo zal bijvoorbeeld een temperatuursensor die de kamertemperatuur moet meten, maar verkeerd geplaatst is (in de zon, naast een hittebron zoals een verwarming of PC), al snel onbetrouwbare data opleveren. Ook kan de configuratie van een sensor zelf een groot verschil maken: zo zal de ene sensor misschien bij een verschil van 0.1 graden Celsius al een meting versturen, terwijl een andere sensor in hetzelfde gebouw wellicht pas bij 0.5 graden verschil een meting verstuurt.

  • Handmatige data Is er sprake van handmatig ingevoerde data (handmatig tellen, labelen, classificeren etc.)? Controleer dan extra op fouten die voor kunnen komen zoals het invoeren van dubbele getallen (66 i.p.v. 6), extra nullen (1000 ipv. 100) en onmogelijke waarden (-3 ipv. 3). In het geval van meer subjectieve data (bevat een r¨ontgenfoto wel of geen aandoening?) speelt ook de expertise van degene die de data invoert een (grote) rol. Een manier om hier mee om te kunnen gaan, is meerdere experts te vragen om hetzelfde meetpunt te beoordelen. Hierdoor kun je kijken naar de inter-rater agreement, waarbij je kijkt hoe vaak verschillende beoordelaars het met elkaar eens zijn over hetzelfde meetpunt. Een andere mogelijkheid is gebruik maken van de intra- rater agreement, waarmee je hetzelfde meetpunt vaker (in willekeurige volgorde) langs laat komen bij dezelfde expert, en kijkt of ze het consistent beoordelen. Zelfs bij ‘triviale’ labeling-problemen (‘bevat een foto een hond of een kat?’) kunnen er nog foutjes in sluipen doordat de invoerder verkeerd klikt, of even niet oplet.

  • Timestamps Zijn de timestamps (indien beschikbaar) accuraat? Is er rekening gehouden met zomer. Let ook op tijdzones, vooral met grensoverschrijdende data.

Is data representatief?

Is de dataset representatief voor de ‘echte’ situatie? Dat wil zeggen: als er bijvoorbeeld seizoenseffecten zijn (temperatuur, verkoopcijfers, etc.), is er dan ook voldoende data over alle seizoenen heen? Lijkt de omgeving waarin de data is verzameld genoeg op de data waarin het model uiteindelijk toegepast wordt? (Als de dataset verzameld is bij een bakker op Ameland is het resulterende model waarschijnlijk niet heel geschikt voor een bakker in het centrum van Amsterdam).

Variabelennamen?

Heeft elke variabele een duidelijke (voor mensen leesbare) naam? Wanneer meerdere bronnen gecombineerd worden, hebben de metingen die dezelfde onderliggende vari- abele beschrijven (bijv.: temperatuur) ook dezelfde variabelennaam?

Reproduceerbaar?

Heb je in de omgeving waarin het uiteindelijke systeem draait de beschikking over alle variabelen die je nu meet? Als je model afhankelijk is van een bepaalde variabele / inputwaarde die ‘in productie’ niet beschikbaar is, dan is het ook niet realistisch om deze in je model te verwerken, omdat het model deze in de praktijk (dus) ook niet zal kunnen gebruiken.

Ontbrekende waarden?

Zijn er ontbrekende of gedupliceerde waarden in je data? Zijn de ontbrekende / gedu- pliceerde waarden systematisch of sporadisch?

Hebben de data correcte labels?

Correcte labeling is - voor supervised learning modellen - ´e´en van de belangrijkste aspecten. De labels vertellen het model immers wat de ground truth of ‘echte waarde’ is. Daarom wijden we ook nog een korte sectie specifiek aan labels, en mogelijke valkuilen die vermeden dienen te worden.

Beschikbaarheid?

Heb je toegang tot de data die je wilt gebruiken als label voor je model (bijv. het aantal verkochte broden)? Heb je (in het geval van bijv. multiclass classification) alle mogelijke klassen tot je beschikking in de dataset?

Accuraatheid?

Hoe accuraat zijn je labels? Wat beschrijft je label? Als je label bestaat uit bij een machine steekproefsgewijs testen of een product aan een bepaalde eis voldoet, en hieruit een voldoende kwaliteit of onvoldoende kwaliteit volgt, dan weet je niet hoe lang een machine al producten van onvoldoende kwaliteit produceert..

Bron?

Zijn de labels automatisch gegenereerd, gemeten, of door mensen geannoteerd?

Vooringenomen (biased)?

Zit er door de manier van labels verzamelen een bias in je labeling? Ook door mensen geannoteerde data kan (onbewust) biased zijn.

Van ‘Data’ naar ‘Dataset’

Hier beschrijven we de aandachtspunten voor het opstellen van een dataset n.a.v. de verschillende metingen die gedaan zijn.

Hoe combineer je data?

Hoe worden de verschillende variabelen gecombineerd tot ´e´en consistente dataset? Hi- erbij is het belangrijk om stil te staan bij de uiteindelijke vorm van je dataset. Over het algemeen is het in het geval van time series data het meest gangbaar om het tijds- interval tussen punten in je dataset consistent te houden (bijv.: 10:00:00, 10:00:01, 10:00:02 etc., ipv. 10:00:00, 10:00:03, 10:00:10). Stel dat het model verwacht dat het voor elke minuut data ontvangt, maar ´e´en van de sensoren bijvoorbeeld alleen data verstuurt bij verandering (als een lichtsensor een lichtwaarde boven een bepaalde grenswaarde registreert). In dit geval zul je voor de meetmomenten waarin geen sen- sorwaarde beschikbaar is dit wellicht moeten interpoleren en/of padden (hiervoor kan domein-kennis nodig zijn).

Afgeleide variabelen?

In het geval van sommige variabelen bestaan er meerdere mogelijke manieren om deze op te nemen in de dataset: zo zou je in het geval van bovengenoemde licht- sensor de variabele op kunnen nemen door het te beschrijven als een boolean (licht- sensor overschreden) die ´e´en (1) of nul (0) is, of zou je het aantal keren dat de drempel- waarde is overschreden in de huidige minuut op kunnen nemen (aantal lichtsensor over- schreden) die alle natuurlijke getallen aan kan nemen. Afhankelijk van wat de waarde is die je meet, is het wellicht relevanter ´of de drempelwaarde is overschreden, of hoe vaak de drempelwaarde is overschreden in de huidige minuut.

Data types?

Met wat voor soort data heb je te maken voor je verschillende variabelen? Je kan hierbij denken aan discreet/continu numeriek, ordinaal/nominaal/binair categorisch, tijdtippen, tekst, afbeeldingen, geluid, video etc. Ook kun je hier kijken of variabelen van een bepaald type eigenlijk een ander type beschrijven (zo zou ’Vier’ misschien juist als 4 in de dataset terecht moeten komen.

Inhoud variabele?

Beschrijft elke ‘meting’ een enkel datapunt (3.0, ‘hallo’, ‘2021 04 26’), of zijn er ook metingen die meerdere datapunten bevatten zoals lijsten, matrices, of dictionaries ([2, 3, 0], ’leuk’ : 3; ’niet leuk’ : 5 )? Wanneer een variabele meerdere datapunten beschrijft (zoals in een lijst of matrix), zal deze voor de meeste AI-modellen ‘plat geslagen’ moeten worden. Meer hierover in het “AI-ready maken van de Dataset” gedeelte van dit document.

Timestamp format?

Staan timestamps (indien beschikbaar) in een parsebaar datetime-format, en zijn deze consistent over de gehele dataset? Dat wil zeggen: kan de timestamp eenvoudig en zonder ambigu¨ıteiten teruggeleid worden tot het juiste datetime moment m.b.v. stan- daard C++/python libraries?

Visuele exploratie Dataset

Alvorens de dataset AI-ready te maken, is het over het algemeen verstandig om de beschik- bare data (al dan niet visueel) te exploreren en/of inspecteren. Hierdoor kunnen vroegtijdig mogelijke fouten in de dataset (onmogelijke/onwaarschijnlijke waarden / ontbrekende waar- den) en correlaties tussen variabelen onderzocht worden.

Histogram/KDE

Met een histogram of Kernel Density Estimation (KDE) plot kan de distributie per variabele weergegeven worden. Bij histogrammen worden ‘bins’ bepaald (bijv.: [0- 4 broden, 5-9 broden, 10-14 broden]), en worden de observaties binnen elke ‘bin’ opgeteld. KDE’s werken soortgelijk, maar worden opgebouwd aan de hand van vooraf gedefinieerde kernels/distributies die bij elkaar opgeteld worden.

Pairplot

In een pairplot worden voor alle mogelijke paren van variabelen scatter-plots of his- togrammen weergegeven. Een pairplot kan daardoor al een goede indicatie geven van (mogelijke) correlaties tussen de verscheidene variabelen.

Violin/boxplot

Violin- of boxplots kunnen net zoals histogrammen / KDE-plots iets vertellen over de distributie per variabele. Boxplots beschrijven de data aan de hand van de mediaan, interquartile range en mogelijke outliers. Violin-plots combineren daarentegen het beste van de boxplots en de KDE plots: ze beschrijven de daadwerkelijke distributie van de data (ipv. een gediscretiseerde), en bevatten daarnaast ook de informatie over de mediaan/interquartile range.

(Time-lagged) correlatie

Door een pairwise (cross-)correlatie uit te rekenen, kan gekeken worden hoe sterk de verscheidene variabelen (al dan niet) met elkaar correleren.2 Een variant op de corre- latie die voor time series data praktisch kan zijn is de time-lagged cross correlation. Hierbij wordt gekeken of er een correlatie is waarbij de ene variabele met een time lag tegen een andere variabele afgezet wordt. Deze variant is met name praktisch voor variabelen waarvan het effect met een vertraging plaatsvindt (bijv. het aanzetten van een verwarming; deze heeft niet per direct een verhoogde temperatuur tot gevolg, maar met enige vertraging weer wel).

Data slices

Een van de meest nuttige tools in je visualisatiepakket is het gebruik maken van data slices. Data slices zijn subsets van je dataset onder een bepaalde conditie. Zo kun je bijvoorbeeld de subset nemen van alle maandagen uit je dataset, of alle datapunten waar de temperatuur boven de 20 graden is. Ook kun je - in het geval van time series een subset nemen rond een ‘interessant’ moment. Stel dat je een monitoringsysteem hebt, dan is het wellicht interessant om te kijken naar het uur voorafgaand aan een alarm, en alle variabelen boven elkaar te plotten in subplots.

Class (im-)balance

Ook is het interessant om specifiek te kijken naar de klasse-distributie (in het geval van classification). Op het moment dat je van bepaalde klassen slechts weinig observaties hebt (bijv.: je hebt in je dataset van 10.000 afbeeldingen slechts 1 afbeelding met de klasse ‘auto’), wordt het lastiger om een model op te stellen dat ook deze klasse (goed) kan detecteren. Zeker met specifiek 1 instantie van een klasse heb je het probleem dat deze OF in je trainingset zit (en dus niet in je validatie/testset), OF in je testset zit (en dus niet in je trainingset).

AI-readiness

Class balancing

Voor de meeste neurale netwerken is het noodzakelijk dat de klassen een (grofweg) uniforme distributie hebben over de gehele dataset. Nu zal dit in de praktijk zelden het geval zijn. Gelukkig bestaan hier methoden voor zoals over-/undersampling (data van veelvoorkomende klasse weggooien, data van minder veelvoorkomende klasse genereren door interpolatie), SMOTE3 (slim genereren van nieuwe kunstmatige instanties van de minority class) en image augmentation (roteren/spiegelen etc. van afbeeldingen om nieuwe instanties te kunnen genereren).

Normaliseren / Transformeren

Over het algemeen is het gebruikelijk om de variabelen in de dataset te transformeren danwel normaliseren alvorens ze aan een AI-model te voeren.

Numeriek

Voor numerieke data (integers zoals 3, floats zoals 3.0) wordt normalisering aanger- aden. Het voordeel van normalisering is dat er naar relatieve verschillen wordt gekeken in plaats van naar absolute verschillen. Daarnaast zorgt het voor kleinere verschillen tussen de (mogelijke) bereiken van de verschillende variabelen: als ´e´en mogelijke vari- abele een bereik heeft van [400, 1200], terwijl een ander een bereik heeft van [0, 1] kan dat bij bepaalde algoritmen/modellen voor problemen zorgen. Door de variabelen tot (grofweg) hetzelfde bereik te normaliseren zal bijvoorbeeld een neural netwerk sneller kunnen convergeren.

z-score

De z-transform vertaalt alle waarden naar de z-score van de distributie van de variabele. Hiervoor is het noodzakelijk dat het gemiddelde (µ) en de standaard- deviatie (σ) van de variabele die je wilt transformeren uitgerekend worden. De z-score wordt vervolgens als volgt uitgerekend: z(x) = x−µ(x) , waarbij x de observatie is (´e´en meting van de variabele die je wilt transformeren), en x de gehele populatie van de variabele is (alle meetpunten van de variabele die je wilt trans- formeren). Praktisch gezien zorgt de z-transform ervoor dat de waarden worden getransformeerd naar een distributie waarvan het gemiddelde (µ) nul (0) is, met een standaarddeviatie (σ) van 1.

min/max-scaling

Voor min-max scaling worden alle waarden geschaald gebaseerd op het minimum en maximum naar het bereik [0, 1]: minmax(x) = x−min(x) , waarbij span(x ) het bereik van de variabele is (max - min). Min-max schaling is helaas wel gevoeliger voor outliers: als 999.999 waarden in het bereik [0, 1] liggen, en 1 waarde ligt op 100, dan zal deze een (zeer) grote invloed hebben op de waardes die de overige observaties aan kunnen nemen na de transformatie.

Synthetic Minority Oversampling TEchnique.

Table 1: Een voorbeeld van hoe een categorische variabele (‘dier’) omgezet kan worden naar een numerieke (binaire) representatie door middel van one-hot encoding.

Logistische schaling

Voor exponentieel toenemende variabelen kan een minmax of z-score transfor- matie een vertekenend beeld geven; in dit geval biedt de log-scaling een uitkomst: logscale(x) = 1 .

1+exp(−x)

Categoriaal

Gezien de meeste AI-modellen intern werken op basis van getallen (en niet op basis van bijv. strings of afbeeldingen) is het daarom meestal noodzakelijk om categoriale data te transformeren naar numerieke data.

One-hot encoding

One-hot encoding is een methode om categorische data (bijvoorbeeld afbeelding- labels) om te zetten in numerieke data.4 Dit kan o.a. worden gedaan door een matrix te construeren met binaire waarden, zie voor een voorbeeld Table 1. Een grote beperking van one-hot encoding is dat bij een groot aantal klassen de grootte van de dataset hard meeschaalt: voor elke mogelijke klasse wordt een nieuwe ‘variabele’ aangemaakt.

Word embedding

Wanneer het probleem zich in het natural language processing (NLP)-domein bevindt, moet ook een vertaalslag gemaakt worden van strings naar een nu- merieke representatie. Aangezien one-hot encoding hier tekort schiet5 worden zogenaamde word embeddings gebruikt. In het kort gezegd zijn word embeddings vertalingen van woorden (strings) naar vectoren, waarbij de vectorrepresentaties van woorden die qua betekenis dicht bij elkaar liggen ook dicht bij elkaar liggen.

Een model bouwen

Dit is een gecompliceerde stap die eigenlijk weer is onder te verdelen in heel veel verschillende stappen. Het doel van een model is om op basis van verschillende ingangsdata iets te zeggen over een waarde die je wilt voorspellen.

image1

Figuur 1: Een model

Train/Validatie/Testsplit

Het is binnen de machine learning gebruikelijk om de volledige dataset op te splitsen in drie delen: een trainingsdeel (Train), een validatiedeel (Validation), en een testdeel (Test). Hiervan wordt het testdeel apart gezet, en pas gebruikt helemaal aan het einde van het ontwikkelproces (nadat het model gekozen en geoptimaliseerd is).

TODO: verder uitleggen split

TODO: k-fold cross-validation / LOOCV

4Je zou dit op een na¨ıeve manier aan kunnen pakken, en bijvoorbeeld je eerste klasse mappen op 1, de tweede op 2, de derde op 3 etc.. Het probleem hiermee is dat - tenzij je klasselabels ordinaal categorisch geordend zijn (zoals ’niet mee eens’ - ’neutraal’ - ’mee eens’) - er geen volgordelijk verband zit tussen je labels, terwijl je die wel in je data stopt.

5Elke mogelijke optie - dat wil zeggen: elk woord - voegt een ‘variabele’ toe aan je dataset, wat voor een

gemiddelde tekstgebaseerde dataset snel uit de hand loopt.

Data Leakage

Data leakage is het concept dat je het netwerk/model/algoritme (expliciet of impliciet) traint met behulp van informatie/data die het eigenlijk niet tot zijn beschikking zou moeten hebben.

Test-split D De reden dat de testset apart wordt gehouden, is het voorkomen van data leakage. De testset hoort een test te zijn van hoe goed je algoritme/netwerk/model generaliseert op ‘nieuwe’ (niet eerder geziene) data. Wanneer je het model/algoritme aanpast op hoe goed het presteert op de testset, ben je (impliciet) aan het optimaliseren op informatie die je uiteindelijk ook niet hebt: ongeziene data. Om een indicatie te krijgen van hoe goed het netwerk presteert op ongeziene data moet dit soort lekkage daarom vermeden worden. De validatie-set vervult het doel van het beschrijven van hoe goed het netwerk presteert met het huidige model/netwerk/algoritme.

Preprocessing D Ook bij het preprocessen is het voorkomen van data leakage aan de orde: het trans- formeren van de data mag pas nadat de data is gesplitst in een train- en test-set. Dit is omdat voor veel van de transformaties gebruik gemaakt wordt van eigenschappen van de gehele distributie van een variabele (min, max, µ, σ). Wanneer ook het deel van de testset gebruikt wordt voor het bepalen van deze informatie introduceer je informatie die het model in de praktijk ook niet zal hebben, waardoor je een slechtere indicatie krijgt van hoe goed het model generaliseert. Over het algemeen mag alleen de train-dataset worden gebruikt voor het bepalen van de distributieparameters, of in het geval van k-fold cross-validation de folds die op dat moment de subset van trainingsdata bevatten.

AGIL werken in de cyclus

Literatuur

Artificial intelligence

Wikipedia: Op wikipedia staat een mooi artikel

Verzamelen van data

Artikel over privacy: Vanuit de AIrecht website

Checklists

Ethische Checklist

Onderdeel

Vraag

Extra informatie

Praktische voorbeelden

Tips en hulpmiddelen

Fase

2.1 Weerbaarheid tegen aanval, beveiliging

Is het systeem maximaal beveiligd zodat de integriteit van data en systeem wordt geborgd?

Denk in de ontwerpfase aan … en vlak voor de productiefase bijvoorbeeld aan pen testing.

*https://www.nist.gov/cyberframework *

O, P

2.2 Algemene veiligheid

Zijn de verschillende risico’s (kans & impact) voor het AI systeem in kaart gebracht en wordt er gewerkt om deze risico’s te managen?

Mogelijke risico’s voor het systeem zijn het wegvallen, verkeerd werken of misbruiken van het systeem. Mogelijk risico management - Avoid - Accept - Transfer - Reduce Denk bijvoorbeeld aan externe auditing, training voor risicobewustwording, periodieke review van risico’s aan de hand van deze checklist, afspraken met leveranciers, etc. Is er een werkbaar alternatief beschikbaar in een worst-case scenario?

Welke bedreigen zijn er voor het systeem? Welke bedreigingen zijn er door het AI systeem voor anderen? Wat is de Kans en Impact (risico) van deze bedreigingen? Wat wordt er gedaan om deze risico’s te managen?

Afhankelijk van het antwoord verwijzen naar ISO 27001 en hulpmiddelen ISO27002 help om het risico in kaart te brengen en deze te verkleinen

O, P

Zijn de verschillende risico’s (kans & impact) van het AI systeem voor anderen in kaart gebracht en wordt er gewerkt om deze risico’s te managen?

Mogelijk risico management - Avoid - Accept - Transfer - Reduce

Het systeem geeft een verkeerde voorspelling. Het systeem maakt een verkeerde beslissing

2.3 Nauwkeurigheid

Wordt de nauwkeurigheid van het systeem op een goede manier geborgd?

Is er van te voren bepaald Is er bepaald hoe naukeurig het AI stysteem voorspellignen kan maken en/of advies kan geven aan de eindgebruiker? Wordt er ook wat gedaan om de nauwkeurigheid van het AI systeem te verhogen?

Het systeem maakt een onnauwkeurige beslissing

O, P

2.4 Betrouwbaarheid, terugval plannen en reproduceerbaarheid

Wordt de betrouwbaarheid van het systeem op een goede manier geborgd?

Is er een strategie aanwezig om te managen of het AI systeem nog steeds zijn doelen behaald en correct wordt toegepast?

O,P

3.1 Privacy

Is er sprake van de verwerking van persoongegevens -> door naar de AVG checklist.

Wordt er voldaan aan alle eisen die de AVG/GDPR stelt aan het verwerken van persoonsgegevens? Onderscheid tussen AVG tijdens ontwikkeling en AVG in productie. Als je de AI als cloud dienst aanbiedt dan moet je het goed regelen. Wie zijn de verantwoordelijke en de verwerker(s) in de productiefase?

Voorbeeld YP met gemalen bij 1 of 2 adressen Voorbeeld UW van monitoring medewerkers

*https://autoriteitpersoonsgegevens.nl/nl*

O,T,P

Zijn de kwaliteit en integriteit van de data binnen het systeem op een goede manier geborgd en staat de dataveiligheid en daarmee de privacy van de gebruiker binnen het systeem centraal?

Is de beschikbaarheid, integriteit en vertrouwelijkheid van de data binnen het systeem geborgd? Is het geheel controleerbaar?

3.2 Data beheer

Zijn de protocollen voor toegang tot de data binnen het systeem goed geborgd?

Is er goed vastgelegd wie wanneer toegang heeft tot welke data en waarom?

Datamanagementplan

O, T,P

5.1 Vermijden van onterechte vooroordelen

Wordt en binnen het systeem alles aan gedaan om oneerlijke bias te voorkomen?

Houdt het systeem rekening met verschillen binnen de doelgroep zonder daarop te discrimineren? Wordt er bij het trainen van de AI rekening gehouden met een oneerlijke bias in de data?

OTP

5.2 Toegankelijkheid en universeel ontwerp

Is er bij het ontwerpen van het AI systeem rekening gehouden met de doelgroep (user centered design) en de toegankelijkheid van het systeem voor iedereen binnen de doelgroep?

Is het systeem toegankelijk voor mensen met verschillende voorkeuren, kennis en kunde?

verschillende mensen hebben verschillende voorkeuren, kennis, kunde en misschien zelfs beperkingen. Het gebruik van het AI systeem moet aanslutien bij deze verschillen

De Human-AI interaction guidelines van Microsoft geven een mooie set richtlijnen (https://docs.microsoft.com/en-us/ai/guidelines-human-ai-interaction/).

OT

5.3 Betrokkenheid belanghebbenden

Zijn de verschillende stakeholders betrokken bij het ontwerpen van het systeem?

De stakeholders die minimaal betrokken moeten zijn bij het ontwerpen van het AI systeem: eindgebruikers, Privacy officer, cybersecurity specialist, AI designer, AI developer, Data specialist

O

1.1 Menselijke zelfbeschikking en autonomie

Is bij het ontwerp van het systeem rekening gehouden met het zoveel mogelijk ondersteunen van de vrijheid van de gebruiker om zelfstandig beslissingen te nemen?

Typische risico’s op dit punt zijn onduidelijkheid bij gebruikers of een besluit of uitkomst het resultaat is van een algoritmische beslissing, verwarring of men te maken heeft met een mens of een AI-systeem, het stimuleren van over-afhankelijkheid van het systeem, of het op andere wijze onbedoeld beïnvloeden van een beslissingsproces van de gebruiker.

Het ontwikkelen van predictive maintenance heeft als potentiële valkuil dat het systeem leidend wordt en dat de autonomie van monteurs wordt aangetast. Een oplossing kan zijn om het systeem expliciet te positioneren als hulpmiddel van de monteur in plaats van ter vervanging van de monteur.

De Ethische Data Assistent (https://dataschool.nl/deda/) is een mooi hulpmiddel om bij een project kickoff te doorlopen met ontwikkelteam en gebruikers.

OP

1.2 Menselijk toezicht

Heb je maatregelen genomen voor menselijk toezicht op de werking en de effecten van het AI-systeem?

Denk hierbij aan human-in-the-loop (HITL), human-on-the-loop (HOTL) en/of human-in-command (HIC). Human-in-the-loop betekent dat een mens kan ingrijpen bij iedere beslissing van het systeem. Human-on-the-loop betekent dat een mens de werking van het systeem monitort. Met Human-in-command wordt het vermogen bedoeld om toezicht te houden op de totale impact van het AI-systeem (met inbegrip van de bredere economische, maatschappelijke, juridische en ethische impact) en het vermogen om te beslissen of en hoe het AI-systeem in een bepaalde situatie moet worden gebruikt.

Bij predictive maintenance kan een monteur de onderhoudsvoorstellen van het systeem controleren (human-in-the-loop). Het monitoren van feedback van kantoorgebruikers op het AI-ventilatiesysteem is een voorbeeld van human-on-the-loop.

<er schiet me zo niets te binnen>

OTP

4.1 Traceerbaarheid

Heb je maatregelen genomen om te zorgen dat de werking van het AI systeem volgbaar en herleidbaar is en blijft gedurende de hele cyclus van ontwikkeling, implementatie en evolutie?

Denk bijvoorbeeld aan automatische kwaliteitscontrole op binnenkomende data, het loggen van acties van het systeem, het kunnen herleiden van acties naar data waarop de actie is gebaseerd, etc. Denk ook aan herleidbaarheid van het ontwikkelproces en de gebruikte trainingsdata, en logging van de werking en uitkomsten van het systeem.

<hebben we nog geen praktische voorbeelden van>

Software Engineering for Machine Learning (https://se-ml.github.io/practices/) geeft een mooi overzicht van best practices op het gebied van data, model training, software ontwikkeling, implementatie en besturing.

OTP

4.2 Uitlegbaarheid

Zijn de beslissingen van het systeem uit te leggen aan de gebruikers?

Het is niet altijd mogelijk om een verklaring te geven waarom een model een bepaalde output of beslissing heeft gegenereerd (en welke combinatie van inputfactoren daartoe heeft bijgedragen). Deze gevallen worden “blackboxes” genoemd en vereisen bijzondere aandacht. In die gevallen kunnen andere verklaringsmaatregelen nodig zijn. De mate waarin uitlegbaarheid nodig is, hangt af van de context en de ernst van de gevolgen van foutieve output.

<hebben we nog geen praktische voorbeelden van>

Google heeft twee interessante tools ontwikkeld: Lucid en What-if Tool. Zie Explainable AI (https://cloud.google.com/explainable-ai) en de AI adventures playlist (https://www.youtube.com/playlist?list=PLIivdWyY5sqJxnwJhe3etaK7utrBiPBQ2). Een aardig startpunt voor meer achtergrondkennis is A Guide to Interpretable Machine Learning (https://towardsdatascience.com/guide-to-interpretable-machine-learning-d40e8a64b6cf).

OTP

4.3 Communicatie

Zijn de gebruikers geïnformeerd dat er een AI-systeem wordt gebruikt, waar het systeem voor bedoeld is, en wat het systeem wel en niet kan?

Je wilt gebruikers informeren over het gebruikte AI-systeem, om te voorkomen dat het systeem verkeerd gebruikt wordt. Bijvoorbeeld voor doelgroepen of situaties waarvoor het systeem niet getraind is. In dat geval zijn de uitkomsten van het systeem betrouwbaar.

<hebben we nog geen praktische voorbeelden van>

De Human-AI interaction guidelines van Microsoft geven een mooie set richtlijnen, waaronder ‘Make clear what the system can do’ en ‘Make clear how well the system can do what it can do’ (https://docs.microsoft.com/en-us/ai/guidelines-human-ai-interaction/).

P

6.1 Duurzaamheid

Kan ontwikkeling of in bedrijf nemen van het AI-systeem negatieve gevolgen hebben voor het milieu? Denk bijvoorbeeld aan energiegebruik voor training of gebruik van het AI-systeem, of negatieve milieueffecten door veranderend gedrag van gebruikers.

Data opslag en (her)training van het systeem kost energie. Weegt de meerwaarde van het systeem daar tegenop? Innovatieve systemen kunnen soms in relatief korte tijd het gedrag van grote groepen mensen veranderen. Kan dat negatieve gevolgen hebben?

Door hergebruik van model <input Steven> was Ultraware in staat om het energieverbruik voor het trainen van het model bij voorbaat al terug te brengen.

Er bestaan al veel voorgetrainde ML-modellen die herbruikbaar zijn door een klein deel te hertrainen. Hierbij snijdt het mes aan twee kanten: de kwaliteit van het eindresultaat is beter en het energieverbruik is minder. Zie bijvoorbeeld <input Steven>.

OP

6.2 Gevolgen voor werk en vaardigheden

Zijn de gevolgen van het AI-systeem voor het werk van mensen in kaart gebracht en hebben die mensen inbreng gehad in het ontwikkeltraject?

AI kan het werk van mensen vervangen of aanvullen. In beide gevallen heeft het systeem gevolgen voor het werk van mensen. Het is goed om de mensen wiens werk geraakt wordt door het invoeren van AI in een vroeg stadium te betrekken.

Het invoeren van predictive maintenance heeft effect op het werk van onderhoudsmonteurs.

Algoritmes kunnen positieve en negatieve effecten hebben op het werk van mensen, zie bijvoorbeeld https://www.experfy.com/blog/ai-ml/7-unexpected-pros-of-artificial-intelligence-in-the-workplace/ en https://www.theverge.com/platform/amp/2020/2/27/21155254/automation-robots-unemployment-jobs-vs-human-google-amazon. Als het invoeren van een AI-systeem het werk van mensen raakt dan is het aan te bevelen om expliciet aandacht aan verandermanagement te besteden. Daarvoor is veel literatuur voorhanden (‘change management’).

O

6.3 Gevolgen voor de maatschappij of democratie

Kan het AI-systeem een negatieve impact hebben op de samenleving of democratie?

Deze vraag is met name van toepassing voor systemen die door grote groepen mensen gebruikt gaat worden of op grote groepen mensen van toepassing is.

Denk bijvoorbeeld aan het versterken van fake news, polariseren, algoritmes voor de overheid, etc.

<er schiet me zo niets te binnen>

O