Deep Learning: Hoe valide is een model?

Video transcript

Het trainen van een Deep Learning-model kan zonder de juiste voorkennis aanvoelen als een black box. Toch zijn er methodieken om een indruk te krijgen hoe valide een getraind Deep Learning-model is om een gewenst object te herkennen.

hoe valide is een model

Inputdata splitten

inputdata

Een eerste stap die we nemen in het trainingsproces is het splitten van de inputdata in minimaal twee delen: een trainingset en een validatieset. Een vaak voorkomende verdeling tussen deze sets is 80% – 20%, waarbij 80% van de voorbeelden wordt gebruikt om een Deep Learning-model te trainen en 20% wordt gebruikt om het model te evalueren. De resultaten vanuit deze evaluatie kunnen worden gebruikt om de hyperparameters van een model te tunen, waarmee de validatieset het model dus indirect ook kan beïnvloeden.

Vaak wordt ook nog een derde deel in acht genomen: de testset, waarmee een getraind Deep Learning-model onafhankelijk kan worden getest.

Epochs en loss

epochs en loss

Het trainen van een Deep Learning-model gebeurt altijd met een aantal iteraties, zogenaamde epochs. Één van de uitkomsten van de training is de zogenaamde lossfunctie. Loss zou u kunnen zien als een getal dat aangeeft hoe slecht of hoe goed het neurale netwerk een voorspelling doet van een enkel gelabeld voorbeeld. De loss wordt voor zowel de training- als validatieset berekend. In een ideale wereld neemt de loss af naarmate het model wordt getraind en is de validatieloss ongeveer hetzelfde als de trainingloss.

Overfitting versus underfitting

Het kan zijn dat de validatieloss significant hoger is dan de trainingloss. Dit kan een indicatie zijn van overfitting, waarbij het neurale netwerk goed presteert voor de trainingset maar niet zo goed meer voor de validatieset. Vaak betekent dit dat een model te complex is geworden en niet goed meer kan generaliseren.

Underfitting, waarbij de validatieloss significant lager is dan de trainingloss, is het tegenovergestelde en betekent dat een model niet goed in staat is om de variabiliteit in de trainingset goed te herkennen in de validatieset. Dit kan bijvoorbeeld worden veroorzaakt als de validatieset enkel uit makkelijke voorbeelden bestaat.

Objectdetectie

objectdetectie

Om de nauwkeurigheid van een Deep Learning-model te bepalen bepaalt u of gedetecteerde objecten overeenkomen met een referentiedataset. Als u een Deep Learning-model traint om objecten zoals bomen te detecteren, zijn er vier mogelijke situaties. Er kan sprake zijn van een positieve predictie, waar het model voorspelt dat er een boom aanwezig is. In het plaatje zijn dit de rode vlakken. De donkerblauwe vlakken geven een negatieve predictie aan, waar het model voorspelt dat er geen boom aanwezig is.

Laten we eerst kijken naar de positieve predicties. Als het model voorspelt dat er een boom is, en dit is daadwerkelijk zo, wordt dit een True Positive (TP) genoemd. Als het model wel een boom voorspelt, maar deze er niet is, dan wordt dit een False Positive (FP) genoemd. Een belangrijke threshold hierbij is de hoeveelheid overlap tussen de bounding box van het gedetecteerde object en de bounding box van het daadwerkelijke object. Dit wordt de intersection over union ratio genoemd en bepaalt of een positieve predictie een True Positive of False Positive is.

Voor de negatieve predicties geldt: als het model geen boom voorspelt, maar er wel één aanwezig is, wordt dit een False Negative (FN) genoemd. Als er daadwerkelijk geen boom aanwezig is, wordt dit een True Negative (TN) genoemd.

Nauwkeurigheidsstatistieken

Nauwkeurigheidsstatistieken

De nauwkeurigheidscores maken gebruiken van bovenstaande begrippen. Zo is er de precision, wat de ratio is van het aantal True Positives ten opzichte van het aantal positieve predicties. Dus, als het model 100 bomen heeft gedetecteerd en 90 komen overeen met de referentiedataset, dan is de precision 90 procent. De recall is een ratio van het aantal True Positives ten opzichte van het aantal daadwerkelijke objecten. Dus, als het model 75 bomen correct heeft gedetecteerd, en er zijn eigenlijk 100 bomen in het beeld, dan is de recall 75 procent. De F1-score tenslotte is een gewogen gemiddelde van de Precision en Recall. De waarde hiervan fluctueert tussen 0 en 1, waarbij 1 de hoogste nauwkeurigheid voorstelt.

Bovenstaande nauwkeurigheidsstatistieken, samen met een aantal andere aanvullende scores, kunnen worden bepaald met de Compute Accuracy for Object Detection tool in ArcGIS Pro en kunnen bij veel Deep Learning-model in de ArcGIS API for Python ook worden opgevraagd na het trainen.

Deze statistieken in combinatie met de juiste voorbereidende stappen kunnen u vertellen of een Deep Learning-model goed of minder goed in staat is om het gewenste object vanuit uw beelden te detecteren of te classificeren, waarop u mogelijk een volgende iteratieve stap kunt maken om het model verder te verbeteren.

Werkt u aan vraagstukken waar u Deep Learning kunt gebruiken? Heeft u daar vragen over of kunnen we u ondersteunen? Neem dan contact met ons op via contact@esri.nl.

Slimmer werken met GeoAI

Volgend Artikel

Wat is het verschil tussen AI/ML/DL?

Lees dit artikel