Ga naar hoofdinhoud

Geautomatiseerd machine learning met Auto-Keras

Leer over geautomatiseerd machine learning en hoe je het kunt doen met auto-keras.
Bijgewerkt 2 okt 2026  · 11 min lezen

Verken met AI

ChatGPTClaudePerplexity

Machine learning is tegenwoordig geen ongebruikelijke term meer, mede dankzij organisaties als DataCamp, Coursera, Udacity en vele anderen die voortdurend werken aan hoe ze de opleiding in machine learning efficiënt en flexibel bij het grote publiek kunnen brengen. Dankzij hun platforms is het tegenwoordig heel eenvoudig om met bijna geen voorkennis in dit vakgebied te stappen. Toch zorgt de term Automated Machine Learning de laatste tijd voor veel rumoer op populaire fora voor data science-onderwijs. Veel organisaties zoals Google, H2O.ai, enz. leveren hier knap werk. Dit is geen al te gangbaar onderwerp in vergelijking met Machine Learning. Omdat machine learning zelf al over automatisering gaat, dringt zich al snel de vraag op: "Kan machine learning óók geautomatiseerd worden?"

In deze tutorial vind je de antwoorden op veel van dit soort vragen.

Laten we beginnen.

Een standaard machine learning-pijplijn begrijpen

Wanneer je als data scientist een probleem oplost, ziet je standaardworkflow er ongeveer zo uit:

  1. Dataverzameling
  2. Voorbewerking van data
  3. Een machine learning-model initialiseren dat mogelijk geschikt is voor het probleem
  4. Het model trainen
  5. Het model testen
  6. De parameters van het model bijstellen
  7. Het model opnieuw testen
  8. De resultaten communiceren

De tweede stap, voorbewerking van data, is heel breed, omdat dit in wezen een van de meest tijdrovende taken in bovenstaande pijplijn is en veel subtaken omvat, zoals opschonen van data, transformatie van data, featureselectie, enz. De stappen 3 tot en met 7 gelden bovendien voor één enkel machine learning-model. Een goede practicus stopt uiteraard niet na slechts één model. Hij of zij probeert verschillende modellen uit om de resultaten te vergelijken en uiteindelijk het beste model voor het probleem te kiezen. En daar komt een volgende zeer tijdrovende set taken bij kijken: Beslissen welk model je moet kiezen?

De volgende quote over het debuggen in een machine learning-taak kan niet treffender en is belangrijk om in gedachten te houden:

"Debuggen voor machine learning gebeurt in twee gevallen: 1) je algoritme werkt niet of 2) je algoritme werkt niet goed genoeg.[...] Zelden werkt een algoritme in één keer, en daar gaat uiteindelijk het grootste deel van de tijd in zitten bij het bouwen van algoritmes." - S. Zayd Enam

Je hebt nu een beknopt idee van een standaard machine learning-engineeringtaak. Uiteindelijk zul je moeten bepalen welk model het beste is voor het probleem dat je wilt oplossen en ook moeten uitleggen waarom dat zo is. Soms sta je voor situaties waarin er té veel mogelijkheden zijn om te proberen, terwijl de deadline snel dichterbij komt. — Krijg je de kern van het probleem te pakken? Laten we verder kijken.

Hoe kan de machine learning-pijplijn worden geautomatiseerd?

In dit deel ga je verder met het kiezen van het beste model voor een probleem in een situatie waarin het aantal mogelijkheden en de deadline omgekeerd evenredig zijn.

Helemaal aan het begin van deze tutorial kwam de vraag voorbij: "Kan machine learning óók geautomatiseerd worden?" Die vraag is allesbehalve dom. Zelfs Sebastian Raschka beschreef in een van zijn interviews Automated Machine Learning als "de automatisering van het automatiseren van automatisering".

Ga nog eens terug naar stap 5 uit de standaardworkflow die je zojuist hebt bekeken: De hyperparameters van het model bijstellen. Stel, je hebt de data klaargemaakt voor de volgende stappen en je hebt zojuist een classifier $X$ geïnitialiseerd. Stel nu dat $X$ 5 verschillende hyperparameters heeft. Dan moet je dezelfde classifier $X$ proberen met verschillende sets hyperparameterewaarden, wat beslist geen eenvoudige klus is. Dan komt het lastigste deel. Na het uitproberen van verschillende combinaties blijken de resultaten niet goed genoeg. Dus besluit je nog vier classifiers te testen (elk met 6 verschillende hyperparameters). Kun je je voorstellen hoe tijdrovend dit is? En wat als je daarna nog steeds geen goede resultaten krijgt? Het uitzoeken daarvan wordt opnieuw een bijzonder tijdrovend proces.

Het idee achter Automated Machine Learning komt rechtstreeks voort uit dit probleem.

"Als talrijke machine learning-modellen moeten worden gebouwd met een verscheidenheid aan algoritmes en een aantal verschillende hyperparameterconfiguraties, dan kan het bouwen van deze modellen worden geautomatiseerd, evenals het vergelijken van de prestaties en nauwkeurigheid van de modellen." - KDNuggets

Nu begrijp je waarom de term Automated Machine Learning momenteel zoveel aandacht krijgt op populaire fora voor data science-onderwijs. In het volgende deel leer je meer over geautomatiseerd machine learning.

Introductie tot geautomatiseerd machine learning

Het afstemmen van hyperparameters voor verschillende machine learning-modellen is doorgaans ook een tijdrovende taak. In informaticatermen is het afstemmen van hyperparameters een zoekproces dat in dit geval extreem uitputtend kan zijn. Wat als dit proces zelf geautomatiseerd kan worden? Dat is in feite wat geautomatiseerd machine learning doet. "Automated machine learning biedt een directe oplossing voor het tekort aan data scientists, omdat het de prestaties en productiviteit van data scientists drastisch kan verhogen door werkcycli te versnellen, de modelnauwkeurigheid te verbeteren en uiteindelijk mogelijk zelfs de behoefte aan data scientists te vervangen." -Automated Machine Learning for Internet of Things

Je weet nu genoeg over geautomatiseerd machine learning om het in actie te zien. Maar eerst: wat zijn enkele veelgebruikte Python-bibliotheken voor geautomatiseerd machine learning?

Python-bibliotheken voor geautomatiseerd machine learning

Er zijn veel Python-bibliotheken beschikbaar voor geautomatiseerd machine learning. Ze proberen allemaal min of meer hetzelfde doel te bereiken: het automatiseren van het machine learning-proces. Hieronder staan enkele van de meest gebruikte Python-bibliotheken voor AutoML:

Elk van deze bibliotheken heeft een eigen aanpak om het proces van "de automatisering van het automatiseren van automatisering" aan te pakken. Voor deze tutorial gebruik je echter Auto-Keras. Waar wachten we nog op? Aan de slag.

Introductie tot Auto-Keras

"Auto-Keras is een opensource-softwarebibliotheek voor geautomatiseerd machine learning."(Bron) Het wordt ontwikkeld door het DATA Lab van Texas A&M University en community-bijdragers. Volgens de officiële site van auto-keras: "Het uiteindelijke doel van dit geautomatiseerde machine learning is om eenvoudig toegankelijke deep learning-tools te bieden aan domeinexperts met beperkte achtergrond in data science of machine learning. Auto-Keras biedt functies om automatisch te zoeken naar de architectuur en hyperparameters van deep learning-modellen."

AutoKeras Logo

Bron: Auto-Keras

Om auto-keras te installeren, voer je gewoon de volgende opdracht uit.

Let op: Auto-Keras is momenteel alleen compatibel met: Python 3.6.

!pip install autokeras

Nu je Auto-Keras succesvol hebt geïnstalleerd, is het tijd voor een snelle implementatie.

Een casestudy van AutoML met Auto-Keras

Voor deze casestudy gebruik je de zeer populaire MNIST-dataset. keras heeft deze dataset ingebouwd, dus je hoeft hem niet apart te downloaden. Je begint met het laden van de module ImageClassifier van auto-keras. Je laadt ook de MNIST-dataset uit de keras-module.

from keras.datasets import mnist
from autokeras import ImageClassifier

Je hebt de MNIST-dataset geladen uit de module keras.datasets en je hebt ImageClassifier uit auto-keras geïmporteerd. Nu ga je de dataset opsplitsen in train- en testsplits.

(x_train, y_train), (x_test, y_test) = mnist.load_data()
x_train = x_train.reshape(x_train.shape + (1,)) # (1,) denotes the channles which is 1 in this case
x_test = x_test.reshape(x_test.shape + (1,)) # (1,) denotes the channles which is 1 in this case
Downloading data from https://s3.amazonaws.com/img-datasets/mnist.npz
11493376/11490434 [==============================] - 1s 0us/step

Je hebt de train- en testsplits gemaakt en gaat nu ImageClassifier fitten met x_train en y_train. Vervolgens test je de prestaties op x_test en y_test.

# Instantiate the ImageClassifier class
clf = ImageClassifier(verbose=True, augment=False)
# Fit the train set to the image classifier
clf.fit(x_train, y_train, time_limit=12 * 60 * 60)
clf.final_fit(x_train, y_train, x_test, y_test, retrain=True)
# Summarize the results
y = clf.evaluate(x_test, y_test)
print(y * 100)

Zo simpel is het. Met slechts 4 à 5 regels code heb je een snelle proef uitgevoerd. Nou ja, niet echt snel: de bovenstaande code kost behoorlijk wat tijd om uit te voeren. Een degelijke configuratie voor het draaien van deep learning-experimenten helpt ongetwijfeld. Google Colab is hiervoor ook een prima startpunt.

Laten we nu meer leren over de parameters die je in de bovenstaande code gebruikte. We verwijzen hiervoor naar de documentatie van auto-keras; hieronder volgen de relevante passages uit de documentatie:

  • In de ImageClassifier():
    • verbose: Een boolean die bepaalt of het zoekproces wordt weergegeven in de output.
    • augment: Een boolean die aangeeft of de data augmentatie nodig heeft. Als dit niet is gedefinieerd, wordt de waarde van Constant.DATA_AUGMENTATION gebruikt, die standaard True is.
  • In de fit()-methode:
    • time_limit: De tijdslimiet voor het zoeken in seconden.
  • final_fit(): Finale training nadat de beste architectuur is gevonden.
    • retrain: Een boolean die aangeeft of de gewichten van het model opnieuw moeten worden geïnitialiseerd.

Auto-Keras is een zich ontwikkelende bibliotheek en bevindt zich nog in een pre-releaseversie. Volgens de officiële site ondersteunt het de volgende hoofdmmodules:

  • supervised: De basisklasse voor alle supervised-taken.
  • bayesian: Een GaussianProcessRegressor voor bayesiaanse optimalisatie.
  • search: Basisklasse van alle searcher-klassen. Elke searcher-klasse kan zijn zoekfunctie overschrijven om zijn strategie te implementeren.
  • graph: Een klasse die de neurale architectuurgrafiek van een Keras-model vertegenwoordigt. Graph extraheert de neurale architectuurgrafiek uit een Keras-model. Elke knoop in de grafiek is een intermediaire tensor tussen lagen. Elke laag is een rand in de grafiek. Opmerkelijk is dat meerdere randen naar dezelfde laag kunnen verwijzen. (Bijv. een Add-laag telt twee tensors op tot één tensor en is dus gerelateerd aan twee randen.)
  • preprocessor: Een klasse die data kan formatteren. Deze klasse biedt manieren om het classificatielabel van data naar een vector te transformeren.
  • model_trainer: Een klasse die wordt gebruikt om het model te trainen. Deze klasse kan een Pytorch-model trainen met de gegeven dataloaders. De metric, loss_function en het model moeten compatibel zijn. Zie de details bij de attributen.

Afsluitende opmerkingen

Je bent tot het einde gekomen. In deze tutorial heb je het machine learning-proces in het algemeen doorgenomen en geleerd hoe je het kunt automatiseren. Je wierp een snelle blik op bibliotheken die beschikbaar zijn voor AutoML. Je gebruikte auto-keras en zag welke high-level abstractie het biedt en hoe eenvoudig auto-keras te gebruiken is.

Deze tutorial kan de indruk wekken dat AutoML veel data scientists kan vervangen zodra het waterdicht is. Echt? Denk er nog eens over na. AutoML bevrijdt data scientists juist van de last van het iteratieve proces van het kiezen van het beste model voor een probleem. In die tijd kan een data scientist zich meer richten op de data zelf, wat belangrijker is. Dit interview met Randy Olson biedt mooie inzichten over dit onderwerp. Lees het zeker even door; het haalt je motivatie echt niet onderuit. Als je ooit twijfelt aan het werk dat een machine learning-practicus doet, bekijk dan deze post.

Het vakgebied van geautomatiseerd machine learning maakt echt vooruitgang. Zo is er bijvoorbeeld NAS, wat staat voor Neural Architecture Search: een algoritme dat zoekt naar de beste neurale netwerkarchitectuur. Hieronder staan enkele links naar bronnen die state-of-the-art use-cases van AutoML laten zien:

Enkele gebruikte referenties:

Wil je meer leren over deep learning? Volg dan DataCamps cursus "Deep Learning in Python" en bekijk onze cursus Introduction to Deep Learning in Python.

Onderwerpen
Machine Learning
Python

Lees meer over Python en machine learning

Cursus

Machine Learning met boomgebaseerde modellen in Python

5 uur
119.8K
In deze cursus leer je hoe je boomgebaseerde modellen en ensembles gebruikt voor regressie en classificatie met scikit-learn.
Bekijk detailsRight Arrow
Start Cursus
Meer bekijkenRight Arrow
Gerelateerd

blog

AI vanaf nul leren in 2026: een complete gids van de experts

Ontdek alles wat je moet weten om in 2026 AI te leren, van tips om te beginnen tot handige resources en inzichten van industrie-experts.
Adel Nehme's photo

Adel Nehme

15 min

Meer BekijkenMeer Bekijken